Skip to main content
Yanked

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 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 20260225.160743

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 20260225.160743
File Size Uploaded
fmcli-20260225.160743.tar.gz 101.5 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for fmcli 20260225.160743
File Interpreter ABI Platform
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}

Release history Release notifications | RSS feed

This release

20260225.160743 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