Drive your whole workspace from the command line.

atbridge.ai has a local command line for Thunderbird, so scripts, cron jobs, CI and AI agents can read and act on your emails, calendars, contacts, notes & tasks. JSON in, JSON out — bring any model, keep it on your machine, and every direct operation runs ~20× faster and ~72% cheaper than a cloud mail tool.

Get started — free CLI reference →
The atbridge.ai command line running in a terminal, printing JSON rows that pipe into jq The atbridge.ai command line running in a terminal, printing JSON rows that pipe into jq (dark theme)
Run atbridge from your terminal — JSON in, JSON out. Pipe the results into jq, xargs or any script; it runs on your machine.

One surface of one suite

The command line is one way into atbridge.ai, not a separate app. Behind it is a single private suite for your emails, calendars, contacts, notes & tasks — one subscription and one ops budget, shared with MCP and @bridge inside Thunderbird. Script it here, drive it from your AI client over MCP, or work hands-on in Thunderbird.

What it is

atbridge is one binary — the command line for your whole atbridge.ai suite. Read, send, search and schedule your emails, calendars, contacts, notes & tasks straight from the terminal. Every command prints JSON by default, takes --pretty for a human-readable table, and --help for its flags.

mail contacts calendar tasks notes compose connect skill mcp bridge license
$ atbridge mail list --limit 1
[{"id":"a1b2c3","from":"billing@acme.example","subject":"Invoice #1043","date":"2026-07-18T09:12:00Z","read":false}]

$ atbridge mail list --limit 1 --pretty
ID      FROM                  SUBJECT         DATE        READ
a1b2c3  billing@acme.example  Invoice #1043   2026-07-18  no

Same operations everywhere — the CLI, MCP and @bridge in Thunderbird all call the identical suite underneath.

Built for automation

Designed to live in a pipe and a crontab: predictable JSON, real exit codes, secrets over stdin.

Pipeable JSON

Every command writes JSON to stdout — pipe it into jq, xargs or awk: atbridge mail search --from billing | jq -r '.[].id'.

Cron & CI ready

It is just a binary with exit codes. Drop it in a crontab or a CI step — no daemon to babysit, no window to keep open.

Secrets over stdin

Pipe keys and bodies in (--key-stdin, --md-file) so credentials never land in your shell history or process list.

Stable schemas

List and search return stable, lean JSON rows by default, so scripts do not break. Add --verbose for full per-item detail.

Errors you can branch on

Failures print a structured error to stderr and set a non-zero exit code, so a pipeline can react instead of silently continuing.

Built-in pagination

--offset, --limit and --count page through large mailboxes; lean rows keep payloads — and tokens — small.

Real workflows

A few lines of shell is usually all it takes. Every command below is a real atbridge verb.

Nightly triage cron

Archive last week's newsletters and forward new invoices to accounting — unattended.

# ~/cron/triage.sh — run nightly from crontab

# 1 · Archive read newsletters
atbridge mail search --from newsletter --until 2026-07-13 --snippet --limit 200 \
  | jq -r '.[].id' \
  | xargs -I{} atbridge mail move --ids {} --to Archive

# 2 · Forward this week's invoices to accounting
atbridge mail search --subject invoice --since 2026-07-13 --limit 50 \
  | jq -r '.[].id' \
  | xargs -I{} atbridge mail forward {} --from you@work.example --to accounts@work.example

Send a report from CI

Turn a Markdown build report into a branded HTML email, straight from the pipeline.

# CI step — email the build report as branded HTML
atbridge mail send \
  --from ci@work.example --to team@work.example \
  --subject "Nightly report — build #$CI_RUN" \
  --md-file report.md

Recurring event, with a clash check

Add a weekly standup only after confirming the slot is free across every calendar.

# Check the slot, then create a weekly series
atbridge calendar clash --start 2026-07-20T09:30:00Z --end 2026-07-20T09:45:00Z

atbridge calendar events create --title "Team standup" \
  --start 2026-07-20T09:30:00Z --end 2026-07-20T09:45:00Z \
  --recur "FREQ=WEEKLY;BYDAY=MO,TU,WE,TH,FR"

A token-free morning digest

A deterministic Skill — instant, no AI tokens spent — piped into your notification of choice.

# Your briefing across emails and calendars
atbridge skill run today --pretty
A cron shell script driving atbridge.ai to archive newsletters and forward invoices A cron shell script driving atbridge.ai to archive newsletters and forward invoices (dark theme)
A nightly cron script driving atbridge.ai — it archives read newsletters and forwards new invoices to accounting, all in plain JSON and shell.

Bring your own model — and your own compute

No lock-in on the intelligence. Bring an API key, or bring a coding CLI you already pay for.

