- Google Drive Access
- List, download, and sync files from Google Drive programmatically via Claude Code CLI.
- MANDATORY PREFLIGHT (Execute Before Any Drive Operation)
- CRITICAL
-
- You MUST complete this preflight checklist before running any gdrive commands. Do NOT skip steps.
- Step 1: Check CLI Binary Exists
- ls
- -la
- "
- $HOME
- /.claude/plugins/marketplaces/cc-skills/plugins/gdrive-tools/skills/gdrive-access/scripts/gdrive"
- 2
- >
- /dev/null
- ||
- echo
- "BINARY_NOT_FOUND"
- If BINARY_NOT_FOUND
-
- Build it first:
- cd
- ~/.claude/plugins/marketplaces/cc-skills/plugins/gdrive-tools/skills/gdrive-access/scripts
- &&
- bun
- install
- &&
- bun run build
- Step 2: Check GDRIVE_OP_UUID Environment Variable
- echo
- "GDRIVE_OP_UUID:
- ${GDRIVE_OP_UUID
- :-
- NOT_SET}
- "
- If NOT_SET
-
- You MUST run the Setup Flow below. Do NOT proceed to gdrive commands.
- Step 3: Verify 1Password Authentication
- op
- account list
- 2
- >
- &1
- |
- head
- -3
- If error or not signed in
-
- Inform user to run
- op signin
- first.
- Setup Flow (When GDRIVE_OP_UUID is NOT_SET)
- Follow these steps IN ORDER. Use AskUserQuestion at decision points.
- Setup Step 1: Check 1Password CLI
- command
- -v
- op
- &&
- echo
- "OP_CLI_INSTALLED"
- ||
- echo
- "OP_CLI_MISSING"
- If OP_CLI_MISSING
-
- Stop and inform user:
- 1Password CLI is required. Install with:
- brew install 1password-cli
- Setup Step 2: Discover Drive OAuth Items in 1Password
- op
- item list
- --vault
- Employee
- --format
- json
- 2
- >
- /dev/null
- |
- jq
- -r
- '.[] | select(.title | test("drive|oauth|google"; "i")) | "(.id)\t(.title)"'
- Parse the output
- and proceed based on results:
- Setup Step 3: User Selects OAuth Credentials
- If items found
- , use AskUserQuestion with discovered items:
- AskUserQuestion({
- questions: [{
- question: "Which 1Password item contains your Google Drive OAuth credentials?",
- header: "Drive OAuth",
- options: [
- // POPULATE FROM op item list RESULTS - example:
- { label: "Google Drive API (56peh...)", description: "OAuth client in Employee vault" },
- { label: "Gmail API - dental-quizzes (abc12...)", description: "Can also access Drive" },
- ],
- multiSelect: false
- }]
- })
- If NO items found
- , use AskUserQuestion to guide setup:
- AskUserQuestion({
- questions: [{
- question: "No Google Drive OAuth credentials found in 1Password. How would you like to proceed?",
- header: "Setup",
- options: [
- { label: "Create new OAuth credentials (Recommended)", description: "I'll guide you through Google Cloud Console setup" },
- { label: "I have credentials elsewhere", description: "Help me add them to 1Password" },
- { label: "Skip for now", description: "I'll set this up later" }
- ],
- multiSelect: false
- }]
- })
- If "Create new OAuth credentials": Read and present
- references/gdrive-api-setup.md
- If "I have credentials elsewhere": Guide user to add to 1Password with required fields
- If "Skip for now": Inform user the skill won't work until configured
- Setup Step 4: Confirm mise Configuration
- After user selects an item (with UUID), use AskUserQuestion:
- AskUserQuestion({
- questions: [{
- question: "Add GDRIVE_OP_UUID to .mise.local.toml in current project?",
- header: "Configure",
- options: [
- { label: "Yes, add to .mise.local.toml (Recommended)", description: "Creates/updates gitignored config file" },
- { label: "Show me the config only", description: "I'll add it manually" }
- ],
- multiSelect: false
- }]
- })
- If "Yes, add to .mise.local.toml"
- :
- Check if
- .mise.local.toml
- exists
- If exists, append
- GDRIVE_OP_UUID
- to
- [env]
- section
- If not exists, create with:
- [
- env
- ]
- GDRIVE_OP_UUID
- =
- "
" - Verify
- .mise.local.toml
- is in
- .gitignore
- If "Show me the config only"
-
- Output the TOML for user to add manually.
- Setup Step 5: Reload and Verify
- mise trust
- 2
- >
- /dev/null
- ||
- true
- cd
- .
- &&
- echo
- "GDRIVE_OP_UUID after reload:
- ${GDRIVE_OP_UUID
- :-
- NOT_SET}
- "
- If still NOT_SET
-
- Inform user to restart their shell or run
- source ~/.zshrc
- .
- Setup Step 6: Test Connection
- GDRIVE_OP_UUID
- =
- "
- ${GDRIVE_OP_UUID}
- "
- $HOME
- /.claude/plugins/marketplaces/cc-skills/plugins/gdrive-tools/skills/gdrive-access/scripts/gdrive list 1wqqqvBmeUFYuwOOEQhzoChC7KzAk-mAS
- If OAuth prompt appears
- This is expected on first run. Browser will open for Google consent. Drive Commands (Only After Preflight Passes) GDRIVE_CLI = " $HOME /.claude/plugins/marketplaces/cc-skills/plugins/gdrive-tools/skills/gdrive-access/scripts/gdrive"
List files in a folder
$GDRIVE_CLI list < folder_id
List with details (size, modified date)
$GDRIVE_CLI list < folder_id
--verbose
Search for files
$GDRIVE_CLI search "name contains 'training'"
Get file info
$GDRIVE_CLI info < file_id
Download a single file
$GDRIVE_CLI download < file_id
-o ./output.pdf
Sync entire folder to local directory
$GDRIVE_CLI sync < folder_id
-o ./output_dir
Sync with subfolders
$GDRIVE_CLI sync < folder_id
-o ./output_dir -r
JSON output (for parsing)
$GDRIVE_CLI list < folder_id
--json Extracting Folder ID from URL Google Drive folder URL: https://drive.google.com/drive/folders/1wqqqvBmeUFYuwOOEQhzoChC7KzAk-mAS ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ This is the folder ID Drive Search Syntax Query Description name contains 'keyword' Name contains keyword name = 'exact name' Exact name match mimeType = 'application/pdf' By file type modifiedTime > '2026-01-01' Modified after date trashed = false Not in trash '
' in parents In specific folder Reference: https://developers.google.com/drive/api/guides/search-files Environment Variables Variable Required Description GDRIVE_OP_UUID Yes 1Password item UUID for OAuth credentials GDRIVE_OP_VAULT No 1Password vault (default: Employee) Token Storage OAuth tokens stored at: ~/.claude/tools/gdrive-tokens/ .json Central location (not in plugin, not in project) Organized by 1Password UUID (supports multi-account) Created with chmod 600 Google Docs Export Google Docs (Docs, Sheets, Slides) are automatically exported: Google Type Export Format Document .docx Spreadsheet .xlsx Presentation .pptx Drawing .png References gdrive-api-setup.md - Google Cloud OAuth setup guide Post-Change Checklist YAML frontmatter valid (no colons in description) Trigger keywords current Path patterns use $HOME not hardcoded paths References exist and are linked