- Category
- Developer Tools
- Rank
- No. 1595Tools index
Previous survey · No. 1600 ·
- Pricing
- Open Source
- Type
- TOOL
- Builder
- badlogic
- GitHub
- 60 stars
- Date
About
Minimal command-line interface for Google Drive.
What it does
gdcli turns routine Google Drive work into shell commands. It manages multiple accounts, lists and searches files, transfers content, creates folders, changes names and locations, and controls sharing permissions. Authentication uses your own Google Cloud OAuth credentials, with browser-based and manual authorization flows.
Why it's ranked here
The command set covers a useful slice of everyday Drive administration without a broad framework around it. Pagination, query filters, multiple accounts, permission management, and Workspace document exports make it practical. The credential setup and local token storage demand care, while the documented deletion behavior conflicts with the service implementation.
What's good
It supports both interactive browser authorization and a manual flow for browserless machines. Listings expose identifiers, types, sizes, modification times, and pagination tokens. Downloads automatically export documents and presentations to PDF, spreadsheets to CSV, and drawings to PNG. Sharing supports public links or named users with reader and writer roles.
Tradeoffs
Setup requires creating a Google Cloud project, enabling the Drive API, configuring OAuth branding and users, then downloading client credentials. Client secrets and account tokens live in local JSON storage. Search builds full-text queries, not a richer local index. Most importantly, help text promises trashing, while the service code performs a delete operation.
How to use it well
Use it for scripts and terminal workflows that need direct, account-scoped Drive operations with visible file identifiers. It suits uploads, downloads, searches, folder maintenance, and permission changes. Keep its configuration directory protected and test deletion behavior before automation. It does not provide synchronization, document editing, or a graphical file browser.
Technical notes+
package.json defines an ES module package for Node.js 20 or newer, publishes the compiled dist directory, and declares CLI plus typed library entry surfaces. src/cli.ts parses commands with Node’s argument parser and prints tab-separated listings. src/drive-service.ts wraps Google Drive v3, caches clients per email, streams transfers, and maps Workspace MIME types to export formats. src/account-storage.ts persists OAuth material as unencrypted JSON under the user home directory. src/drive-oauth-flow.ts supports a temporary localhost callback server and a pasted-redirect manual flow. tsconfig.json enables strict TypeScript, declarations, maps, and ES2022 output. .github/workflows/ci.yml builds and checks on Node.js 22.
Observed
- License
- MIT
- Primary language
- TypeScript
- Install surface
- Global npm package @mariozechner/gdcli
- Interfaces
- Command-line interface and typed Node.js library entry
- Runtime
- Node.js 20 or newer
- API integration
- Google Drive API v3 through googleapis
- Authentication
- OAuth 2.0 with browser callback and manual pasted-redirect flows
- Platform handling
- Browser launching accounts for macOS, Windows, and Linux commands
Read from README.md, package.json, src/cli.ts, src/types.ts, src/drive-service.ts, src/account-storage.ts, src/drive-oauth-flow.ts, biome.json, CHANGELOG.md, tsconfig.json, .husky/pre-commit, .github/workflows/ci.yml.
What it can do
Upload files to Google Drive
Local files → Files stored in Google Drive
Download files from Google Drive
Google Drive file ID or path → Local files
List files and folders in Google Drive
Google Drive directory path or search query → List of files and folders with metadata
Delete files from Google Drive
Google Drive file ID or path → Confirmation of file deletion
Create folders in Google Drive
Folder name and parent directory path → New folder in Google Drive
Share Google Drive files
File ID and sharing permissions → Shareable link or updated file permissions
Tags
Tech Stack
Comments (0)
No comments yet
Editorially curated, with community endorsements as a secondary signal. Corrections welcome.
