baton app
macOS compiles a small AppKit host from hud/ on first launch (Xcode or Command Line Tools). Linux and Windows open an app-style browser window. baton hud remains an alias. No App Store download.
Instructions
Then any MCP client on that machine can list targets, run them, and read evidence. The daemon binds 127.0.0.1 only.
1 · Package
Requires Node.js 24+. macOS, Linux, and Windows. Commands are baton, baton-daemon, and baton-mcp.
npm install -g github:kanumuri9593/Baton#v0.2.6 baton app
npm install -g github:kanumuri9593/Baton#v0.2.6
On npm: npm install -g baton-run. One-shot without a global install: npx -y --package=github:kanumuri9593/Baton#v0.2.6 baton list.
2 · MCP
The first tool call starts the daemon if needed. Use this with any client that accepts an MCP server configuration.
{
"mcpServers": {
"baton": { "command": "baton-mcp" }
}
}
{
"mcpServers": {
"baton": {
"command": "npx",
"args": ["-y", "--package=github:kanumuri9593/Baton#v0.2.6", "baton-mcp"]
}
}
}
MCP cannot boot simulators yet. Use the CLI baton boot "iPhone 17 Pro", or run against a device that is already up. run_target waits only briefly for a device.
3 · App and CLI
macOS compiles a small AppKit host from hud/ on first launch (Xcode or Command Line Tools). Linux and Windows open an app-style browser window. baton hud remains an alias. No App Store download.
baton list · baton run "<target>" --branch origin/main · baton reload --all · baton logs "<session>" -n 80 · baton doctor --json · baton diagnose
4 · Troubleshooting
An old baton-run@0.2.0 tried to import TypeScript directly. Remove it, then install from GitHub.
npm uninstall -g baton-run npm install -g github:kanumuri9593/Baton#v0.2.6
Do not put secrets in launch files that will be committed. Do not expose the daemon port.