playbook/antigravity-awesome-skills/skills/google-drive-automation/SKILL.md

146 lines
4.2 KiB
Markdown

---
name: google-drive-automation
description: "Lightweight Google Drive integration with standalone OAuth authentication. No MCP server required. Full read/write access."
license: Apache-2.0
risk: critical
source: community
metadata:
author: sanjay3290
version: "1.0"
---
# Google Drive
Lightweight Google Drive integration with standalone OAuth authentication. No MCP server required. Full read/write access.
> **Requires Google Workspace account.** Personal Gmail accounts are not supported.
## When to Use
- You need to search, list, upload, download, move, or organize Google Drive files and folders.
- The task requires direct Drive read/write automation through local scripts in a Workspace account.
- You want file-level Drive operations without introducing an MCP server dependency.
## First-Time Setup
Authenticate with Google (opens browser):
```bash
python scripts/auth.py login
```
Check authentication status:
```bash
python scripts/auth.py status
```
Logout when needed:
```bash
python scripts/auth.py logout
```
## Read Commands
All operations via `scripts/drive.py`. Auto-authenticates on first use if not logged in.
```bash
# Search for files (full-text search)
python scripts/drive.py search "quarterly report"
# Search by title only
python scripts/drive.py search "title:budget"
# Search using Google Drive URL (extracts ID automatically)
python scripts/drive.py search "https://drive.google.com/drive/folders/1ABC123..."
# Search files shared with you
python scripts/drive.py search --shared-with-me
# Search with pagination
python scripts/drive.py search "report" --limit 5 --page-token "..."
# Find a folder by exact name
python scripts/drive.py find-folder "Project Documents"
# List files in root Drive
python scripts/drive.py list
# List files in a specific folder
python scripts/drive.py list 1ABC123xyz --limit 20
# Download a file
python scripts/drive.py download 1ABC123xyz ./downloads/report.pdf
```
## Write Commands
```bash
# Upload a file to Drive root
python scripts/drive.py upload ~/Documents/report.pdf
# Upload to a specific folder
python scripts/drive.py upload ~/Documents/report.pdf --folder 1ABC123xyz
# Upload with a custom name
python scripts/drive.py upload ~/Documents/report.pdf --name "Q4 Report.pdf"
# Create a new folder
python scripts/drive.py create-folder "Project Documents"
# Create a folder inside another folder
python scripts/drive.py create-folder "Attachments" --parent 1ABC123xyz
# Move a file to a different folder
python scripts/drive.py move FILE_ID DESTINATION_FOLDER_ID
# Copy a file
python scripts/drive.py copy FILE_ID
python scripts/drive.py copy FILE_ID --name "Report Copy" --folder 1ABC123xyz
# Rename a file or folder
python scripts/drive.py rename FILE_ID "New Name.pdf"
# Move a file to trash
python scripts/drive.py trash FILE_ID
```
## Search Query Formats
The search command supports multiple query formats:
| Format | Example | Description |
|--------|---------|-------------|
| Full-text | `"quarterly report"` | Searches file contents and names |
| Title | `"title:budget"` | Searches file names only |
| URL | `https://drive.google.com/...` | Extracts and uses file/folder ID |
| Folder ID | `1ABC123...` | Lists folder contents (25+ char IDs) |
| Native query | `mimeType='application/pdf'` | Pass-through Drive query syntax |
## File ID Format
Google Drive uses long IDs like `1ABC123xyz_-abc123`. Get IDs from:
- `search` results
- `find-folder` results
- `list` results
- Google Drive URLs
## Download Limitations
- Regular files (PDFs, images, etc.) download directly
- Google Docs/Sheets/Slides cannot be downloaded via this tool
- For Google Workspace files, use export or dedicated tools
## Token Management
Tokens stored securely using the system keyring:
- **macOS**: Keychain
- **Windows**: Windows Credential Locker
- **Linux**: Secret Service API (GNOME Keyring, KDE Wallet, etc.)
Service name: `google-drive-skill-oauth`
Automatically refreshes expired tokens using Google's cloud function.
## Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.