@mariozechner/gdcli
v0.1.1
Published
Minimal Google Drive CLI
Readme
gdcli
Minimal Google Drive CLI for listing, searching, uploading, and downloading files.
Install
npm install -g @mariozechner/gdcliSetup
Before adding an account, you need OAuth2 credentials from Google Cloud Console:
- Create a new project (or select existing)
- Enable the Google Drive API
- Set app name in OAuth branding
- Add test users (all Gmail addresses you want to use)
- Create OAuth client:
- Click "Create Client"
- Application type: "Desktop app"
- Download the JSON file
Then:
gdcli accounts credentials ~/path/to/credentials.json
gdcli accounts add [email protected]You can reuse credentials from gmcli or gccli:
gdcli accounts credentials ~/.gmcli/credentials.jsonUsage
gdcli accounts <action> Account management
gdcli <email> <command> [options] Drive operationsCommands
accounts
gdcli accounts credentials <file.json> # Set OAuth credentials (once)
gdcli accounts list # List configured accounts
gdcli accounts add <email> # Add account (opens browser)
gdcli accounts add <email> --manual # Add account (browserless, paste redirect URL)
gdcli accounts remove <email> # Remove accountls
List files in a folder (default: root).
gdcli <email> ls [folderId] [options]Options:
--max <n>- Max results (default: 20)--page <token>- Page token for pagination--query <q>- Drive query filter
Examples:
gdcli [email protected] ls
gdcli [email protected] ls 1ABC123 --max 50
gdcli [email protected] ls --query "mimeType='image/png'"search
Full-text search across all files.
gdcli <email> search <query> [--max N] [--page TOKEN]Example:
gdcli [email protected] search "quarterly report"get
Get file metadata.
gdcli <email> get <fileId>download
Download a file. Google Docs are exported as PDF/CSV.
gdcli <email> download <fileId> [destPath]Default destination: ~/.gdcli/downloads/
Examples:
gdcli [email protected] download 1ABC123
gdcli [email protected] download 1ABC123 ./myfile.pdfupload
Upload a file.
gdcli <email> upload <localPath> [options]Options:
--name <n>- Override filename--folder <folderId>- Destination folder
Examples:
gdcli [email protected] upload ./report.pdf
gdcli [email protected] upload ./report.pdf --folder 1ABC123 --name "Q4 Report.pdf"mkdir
Create a folder.
gdcli <email> mkdir <name> [--parent <folderId>]Example:
gdcli [email protected] mkdir "New Folder" --parent 1ABC123delete
Delete a file (moves to trash).
gdcli <email> delete <fileId>move
Move a file to a different folder.
gdcli <email> move <fileId> <newParentId>rename
Rename a file or folder.
gdcli <email> rename <fileId> <newName>share
Share a file or folder.
gdcli <email> share <fileId> [options]Options:
--anyone- Make publicly accessible (anyone with link)--email <addr>- Share with specific user--role <r>- Permission level:reader(default) orwriter
Examples:
gdcli [email protected] share 1ABC123 --anyone
gdcli [email protected] share 1ABC123 --email [email protected] --role writerunshare
Remove a permission from a file.
gdcli <email> unshare <fileId> <permissionId>Get permission IDs with permissions command.
permissions
List permissions on a file.
gdcli <email> permissions <fileId>url
Print web URLs for files.
gdcli <email> url <fileIds...>Data Storage
All data is stored in ~/.gdcli/:
credentials.json- OAuth client credentialsaccounts.json- Account tokensdownloads/- Downloaded files
Development
npm install
npm run build
npm run checkLicense
MIT