Bring your own key — 15 providers

Connect any of 15 providers with atbridge connect activate — OpenAI, Anthropic, Gemini, Mistral, DeepSeek, Kimi, Groq, xAI, OpenRouter, a local Ollama model, or any OpenAI-compatible endpoint. Pipe the key over stdin so it never touches your shell history.

printf '%s' "$ANTHROPIC_KEY" \
  | atbridge connect activate \
      --provider anthropic --key-stdin

Bring your own compute — no API key

Already pay for a coding CLI? Point atbridge.ai at it: it runs claude or codex as a local subprocess under your own login — no API key, and it never counts against your ops budget. Just like a local model: your compute, your account.

atbridge connect activate --provider claude-cli
# or: --provider codex-cli

Either way the model is yours. atbridge.ai is one surface of the suite — it brings the tools; your client brings the intelligence. No model picker to babysit, no per-token cap from us.

Deterministic Skills

Some answers do not need a model at all. Skills read straight across your emails and calendars and print the answer instantly — with zero AI tokens.

/today /week /clashes /from /next-free-slot /birthdays /unread-recent
$ atbridge skill list
$ atbridge skill run today --pretty

The same slash-commands you get in @bridge chat inside Thunderbird — here they are plain commands for scripts and cron.

Local, fast and cheap

The command line runs on your machine and answers locally, so there is no network hop and no full-HTML payload on every call. Point it at a local model and the whole loop stays on your machine; point it at a cloud model and only the specific text you ask about is sent to that provider — your messages are never routed through our servers.

~20×
faster per direct operation — single-digit-ms on your machine vs a ~110 ms cloud round-trip floor
~72%
fewer input tokens than a cloud mail tool — lean rows, not full HTML payloads
~3.5×
cheaper per fetch — you send far less to the model on every call

Pricing

One atbridge.ai subscription is the whole productivity suite — emails, calendars, contacts, notes & tasks — across the CLI, MCP and @bridge inside Thunderbird; the CLI is just one way in. See the landing page and full pricing for the complete picture.

The CLI is on every plan, including Free — metered from one shared ops budget.

Start free — 14 days of full Pro, no card. Early-bird prices below are held while subscribed for anyone who subscribes before Nov 1, 2026.

Free

€0 / month

 

 

The CLI works on Free too — it runs from your 20 ops / month budget. Starts with 14 days of unlimited Pro.

Get started — free

Personal

€4.99 / month

€7.99 standard price after Nov 1

Excl. VAT

Early-bird · held while subscribed

300 ops / month shared across the whole suite — plenty for daily scripts and cron jobs.

Get Personal
FreePersonalPro
Ops / month20300Unlimited
Command-line (CLI)
Devices125
Email accounts1UnlimitedUnlimited

Full comparison →

Frequently asked questions

Can I script it and pipe the JSON output?

Yes — that is the whole point. Every command prints JSON to stdout by default, so you can pipe it straight into jq, xargs or awk: atbridge mail search --from billing | jq -r '.[].id'. Add --pretty for a human-readable table, --verbose for full detail, or --count for just a total. Errors go to stderr and every command sets an exit code you can branch on.

Does it need Thunderbird open, or a GUI?

atbridge.ai works through your local Thunderbird, so it can drive your emails, calendars, contacts, notes and tasks. Thunderbird needs to be installed, running and signed in to your accounts — but you drive everything from the terminal, with no GUI clicks, and the commands themselves never open a window. On a headless box, run Thunderbird in the background and script against it as normal.

What model does it use?

Whichever you bring. Connect any of 15 providers — OpenAI, Anthropic, Gemini and more — with atbridge connect activate, or point it at a coding CLI you already pay for (claude-cli / codex-cli) to run under your own login with no API key. Deterministic Skills like today and clashes need no model at all.

Does it work in cron and CI?

Yes. atbridge.ai is a single binary with structured JSON output and real exit codes, so it drops straight into a crontab, a CI pipeline or any automation. Pipe secrets and message bodies over stdin (--key-stdin, --md-file) so nothing sensitive lands in your shell history.

What does it cost, and which plans include the CLI?

The CLI is on every plan, including Free. It draws from one shared ops budget: 20 ops per month on Free, 300 on Personal and unlimited on Pro. Every new account starts with a 14-day full-Pro trial. The AI conversation itself is free — only the mailbox action it triggers counts as an op.

Is my mail sent anywhere?

No. atbridge.ai runs on your machine and talks to Thunderbird locally, so your messages are never routed through our servers. If you point it at a local model, the whole loop stays on your machine; if you choose a cloud model, only the specific text you ask it to work with is sent to that provider.