This release has been yanked by its maintainers, and will be ignored by installers, except when explicitly specified.
Consider using release 2026.4.0 instead.
Reason given by maintainers: wrong number
fmcli
Multi-account Fastmail CLI for email, calendar, contacts, and files.
Features
- Email: list, search, read, send, reply
- Mailbox: list, move, mark-read/spam
- Masked Email: list, create, delete
- Calendar: list events, create, delete
- Contacts: list, search, create, delete
- Files/Drive: list, download, upload, delete
- Multi-account: configure multiple Fastmail accounts, switch with
--account
Installation
git clone https://github.com/sussdorff/fmcli
cd fmcli
uv sync
Configuration
Create ~/.config/fmcli/config.toml:
[[accounts]]
name = "personal"
email = "user@fastmail.com"
token = "your-api-token"
[[accounts]]
name = "work"
email = "user@company.com"
token = "your-api-token"
app_password = "your-app-password" # required for CalDAV/CardDAV/WebDAV
Get your API token from Fastmail Settings → Privacy & Security → API Tokens.
The app_password is only needed for calendar, contacts, and files commands. Create one at Fastmail Settings → Privacy & Security → App Passwords.
Select account:
--account <name>flag on any commandFMC_ACCOUNT=work fmcli email list- Default: first account in config file
Usage
# Account management
fmcli account list
fmcli account show personal
# Email
fmcli email list
fmcli email list --account work --limit 50
fmcli email search "invoice"
fmcli email read <email-id>
fmcli email send --to recipient@example.com --subject "Hello" --body "Hi there"
fmcli email reply <email-id> --body "Thanks!"
# Mailbox
fmcli mailbox list
fmcli mailbox move <email-id> <mailbox-id>
fmcli mailbox mark-read <email-id>
fmcli mailbox mark-read <email-id> --unread
fmcli mailbox mark-spam <email-id>
# Masked Email
fmcli masked-email list
fmcli masked-email create --for-domain shop.example.com --description "Online shopping"
fmcli masked-email delete <masked-email-id>
# Calendar
fmcli calendar list
fmcli calendar list --days 7
fmcli calendar create --title "Team meeting" --start 2024-02-01T10:00:00 --end 2024-02-01T11:00:00
fmcli calendar delete <event-uid>
# Contacts
fmcli contacts list
fmcli contacts search "Alice"
fmcli contacts create --name "Alice Smith" --email alice@example.com --phone "+1234567890"
fmcli contacts delete <contact-uid>
# Files/Drive
fmcli files list
fmcli files list --path /Documents
fmcli files download /report.pdf ./report.pdf
fmcli files upload ./local.txt /remote.txt
fmcli files delete /old-file.txt
Shell Completions
fmcli --install-completion
Development
uv sync
uv run pytest
uv run pytest --cov=fmcli --cov-report=term-missing
Stack
Metadata
Release files for fmcli 20260225.160743
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| fmcli-20260225.160743.tar.gz | 101.5 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| fmcli-20260225.160743-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 119.3 kB
Release files / fmcli-20260225.160743.tar.gz
| Download URL | fmcli-20260225.160743.tar.gz |
|---|---|
| Size | 101.5 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
5cf8f5b97fd3d0a21b4a464e552d249e3d0184008edb6594563b3223fdb402c5
|
|
BLAKE2b-256 checksum How to use checksums |
54023bf1e105b928e38b86275b2008469a8418fa1a3a7304be281a8f0a580eb9
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|
Release files / fmcli-20260225.160743-py3-none-any.whl
| Download URL | fmcli-20260225.160743-py3-none-any.whl |
|---|---|
| Size | 17.8 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
7f7ea4573c0ff0367e2a4cca291c3d518fb27635df4f4e938032bb582608c06c
|
|
BLAKE2b-256 checksum How to use checksums |
64dcccfaeac0a41bf9c7d6036d13967e07dc5546caaae6ecb67fab61d6e0e146
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
uv/0.10.6 {"installer":{"name":"uv","version":"0.10.6","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}
|