Best use case
google-drive is best used when you need a repeatable AI agent workflow instead of a one-off prompt.
Upload files, create folders, list and search Google Drive via CLI
Teams using google-drive should expect a more consistent output, faster repeated execution, less prompt rewriting.
When to use this skill
- You want a reusable workflow that can be run more than once with consistent structure.
When not to use this skill
- You only need a quick one-off answer and do not need a reusable workflow.
- You cannot install or maintain the underlying files, dependencies, or repository context.
Installation
Claude Code / Cursor / Codex
Manual Installation
- Download SKILL.md from GitHub
- Place it in
.claude/skills/google-drive/SKILL.mdinside your project - Restart your AI agent — it will auto-discover the skill
How google-drive Compares
| Feature / Agent | google-drive | Standard Approach |
|---|---|---|
| Platform Support | Not specified | Limited / Varies |
| Context Awareness | High | Baseline |
| Installation Complexity | Unknown | N/A |
Frequently Asked Questions
What does this skill do?
Upload files, create folders, list and search Google Drive via CLI
Where can I find the source code?
You can find the source code on GitHub using the link provided at the top of the page.
SKILL.md Source
# Google Drive > Upload files, create folders, list and search Google Drive via CLI. ## When to use - Upload proposals, invoices, contracts to client folders - Create new client folder structure - List or search files in Drive - Any Google Drive file management task ## Dependencies - Other skills: `google-auth` (if token expired) - External: Python 3, `google-api-python-client`, `google-auth` ## Paths | What | Path | |------|------| | Script | `$GOOGLE_TOOLS_PATH/drive_manager.py` | | Token | `$GOOGLE_TOOLS_PATH/token.json` | | Credentials | `$GOOGLE_TOOLS_PATH/credentials.json` | | Venv Python | `$GOOGLE_TOOLS_PATH/.venv/bin/python3` | ## Known Folder IDs | Folder | ID | |--------|----| | Root (WeLabelData) | `<YOUR_DRIVE_ROOT_ID>` | | Clients | `<YOUR_CLIENTS_FOLDER_ID>` | | Templates | `<YOUR_TEMPLATES_FOLDER_ID>` | ## How to execute ### List folder contents ```bash cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py list FOLDER_ID ``` ### Create a folder ```bash cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py create-folder "Folder Name" --parent FOLDER_ID ``` ### Upload a file ```bash cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py upload /path/to/file.pdf --folder FOLDER_ID cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py upload /path/to/file.pdf --folder FOLDER_ID --name "Custom Name.pdf" ``` ### Search by name ```bash cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py search "query" cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py search "query" --folder FOLDER_ID ``` ### Share file/folder ```bash cd $GOOGLE_TOOLS_PATH && ./.venv/bin/python3 drive_manager.py share FILE_ID --email user@example.com --role writer cd $GOOGLE_TOOLS_PATH && ./.venv/bin/python3 drive_manager.py share FILE_ID --email user@example.com --role reader --notify --message "Please review" ``` ### Check permissions ```bash cd $GOOGLE_TOOLS_PATH && ./.venv/bin/python3 drive_manager.py permissions FILE_ID ``` ### Create Google Doc ```bash cd $GOOGLE_TOOLS_PATH && ./.venv/bin/python3 drive_manager.py create-doc "Title" --folder FOLDER_ID cd $GOOGLE_TOOLS_PATH && ./.venv/bin/python3 drive_manager.py create-doc "Title" --folder FOLDER_ID --html /path/to/content.html ``` ### File info (modified time, last editor) ```bash cd $GOOGLE_TOOLS_PATH && ./.venv/bin/python3 drive_manager.py info FILE_ID ``` ## Parameters | Parameter | Description | Default | |-----------|-------------|---------| | `folder_id` | Folder ID for `list` command | required | | `--parent` | Parent folder ID for `create-folder` | root | | `--folder` | Target folder ID for `upload` / `search` / `create-doc` | none | | `--name` | Custom filename for `upload` | original filename | | `--email` | Email to share with (`share` command) | required | | `--role` | Permission role: `reader`, `writer`, `commenter` | writer | | `--notify` | Send email notification when sharing | false | | `--message` | Custom notification message | none | | `--html` | Path to HTML file for doc content (`create-doc`) | empty doc | ## Examples ### List all client folders ```bash cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py list <YOUR_CLIENTS_FOLDER_ID> ``` ### Create a new client folder ```bash cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py create-folder "Acme Corp" --parent <YOUR_CLIENTS_FOLDER_ID> ``` ### Upload invoice to client folder ```bash cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py upload ~/invoices/inv-100.pdf --folder CLIENT_FOLDER_ID --name "Invoice #100.pdf" ``` ### Search for proposals ```bash cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py search "proposal" --folder <YOUR_CLIENTS_FOLDER_ID> ``` ## Output Format All commands output JSON array. Each entry has: - `id` — Google Drive file ID - `name` — file/folder name - `mimeType` — MIME type (`application/vnd.google-apps.folder` for folders) - `webViewLink` — direct link to open in browser ## Limitations - Scopes: uses `drive.readonly` (list/search) + `drive.file` (create/upload/share). Cannot modify files not created by this app. - Upload: single file at a time. For bulk uploads, loop in bash. - Search: name-based only. Use Google Drive web UI for full-text content search. - Sharing: can only share files created by this app (drive.file scope). Cannot share files created elsewhere. - Create-doc: uses Drive API upload with HTML conversion (no Docs API needed). Formatting via HTML. ## Troubleshooting | Problem | Solution | |---------|----------| | `token.json` expired | Run `google-auth` skill to refresh | | 403 insufficient permissions | Check scopes in `google_scopes.py`, may need to re-auth | | File not found on upload | Use absolute path or `~` expansion | | Empty list result | Verify folder ID is correct, check trashed status | ## Related skills - `google-auth` — OAuth token management - `invoice-generator-agent` — generates invoices that can be uploaded here
Related Skills
test-driven-development
Use when implementing any feature or bugfix, before writing implementation code
Subagent-Driven Development
Use when executing implementation plans with independent tasks in the current session
Test-Driven Development (TDD)
Write the test first, watch it fail, write minimal code to pass
pipedrive-automation
Automate Pipedrive CRM operations including deals, contacts, organizations, activities, notes, and pipeline management via Rube MCP (Composio). Always search tools first for current schemas.
one-drive-automation
Automate OneDrive file management, search, uploads, downloads, sharing, permissions, and folder operations via Rube MCP (Composio). Always search tools first for current schemas.
googlesheets-automation
Automate Google Sheets operations (read, write, format, filter, manage spreadsheets) via Rube MCP (Composio). Read/write data, manage tabs, apply formatting, and search rows programmatically.
google-drive-automation
Automate Google Drive file operations (upload, download, search, share, organize) via Rube MCP (Composio). Upload/download files, manage folders, share with permissions, and search across drives programmatically.
google-calendar-automation
Automate Google Calendar events, scheduling, availability checks, and attendee management via Rube MCP (Composio). Create events, find free slots, manage attendees, and list calendars programmatically.
google-auth
Google OAuth setup, refresh tokens
google-analytics
Analyze Google Analytics data, review website performance metrics, identify traffic patterns, and suggest data-driven improvements. Use when the user asks about analytics, website metrics, traffic analysis, conversion rates, user behavior, or performance optimization.
google-analytics-automation
Automate Google Analytics tasks via Rube MCP (Composio): run reports, list accounts/properties, funnels, pivots, key events. Always search tools first for current schemas.
google-ads
Query, audit, and optimize Google Ads campaigns. Supports two modes: (1) API mode for bulk operations with google-ads Python SDK, (2) Browser automation mode for users without API access - just attach a browser tab to ads.google.com. Use when asked to check ad performance, pause campaigns/keywords, find wasted spend, audit conversion tracking, or optimize Google Ads accounts.