Multi-account Fastmail CLI
Reason this release was yanked:
wrong number
Project description
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
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file fmcli-20260225.160743.tar.gz.
File metadata
- Download URL: fmcli-20260225.160743.tar.gz
- Upload date:
- Size: 101.5 kB
- Tags: Source
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5cf8f5b97fd3d0a21b4a464e552d249e3d0184008edb6594563b3223fdb402c5
|
|
| MD5 |
a8ef052036d0e5c1d2ef3ea5b2dd1b0e
|
|
| BLAKE2b-256 |
54023bf1e105b928e38b86275b2008469a8418fa1a3a7304be281a8f0a580eb9
|
File details
Details for the file fmcli-20260225.160743-py3-none-any.whl.
File metadata
- Download URL: fmcli-20260225.160743-py3-none-any.whl
- Upload date:
- Size: 17.8 kB
- Tags: Python 3
- Uploaded using 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}
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
7f7ea4573c0ff0367e2a4cca291c3d518fb27635df4f4e938032bb582608c06c
|
|
| MD5 |
799710c2d181029766a2a8cf4adcd2c0
|
|
| BLAKE2b-256 |
64dcccfaeac0a41bf9c7d6036d13967e07dc5546caaae6ecb67fab61d6e0e146
|