Bridge on/off
Agents reach you when the bridge is ON. They fall through to in-IDE chat when it’s OFF.
The toggle that makes “we never bother you” mechanical
The operator’s situation changes constantly. At the desk, in-IDE chat works fine — bridge pings would be noise. Away from the desk, the bridge becomes load-bearing. Without a toggle, every agent ping fires a Telegram message regardless of whether the operator could have just looked at their screen. That’s wasteful and obnoxious.
So Courier ships with a boolean on the customer record: bridge_active. When true, ask_operator_* and notify_operator_* calls route to the chosen channel. When false, they return immediately with a structured fallback response — no message sent, no charge incurred, agent’s continuation path is to use whatever in-IDE interaction the host (Cursor, Claude Code, etc.) provides.
Three control surfaces
The toggle can be flipped from any of three places. Each surface writes the same bridge_channel_state.bridge_active row; the source of truth is one column.
- In-bot Telegram command. Type
/active offto your Courier bot. Type/active onto flip back. Tap-fast, works from your phone. - MCP tool from the agent. An agent (or you, via any MCP-aware tool) can call
set_bridge_active(active). Useful for agent-driven workflows (“I’m going heads-down; flip the bridge off”). - API endpoint.
POST /v1/bridge/activewith{"active": true}or{"active": false}. Same auth as any chassis route (API key, wallet JWT, or x402).
What the agent sees when the bridge is OFF
The ask_operator_* tools return a structured response that the LLM can act on:
{
"status": "bridge_inactive",
"message": "Bridge is OFF. Operator at desk; please use in-IDE interaction.",
"fallback_hint": "ask the user directly in the current IDE session"
}
The exact fallback message is tunable via bridge.active.in_ide_fallback_message. Operators can customize the string to whatever phrasing fits their workflow (“DM me on Slack instead”, or “I’m reachable on Discord”, etc.).
Default state
New customers start with bridge_active = true. You’re opted-in when you sign up; you turn the bridge OFF when you don’t want it. Auto-on / auto-off scheduling (laptop-sleep detection, calendar integration) is a future polish — for now, the boolean is manual.