Your CLI for Proton Mail, Drive, Calendar, Pass and Contacts. One binary, end-to-end encrypted.
69
stars
192
commits
Go
primary language
Sep 13, 2026
updated
Your CLI for Proton Mail, Drive, Calendar, Pass and Contacts.
One binary, end-to-end encrypted. A community project, not affiliated with Proton AG.
proton-cli.lerchster.dev - the documentation, searchable.
Read your mail, move files in and out of Drive, manage calendars, passwords 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.
--dry-run on everything that changes state.curl -fsSL https://raw.githubusercontent.com/roman-16/proton-cli/main/scripts/install.sh | sh
irm https://raw.githubusercontent.com/roman-16/proton-cli/main/scripts/install.ps1 | iex
Also on Homebrew, winget, APT, AUR, Nix, npm, and as plain signed binaries. See Install.
The command is proton, and proton-cli works too.
$ 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.
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 <app> <collection> <verb>, 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.
→ First commands · How a command is built
Everything is at proton-cli.lerchster.dev and in docs/ beside the code.
| If you want to | Read |
|---|---|
| Get going | Install · First commands |
| Do something in one app | Mail · Drive · Calendar · Pass · Contacts |
| Script it | Scripting · Output and exit codes |
| Let an AI agent use it | AI agents - proton skill prints what it needs to know |
| Look up a command | All commands |
| Know whether this is the right tool | FAQ - including how it compares to Proton's own CLIs and to Bridge |
| Decide whether to trust it with your password | Security |
| Fix a failing command | Troubleshooting |
CHANGELOG.md records what each version changed, and proton changelog prints it. Already installed? proton update.
Bug reports, ideas, and pull requests are all welcome. CONTRIBUTING.md covers the setup, and SECURITY.md has the private channel for security issues.
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.
192 commits
Go
97.0%
Your CLI for Proton Mail, Drive, Calendar, Pass and Contacts. One binary, end-to-end encrypted.
69
stars
192
commits
Go
primary language
Sep 13, 2026
updated
Your CLI for Proton Mail, Drive, Calendar, Pass and Contacts.
One binary, end-to-end encrypted. A community project, not affiliated with Proton AG.
proton-cli.lerchster.dev - the documentation, searchable.
Read your mail, move files in and out of Drive, manage calendars, passwords 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.
--dry-run on everything that changes state.curl -fsSL https://raw.githubusercontent.com/roman-16/proton-cli/main/scripts/install.sh | sh
irm https://raw.githubusercontent.com/roman-16/proton-cli/main/scripts/install.ps1 | iex
Also on Homebrew, winget, APT, AUR, Nix, npm, and as plain signed binaries. See Install.
The command is proton, and proton-cli works too.
$ 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.
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 <app> <collection> <verb>, 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.
→ First commands · How a command is built
Everything is at proton-cli.lerchster.dev and in docs/ beside the code.
| If you want to | Read |
|---|---|
| Get going | Install · First commands |
| Do something in one app | Mail · Drive · Calendar · Pass · Contacts |
| Script it | Scripting · Output and exit codes |
| Let an AI agent use it | AI agents - proton skill prints what it needs to know |
| Look up a command | All commands |
| Know whether this is the right tool | FAQ - including how it compares to Proton's own CLIs and to Bridge |
| Decide whether to trust it with your password | Security |
| Fix a failing command | Troubleshooting |
CHANGELOG.md records what each version changed, and proton changelog prints it. Already installed? proton update.
Bug reports, ideas, and pull requests are all welcome. CONTRIBUTING.md covers the setup, and SECURITY.md has the private channel for security issues.
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.
192 commits
Go
97.0%