proton-cli is a command-line interface tool designed to interact with Proton Mail, Drive, Calendar, Pass, and Contacts. It provides end-to-end encrypted access to these services through a single binary, enabling users to perform tasks without the need for a web browser.
Key Features:
Integrates with multiple Proton services in one binary.
Offers end-to-end encryption and secure login via SRP protocol.
Supports cross-platform use on Linux, macOS, and Windows.
Provides scripting capabilities with JSON/YAML output formats.
Available for easy installation via WinGet.
Target Audience and Benefits:
Ideal for Proton users who prefer a command-line interface for managing their accounts. This tool allows seamless integration into scripts and workflows while maintaining end-to-end security.
README
proton-cli
Your CLI for Proton Mail, Drive, Calendar, Pass, Meet and Contacts.
One binary, end-to-end encrypted. A community project, not affiliated with Proton AG.
Read your mail, move files in and out of Drive, manage calendars, passwords, meetings and contacts, all without opening a browser. proton logs in the way the Proton apps do and does the encryption on your machine, so your keys stay yours.
Real end-to-end encryption. SRP login and the full PGP key hierarchy, handled locally with Proton's own go-srp and gopenpgp. No bridge, no proxy, no browser in the middle.
Six apps, one binary. Mail, Drive, Calendar, Pass, Meet and Contacts, in a single static executable on Linux, macOS and Windows.
Built for pipes and cron. JSON and YAML with one envelope shape for every list, streaming stdin and stdout, exit codes that mean something, and --dry-run on everything that changes state.
Install
curl -fsSL https://raw.githubusercontent.com/roman-16/proton-cli/main/scripts/install.sh | sh
Also on Homebrew, winget, APT, AUR, Nix, npm, and as plain signed binaries. See Install.
The command is proton, and proton-cli works too.
Sign in
$ proton account login
Email: you@proton.me
Password:
Two-factor code: 123456
✓ Signed in as you@proton.me.
That is the whole setup. Signing in saves the session and unlocks your keys, so your password is needed once on this machine and not again.
Try it
proton mail messages list --unread
proton mail messages get "Invoice #2291"
proton drive items upload ./report.pdf /Documents
proton calendar events list
proton pass items totp github.com
Every command reads the same way, proton , and anywhere one wants an ID, a subject, name, path or address works too. With completion installed, Tab offers back whatever your last listing showed.
proton-cli is an independent, community-built project. It is not endorsed by, affiliated with, or supported by Proton AG. Proton is a trademark of Proton AG. Use it at your own risk, and mind Proton's terms of service.