Skip to main content

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 command
  • FMC_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 2026.4.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for fmcli 2026.4.0
File Size Uploaded
fmcli-2026.4.0.tar.gz 119.6 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fmcli 2026.4.0
File Interpreter ABI Platform
fmcli-2026.4.0-py3-none-any.whl Python 3 none any Details

Total release size: 144.2 kB

Release files / fmcli-2026.4.0.tar.gz

Download URL fmcli-2026.4.0.tar.gz
Size 119.6 kB
Tags Source
SHA-256 checksum
How to use checksums
24f9bb2b8b7cc6d76e5bffbadd57b9bb934c78ca0fc22337a9f0ab284620afb6
BLAKE2b-256 checksum
How to use checksums
9d877b6c9129333bfd7176bee9f00a9accf4d930e1816040cc6eeceea5d2fe61
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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-2026.4.0-py3-none-any.whl

Download URL fmcli-2026.4.0-py3-none-any.whl
Size 24.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
affddfa254d852459d34d2e444ceb10e3c4ed6055b25bd1706704d14375815f6
BLAKE2b-256 checksum
How to use checksums
d6895919d51609ed637cf0aae15aa645b76b7ef183be010f4c831f7f4c41f2ac
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via uv/0.11.7 {"installer":{"name":"uv","version":"0.11.7","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 history Release notifications | RSS feed

This release

2026.4.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page