Batonv0.3.9

Remote access: phone, web, other agents

The web view

baton web          # this machine only
baton web --lan    # reachable from your phone on the same network — scan the QR code

Or /web inside the TUI (press l there to allow your network, c to copy the link). You get one page that works on a phone and on a big screen:

On a desktop the run's details sit on the right (an agent's model, cost, files and conflicts; otherwise totals, the plan and what's waiting to be merged). On a phone the views are tabs at the bottom.

It updates live and keeps running inside the daemon after the command exits; baton web --stop turns it off. [remote] autostart = true starts it with the daemon, and port = 4777 keeps the address stable for bookmarks.

Security.

Approve from a notification

With a webhook set to ntfy (notify.webhook = "https://ntfy.sh/<topic>", notify.webhook_format = "ntfy"), approval notifications get Allow and Deny buttons. Slack messages get links. They work when your phone can reach the web view: either baton web --lan on the same network, or remote.public_url set to how the phone reaches this machine (for example a Tailscale address).

Each button is a link signed for that one request. It carries no token, and the signature only allows that answer to that question. Opening such a link in a browser (or a chat app's link preview) only shows a confirm button: nothing is approved without a POST.

Baton as an MCP server

baton mcp serves Baton over MCP (stdio), so another agent or app can hand work to your Baton team:

claude mcp add baton -- baton mcp --root /path/to/project
Tool
run_taskgive the lead a task; waits until the team is done or needs a decision, then reports
status · waitagents, unmerged changes, everything that needs a decision
answerallow / always / deny a pending approval
diff · mergereview and land an agent's changes
message · interrupt · set_autonomysteer the team

Sharing a run

baton export <run> --format html (or h in the history screen, ctrl+r) writes the whole run as one self-contained page: a summary, then every agent's messages, tool calls (with diffs), bus traffic, reviews and merges on one timeline. No scripts or external assets, so it can be attached or hosted anywhere.

Baton 0.3.9 · MIT · Edit this page on GitHub