Railpane
RAILPANE INPUT · MULTI-AGENT COORDINATION

Ballast

Git traffic cop for parallel humans and agents, on your own machine. Tasks → isolated git worktrees → a dumb runner executes ONE command → changeset → overlap/rebase check → approve/integrate. 1.0.0 local release, not hosted SaaS.

github.com/GregDixonMXN/ballast · Go + Next.js · License: MIT

Railpane role

Railpane is not Ballast. It reuses only what strengthens sessions, task identity, isolated workspaces, runners, change ownership, and concurrent-agent governance. Ballast remains primarily an orchestration/workflow project.

Start locally

Prereqs: Go 1.27.1+, Node 24, Git, Bash, curl, Python 3 on Linux.

./scripts/build.sh
./scripts/start.sh
# open http://127.0.0.1:3000

start.sh launches API + dashboard only — never a worker, model, or task. Prove with no model:

./scripts/demo-green.sh  # one task, one file, end to end
./scripts/demo.sh        # two writers, one file: loser marked, never force-merged

Bring your own agent

# task command is the whole agent:
command: sh -c 'echo one >> src/a.txt'
# or: command: claude -p "add retry logic to src/net.py"
# or: command: codex exec "fix the failing test in web/"

Runner claims one READY task under lease, runs with cwd pinned to that task's worktree, enforces timeout, runs test_command, opens a changeset from the git diff. Exit codes are evidence; model claims are not.

Annalist + Paldron wrapping

annalist run -- paldron exec --policy <paldron.toml> -- <TASK_CMD>

Automatic when both binaries are on PATH. Worktrees separate directories, not OS authority — Ballast is not a sandbox. Supported topology: one control plane + same-host runners. Not multi-tenant SaaS.