gdrive-access

安装量: 57
排名: #13034

安装

npx skills add https://github.com/terrylica/cc-skills --skill gdrive-access
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

返回排行榜