Courier is a command-line tool for managing email, calendar, contacts, and chat from your terminal. It connects to your existing providers through a unified interface — no switching between browser tabs to check your schedule, fire off a quick reply, or message a teammate.
Download v1.1.0
| Platform | File |
|---|---|
| Windows x64 | CourierCli.exe |
| Windows ARM64 | CourierCli.exe |
| Linux x64 | CourierCli |
| Linux ARM64 | CourierCli |
On Linux/macOS, make the binary executable after downloading:
chmod +x CourierCli
What it does
- Mail — List, search, read, send, reply, manage drafts, download attachments, trash or delete messages
- Calendar — View today's agenda, this week's events, create/update/delete events, quick-add from natural language, set reminders
- Contacts — Search people by name or email across providers
- Chat — List chats, read and send messages, find or create 1:1 conversations, list spaces/channels, post to channels
- Auth — Browser-based OAuth login, multi-account support with aliases, status check, logout
Usage examples
# Mail
courier mail list
courier mail list --from boss@work.com --since 3d
courier mail read <message-id>
courier mail send --to someone@example.com --subject "Hello" --body "Hi there"
# Calendar
courier cal today
courier cal week
courier cal create "Team Standup" --start "2026-03-01 09:00" --end "2026-03-01 09:30" --reminder 15
courier cal quick "Lunch with Alex tomorrow at noon"
# Contacts
courier contacts search "John Smith"
# Chat
courier chat list
courier chat send <chat-id> --body "Hello!"
courier chat spaces
courier chat post <space-id> --body "Update for the team"
Output formats
All commands support --output text, --output json, and --output jsonl for easy scripting and piping into other tools.
Provider support
Courier is built on a provider abstraction layer. Currently supported providers:
- Google Workspace — Gmail, Google Calendar
- Microsoft 365 — Outlook/Exchange mail, calendar, Teams chat, contacts/directory search
Multiple accounts from different providers can be used simultaneously. Read commands aggregate across all accounts by default.
Built with
.NET, System.CommandLine, Google APIs, Microsoft Graph SDK (MSAL)
Security & your credentials
Courier uses OAuth to connect to your mail, calendar, and chat providers — it never sees your password. After you authenticate, your OAuth tokens are stored locally at ~/.config/courier/ (Linux/macOS) or %APPDATA%/courier/ (Windows).
You are responsible for protecting that folder. Anyone with access to those files can read and send your email and access your calendar on your behalf. A few things worth knowing:
- Do not share your courier config directory or its contents with anyone
- On shared machines, make sure your home directory permissions are restricted (
chmod 700 ~) - If you believe your tokens have been compromised, revoke access immediately via your Google account permissions or Microsoft account permissions and run
courier auth logout - Courier does not transmit your tokens anywhere — all authentication data stays on your machine
Courier is provided as-is. Use it at your own risk and keep your local environment secure.
Changelog
[1.1.0] — 2026-03-05
Added
- Contacts search —
courier contacts search <query>resolves people by name/email across providers (Microsoft People API with directory fallback) - Chat commands — provider-agnostic chat abstraction:
chat list,chat read,chat send,chat find,chat spaces,chat space-messages,chat post
Changed
- Breaking:
courier teamscommand replaced bycourier chat— Teams-specific operations are now behind the provider-agnostic chat interface
[1.0.3] — 2026-03-04
Fixed
- Calendar view commands (
cal events,cal today,cal week) now query all calendars instead of only the primary — events on secondary/shared calendars are included in results - Added
--calendaroption to calendar view commands to filter by a specific calendar ID
[1.0.2] — 2026-03-02
Added
- Microsoft Graph provider — full Outlook/Exchange support for mail and calendar via
courier auth login --as outlook --provider microsoft --calendaroption oncal create,cal update,cal delete, andcal quickto target a specific calendar by ID--reminder/--no-reminderoptions oncal createandcal update- Headless auto-detection — both providers detect headless environments and fall back to device code auth
Fixed
- Trimmed publish builds now preserve reflection metadata — fixes
Property Get method was not foundon Linux ARM64
[0.1.0] — 2026-02-28
- Initial release with Google provider (Gmail + Google Calendar)
- Multi-account support with aliases and default account
- Mail commands: list, search, read, send, reply, labels, drafts, trash, delete, attachments
- Calendar commands: today, week, events, list, create, update, delete, quick add
- Output formats: text, json, jsonl
- Self-contained single-file builds for win-x64, linux-x64, linux-arm64
