Set up Horde
Horde is a local control plane for coding agents. It gives you one place to submit software tasks, assign them to configured agents, inspect their work, and connect your own tools through MCP.
Install
curl -fsSL https://horde.sh/install | bashThe installer verifies the release, installs the horde command, and asks whether to start it at login.
horde --version
horde startRun your first task
Start with a Git repository that has an initial commit and a configured Git author. Horde gives each task its own worktree, so the submitted repository remains on its current branch.
horde submit "Add CSV export with tests" --repo /path/to/repository
horde inspect TASK_ID
horde events TASK_ID
horde metrics TASK_IDReplace TASK_ID with the ID returned by submit. Changes are integrated onto a separate worktree. Your checkout stays on its branch; pushing is disabled by default.
To exercise scheduling without model calls, use the simulated template:
horde submit "Exercise the runtime" --repo /path/to/repository --template simulatedConnect your own agent
Add Horde as a stdio MCP server in your agent’s configuration. The same bridge can be used by an existing Slack bot or personal agent.
{
"mcpServers": {
"horde": { "command": "horde", "args": ["mcp"] }
}
}If the agent cannot find Horde, use the absolute path to ~/.local/bin/horde. This bridge has administrative access; worker credentials use a separate, restricted bridge.
The complete operation catalog, its JSON Schema parameters, and the published descriptions of that surface are in the agent reference.
Start, stop, and update
horde runtime status
horde stop
horde update --check
horde updateThe default data directory is ~/.local/share/horde. Use --data-dir /absolute/path consistently for a different instance. Stopping the daemon keeps its durable state.
When you need more
- Work in a project: give each project its own tasks, settings, provider accounts, and worker access.
- Deploy remote workers: connect a child machine and send it work.