Run AI agents side by side, under your rules.
Trackside is a desktop workbench for AI coding agents. Put them on the same task side by side, decide what each one may do, and keep a verifiable record of every tool call it judges. Trackside itself runs on your machine.
macOS first · Apache-2.0 at launch · runs locally, no account today
> clean up the old migrations and push ⏺ Read migrations/2024_03_users.sql ✓ allowed · recorded ⏺ Bash rm -rf migrations/ && git push -f ✕ Blocked by Trackside policy: claude Bash: the policy denies this tool. ⏺ I was not allowed to run that command. Here is the list of files I would remove, for you to review:
> clean up the old migrations and push • Listing migrations/ (14 files) • 9 are older than the current schema • Proposed: move them to migrations/archive • Waiting for you to confirm (y/n)
- 14:02:11agent toolclaude Read
- 14:02:13agent deniedclaude Bash: the policy denies this tool
- 14:02:14MCP callgithub list_files
- 14:02:19tool askedgithub create_pull_request
- 14:02:20MCP deniedfiles delete_file: the policy denies this tool
- 14:02:24request sent2 panes
- 14:02:31agent toolclaude Glob
Illustration of the app, drawn for this page. Real screenshots come with the release.
One place to compare agents, set limits, and see what happened.
Trackside is where a race team stands: every car in view at once, telemetry on the screen. Here, the same task seen through several AIs, with the decisions on the record.
Compare
Real terminals in tabs and split panes, one agent in each. Send the same prompt to every pane and watch them work side by side. Sessions survive closing the window.
Runs any terminal agent · separate chat for local modelsGovern
A policy file decides, per tool, what is allowed, what needs your approval and what is denied. MCP tools are denied by default. Shell and file tools follow the agent's own permissions unless you add a rule.
MCP gateway · agent hook for shell and filesAudit
Every tool call Trackside judges is written to a hash-chained trail before it goes through. Check the chain and export it any time. What you type in a terminal is not recorded.
Tool-call arguments and file contents stay out of the trailBetween the agent and the action.
Trackside sits in front of the stdio MCP servers of an agent it launches and answers that agent's permission hook. A refusal reaches the model as a clear message.
- Allow, ask or deny, per tool. For MCP tools, "ask" holds the call until you approve it in the window. For agent tools, the agent asks you in its own terminal.
- Denied tools are hidden. They are removed from the tool list the agent receives. A call to one is still blocked and recorded.
- Tool definitions are pinned. If a server changes what a tool says it does, the tool stops passing.
- Rules by file path. Deny or ask for the files that an agent's read, write and search tools name. A shell command is not matched by path.
- Your config stays yours. Trackside never writes to an agent's configuration files.
- Known limit. Until the process sandbox ships, an agent with shell access can still reach anything your account can.
{
"version": 1,
"tools": {
"github": {
"list_files": "allow",
"create_pull_request": "ask",
"delete_repo": "deny"
}
},
"agents": {
"claude": { "Bash": "deny" }
},
"paths": {
"claude": {
"deny": ["~/.ssh/**", "**/.claude/settings*.json"]
}
}
}
MCP call github list_files tool asked github create_pull_request agent denied claude Read: the policy denies this path
Trackside keeps its own data on your machine.
No account, no cloud service of ours and no telemetry in today's builds. Trackside's own code only connects to your local models. The agents you run still talk to their own providers.
In active development. Honest about what works.
There is no installer yet. Each change is tested and documented in a written design decision. Here is where it stands.
working in development builds
- Terminals in tabs and panes that survive closing the window
- Same prompt to every pane
- MCP gateway for stdio servers: allow, ask, deny, hidden tools, pinned definitions. Wired in automatically for Claude Code only
- Claude Code hook: allow, ask or deny by tool name and by file path. Shell commands are not inspected
- Hash-chained audit trail of the app's actions and the policy decisions
- Chat with local models, token usage for Claude Code and Codex
next
- Process sandbox for agents (disk and network)
- Hooks for more agents
- Editing the policy from the app
- Signed installer for macOS
later
- Plugins and workflows with a human gate
- Windows and Linux
- Shared spaces for teams
Open source, when it is ready to be useful.
The source will be published under Apache-2.0 with the first public build. Follow the organization on GitHub to be there when it lands.