Agents in your inbox

Real mailboxes — Outlook and Gmail — with real guards

Agents read, search, draft, file and (when you let them) send mail, open what arrives, attach what they made, and edit the Sheets and Docs you already have. Every outbound action goes through a gate you set.

Microsoft 365

microsoft_mail, microsoft_calendar and microsoft_onedrive — the Outlook twins of the Google tools, per user, owner-only. Outlook mail reads, searches, drafts and files; it never sends. Calendar changes that would email attendees need you to ask.

Gmail sends — opt-in, audited

Every send goes through one gate: a per-user policy (off by default), a recipient allowlist, a daily limit, duplicate suppression, an audit table and a bell per send. The old gws wrapper that could reach around it is retired.

Never the same email twice

Drafts and sends check Drafts and recent Sent for the same recipient and subject and refuse a repeat unless you ask for another copy — in Gmail and Outlook.

Attachments both ways

get_attachment opens what arrives, each email's files in their own folder with the right reader named. Drafts and sends attach saved/ and vfs: files — 20 files, 25 MB, secrets and databases refused.

Filing

Archive, move, labels and folders in Gmail, categories in Outlook — up to 100 conversations per call, with an undo hint, and never a trash or a delete. Organizing is its own permission.

Sheets and Docs, edited in place

Read, update, append and clear ranges; replace, append and insert text — on the same file id, instead of replacing or re-uploading the whole file.

An agentic signature

Set per account, added to every email and draft your agents write — so a recipient always knows an agent was involved.

Topic auto-replies

Off by default. An agent answers inbound mail that is only about one of your narrow topics, with no confirmation. Topics are narrow by construction, senders must pass Gmail's authentication, an outbound guard blocks secrets and card numbers, a second judge reads every reply, and anything doubtful waits as a held card.

New in 0.9.0: any mailbox, and agents with their own address

Connections → Email (IMAP) connects up to 20 inboxes per person (a company mail server, Fastmail, iCloud, Yahoo, Zoho, GMX, Gmail with an app password, or Proton Mail through Bridge), with the password sealed in Flight Deck and sending off until you allow it. imap_mail never deletes. An agent's Identity & email gives it an address and names it answers to, so mail meant for it becomes its task, and Replies in your Gmail stay Drafts unless you choose to send. Agents as colleagues

Agents that don't make things up

Three incidents, three guards

No email nobody asked for

Autonomous Work had drafted about forty unrequested "Re: …" replies once it had earned trust. Mail actions are now human-only — proposed, never auto-fired — and every automated turn may write mail only when its own human-written text asks for that email.

A fabrication guard

An agent answered six send requests in a row with "Sent …", invented Message IDs, and narrated searches — with zero tool calls. Every final reply is now judged: a claimed send or calendar change with no tool call behind it is rejected, never replayed, and the agent is asked, at most twice, for a true reply.

A garbled reply gets a way out

With a Jev key connected, a reply that came out as a loop, token soup or raw tool-call JSON gets a notice recommending /new — on the web, WhatsApp, Telegram and the HUD.

More surfaces

Your agents, wherever you are

The same agents, the same conversation — from a chat app, a pair of glasses, a pocket device, or Claude itself. The agent knows which one you used.

One conversation, and it knows the source

Every message an agent stores records where it came from — web, app, glasses, whatsapp, telegram, device:stopwatch, scheduled — with a label a person reads. The model sees "[via WhatsApp] …" in its history; your chat shows via M5Stack StickS3 (desk) beside a question you asked from the stick. The owner's own Telegram joins the same main conversation, and each source can have its own reasoning effort.

Meta Ray-Ban Display HUD

A Flight Deck built for a 600 × 600 display at /hud/: chat with your agents (approvals, Stop, read-aloud), read their Markdown files, browse the datastore. About 150 KB on the wire, paired with a code you approve at /hud/pair.

WhatsApp, both ways

Agents send pictures, video, audio and documents back; every file you send reaches the agent — albums, stickers, voice notes transcribed. A message sent while the agent is busy is retried in order, every message gets a reaction, and /new answers.

Telegram

One team bot per deck, each member relayed to their own agent after approval. Narration arrives live, voice notes are transcribed, audio and video reach the agent. Agents read a sealed, read-only Telegram inbox ("3 new from Ana") and join groups through the bot's add-to-group link, answering @mentions.

Claude drives your fleet

Flight Deck is an MCP server at /fd/mcp-server. claude.ai and Claude Desktop connect with OAuth 2.1, Claude Code with a personal access token, and get list_agents, send_task, get_result, cancel_task over your own agents.

Your phone

The kiosk has a phone layout of its own — one screen at a time, sheets instead of dialogs, a keyboard that never hides the composer — and an Android app wraps the deck's HUD for a phone's home screen.

Voice, through Flight Deck

Soniox keys live in Flight Deck — each person's own, or a team key — and agents never hold one. The audio tool transcribes a recording and speaks text to an MP3 that WhatsApp, Telegram and the devices deliver.

Keep reading

Try it on real work.

Join the waitlist for Cohort 001, our first early-access group, and you'll get an email when you're in. Or run Captain on your own machine today.