google-drive

v2026.09.24

Upload files, create folders, list and search Google Drive via CLI

GitHub
Install command
npx skhub add aaaaqwq/google-drive
Markdown
SKILL.md

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

WhatPath
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

FolderID
Root (WeLabelData)<YOUR_DRIVE_ROOT_ID>
Clients<YOUR_CLIENTS_FOLDER_ID>
Templates<YOUR_TEMPLATES_FOLDER_ID>

How to execute

List folder contents

cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py list FOLDER_ID

Create a folder

cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py create-folder "Folder Name" --parent FOLDER_ID

Upload a file

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

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

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

cd $GOOGLE_TOOLS_PATH && ./.venv/bin/python3 drive_manager.py permissions FILE_ID

Create Google Doc

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)

cd $GOOGLE_TOOLS_PATH && ./.venv/bin/python3 drive_manager.py info FILE_ID

Parameters

ParameterDescriptionDefault
folder_idFolder ID for list commandrequired
--parentParent folder ID for create-folderroot
--folderTarget folder ID for upload / search / create-docnone
--nameCustom filename for uploadoriginal filename
--emailEmail to share with (share command)required
--rolePermission role: reader, writer, commenterwriter
--notifySend email notification when sharingfalse
--messageCustom notification messagenone
--htmlPath to HTML file for doc content (create-doc)empty doc

Examples

List all client folders

cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py list <YOUR_CLIENTS_FOLDER_ID>

Create a new client folder

cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py create-folder "Acme Corp" --parent <YOUR_CLIENTS_FOLDER_ID>

Upload invoice to client folder

cd $GOOGLE_TOOLS_PATH && python3 drive_manager.py upload ~/invoices/inv-100.pdf --folder CLIENT_FOLDER_ID --name "Invoice #100.pdf"

Search for proposals

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

ProblemSolution
token.json expiredRun google-auth skill to refresh
403 insufficient permissionsCheck scopes in google_scopes.py, may need to re-auth
File not found on uploadUse absolute path or ~ expansion
Empty list resultVerify folder ID is correct, check trashed status

Related skills

  • google-auth — OAuth token management
  • invoice-generator-agent — generates invoices that can be uploaded here
Discovery
Tags

No tags published for this skill.

Version
Latest version metadata

Version

v2026.09.24

Published

Sep 24, 2026

Category

Uncategorized

License

MIT

Source path

skills/google-drive

Default branch

main

Latest commit

b996aac

Tree SHA

07e787b