Skip to main content

Command Palette

Search for a command to run...

DriveCLI — Manage Google Drive From Your Terminal

A fast, cross-platform command-line tool for Google Drive — built with .NET 9, shipped as a single binary.

Published
8 min read
DriveCLI — Manage Google Drive From Your Terminal

Why Another Google Drive Tool?

Google Drive is great — until you need to manage files on a remote server, automate uploads in a script, or just prefer working in a terminal. The web UI doesn't help when you're SSH'd into a Linux box, and the official desktop client isn't designed for automation or headless environments.

That's why I built DriveCLI — a single-binary command-line tool that brings Google Drive directly into your terminal. No installation wizards, no runtime dependencies, no GUI required.


What Is DriveCLI?

DriveCLI is an open-source Google Drive CLI written in C# on .NET 9. It compiles to a single self-contained executable that runs on Windows, Linux, and macOS — you just download one file and start using it.

It covers the operations you use most:

  • Authentication — OAuth 2.0 with browser-based and manual code-paste flows

  • Browse & Search — List folders, search files by name or MIME type

  • Upload & Download — With real-time progress bars, transfer speed, and ETA

  • File Management — Move, rename, trash, permanently delete, and share files

  • Background Transfers — Uploads and downloads continue even if you close the terminal


Key Features

Single Binary, Zero Dependencies

DriveCLI ships as one executable file. There's no .NET runtime to install, no package manager to configure. Download it, put it on your PATH, and you're ready to go.

Works Over SSH and Headless Servers

DriveCLI auto-detects headless environments (no display server, SSH sessions, containers) and switches to a manual code-paste authentication flow. You can authenticate from any device with a browser — even your phone — and paste the code back into your terminal.

drivecli login --manual

Resumable Uploads

Large file uploads use Google Drive's resumable upload protocol, sending data in 1 MB chunks. If the connection drops, the upload can resume from where it left off instead of starting over.

MD5 Integrity Verification

Every file transfer — upload or download — is verified against Google Drive's stored MD5 checksum. If something goes wrong during transfer, you'll know immediately.

Background Transfers

When you start an upload or download, DriveCLI spawns a background worker process. Press Ctrl+C or close the terminal, and the transfer keeps running. Check on it anytime:

drivecli ps           # List all active transfers
drivecli ps aae34     # Inspect a specific transfer
drivecli ps-stop aae34  # Cancel a transfer

Rich Terminal UI

Built with Spectre.Console, DriveCLI renders formatted tables, progress bars with speed and ETA, icons, and colour — making the terminal experience pleasant and informative.

JSON Output for Scripting

Every listing command supports --json output, making it easy to pipe results into jq, scripts, or other tools:

drivecli ls --json | jq '.[].name'
drivecli find "report" --json

Quick Start

1. Set Up Google Cloud Credentials

  1. Go to the Google Cloud Console

  2. Create a project and enable the Google Drive API

  3. Create an OAuth 2.0 Desktop client credential

  4. Copy the Client ID and Client Secret

2. Install DriveCLI

Download the binary for your platform from the GitHub releases page and add it to your PATH.

Or build from source:

git clone https://github.com/bishojit/DriveCLI.git
cd DriveCLI
dotnet build

3. Sign In

drivecli login

Enter your Client ID and Secret when prompted. Your browser opens for Google authorization. Once approved, you're authenticated — no need to log in again unless you explicitly log out.

4. Start Using It

# List your Drive files
drivecli ls

# Search for a file
drivecli find "quarterly-report"

# Upload a file
drivecli upload ./presentation.pptx

# Upload an entire folder
drivecli upload ./project-files --recursive

# Download a file
drivecli download FILE_ID --output ./downloads

# Share a file
drivecli share FILE_ID

Full Command Reference

Command Description
drivecli login Sign in (browser-based or manual flow)
drivecli logout Revoke tokens and clear credentials
drivecli ls [folder-id] List files in a folder
drivecli find <query> Search files by name
drivecli upload <path> Upload a file or folder
drivecli download <id> Download a file or folder
drivecli mv <id> <folder-id> Move a file
drivecli rename <id> <name> Rename a file or folder
drivecli rm <id> Trash or permanently delete
drivecli share <id> Generate a shareable link
drivecli ps List background transfers
drivecli ps-stop <id> Stop a background transfer

Built With

Component Technology
Language C# / .NET 9
Google Drive API Google.Apis.Drive.v3
CLI Framework Spectre.Console.Cli
Terminal Rendering Spectre.Console
Authentication Google.Apis.Auth (OAuth 2.0)
Distribution Trimmed, self-contained single-file binary

Who Is This For?

  • Developers who manage files on remote servers via SSH

  • DevOps / SysAdmins who need automated Drive backups or deployments

  • Power users who prefer the terminal over browser-based file management

  • Anyone who wants a lightweight, portable Google Drive client without heavy desktop apps


Open Source

DriveCLI is open source under the MIT License. Contributions, issues, and feature requests are welcome.


What's Next?

I'm actively working on DriveCLI and plan to add more features based on community feedback. If you have ideas or run into issues, feel free to open an issue on GitHub.

Give it a try, and let me know what you think!


🏢 About Bikiran

Bikiran is a software development and cloud infrastructure company founded in 2012, headquartered in Khulna, Bangladesh. With 15,000+ clients and over a decade of experience, Bikiran builds and operates a suite of products spanning domain services, cloud hosting, app deployment, workflow automation, and developer tools.

SL Topic Product Description
1 Website Bikiran Main platform — Domain, hosting & cloud services
2 Website Edusoft Education management software for institutions
3 Website n8n Clouds Managed n8n workflow automation hosting
4 Website Timestamp Zone Unix timestamp converter & timezone tool
5 Website PDFpi Online PDF processing & manipulation tool
6 Website Blog Technical articles, guides & tutorials
7 Website Support 24/7 customer support portal
8 Website Probackup Automated database backup for SQL, PostgreSQL & MongoDB
9 Service Domain Domain registration, transfer & DNS management
10 Service Hosting Web, app & email hosting on NVMe SSD
11 Service Email & SMS Bulk email & SMS notification service
12 npm Chronopick Date & time picker React component
13 npm Rich Editor WYSIWYG rich text editor for React
14 npm Button Reusable React button component library
15 npm Electron Boilerplate CLI to scaffold Electron.js project templates
16 NuGet Bkash bKash payment gateway integration for .NET
17 NuGet Bikiran Engine Core .NET engine library for Bikiran services
18 Open Source PDFpi PDF processing tool — open source
19 Open Source Bikiran Engine Core .NET engine — open source
20 Open Source Drive CLI CLI tool to manage Google Drive from terminal
21 Docker Pgsql Docker setup for PostgreSQL
22 Docker n8n Docker setup for n8n automation
23 Docker Pgadmin Docker setup for pgAdmin
24 Social Media LinkedIn Bikiran on LinkedIn
25 Social Media Facebook Bikiran on Facebook
26 Social Media YouTube Bikiran on YouTube
27 Social Media FB n8nClouds n8n Clouds on Facebook