Google Drive
Use this skill when Google Drive access is available through either:
GOOGLE_SERVICE_ACCOUNT_KEYfor service-account authGOOGLE_OAUTH_REFRESH_TOKENfor the dashboard Google Drive OAuth connector
OAuth mode also needs GOOGLE_CLIENT_ID and GOOGLE_CLIENT_SECRET so the refresh token can be exchanged for an access token.
This skill is for:
- Searching Drive files and folders
- Listing folder contents
- Inspecting file metadata
- Downloading binary files
- Exporting Google Docs, Sheets, and Slides to standard formats
- Uploading files or creating folders
Important behavior:
- The script prefers
GOOGLE_OAUTH_REFRESH_TOKENwhen present, then falls back toGOOGLE_SERVICE_ACCOUNT_KEY. - A service account only sees files it owns, files explicitly shared with the service account email, or a delegated user's Drive when domain-wide delegation is configured.
- If your workspace uses domain-wide delegation, set
GOOGLE_DRIVE_SUBJECT=user@company.comor pass--subject user@company.com. - For automation and tool use, prefer
--json.
Quick Start
Check access:
python3 {baseDir}/scripts/gdrive_sa.py whoami
Search files:
python3 {baseDir}/scripts/gdrive_sa.py search "name contains 'Q1'" --limit 10
python3 {baseDir}/scripts/gdrive_sa.py search "'root' in parents" --limit 25 --json
List a folder:
python3 {baseDir}/scripts/gdrive_sa.py ls root --limit 50
python3 {baseDir}/scripts/gdrive_sa.py ls <folderId> --json
Inspect metadata:
python3 {baseDir}/scripts/gdrive_sa.py info <fileId>
Download or export:
python3 {baseDir}/scripts/gdrive_sa.py download <fileId> --out /tmp/file.bin
python3 {baseDir}/scripts/gdrive_sa.py export <fileId> --mime text/plain --out /tmp/doc.txt
python3 {baseDir}/scripts/gdrive_sa.py cat <fileId> --mime text/plain
Create folders and upload files:
python3 {baseDir}/scripts/gdrive_sa.py mkdir "Reports" --parent root
python3 {baseDir}/scripts/gdrive_sa.py upload ./report.pdf --parent <folderId>
python3 {baseDir}/scripts/gdrive_sa.py upload ./notes.txt --name "meeting-notes.txt" --parent root
Query Tips
Drive search uses the standard Drive query syntax in the q parameter. Useful examples:
name contains 'invoice'mimeType = 'application/vnd.google-apps.folder''root' in parentstrashed = falsemodifiedTime > '2026-01-01T00:00:00Z'
Combined example:
python3 {baseDir}/scripts/gdrive_sa.py search "trashed = false and name contains 'roadmap'" --limit 20 --json
Google Workspace Export MIME Types
Common export choices for Google-native files:
- Docs to plain text:
text/plain - Docs to PDF:
application/pdf - Docs to Word:
application/vnd.openxmlformats-officedocument.wordprocessingml.document - Sheets to CSV:
text/csv - Sheets to XLSX:
application/vnd.openxmlformats-officedocument.spreadsheetml.sheet - Slides to PDF:
application/pdf
Example:
python3 {baseDir}/scripts/gdrive_sa.py export <sheetId> --mime text/csv --out /tmp/sheet.csv
Notes
- The script automatically enables
supportsAllDrives=trueandincludeItemsFromAllDrives=true. - OAuth-connected agents act as the connected end user, not as a service account.
rootrefers to the visible root for the authenticated principal.- Use
catonly for text-friendly outputs. Usedownloadorexport --outfor binary files. - Confirm before uploading or creating folders in shared team drives.