Docs
Install & setup
Strazh runs locally, on your own machine. There’s no cloud service to sign into before you can start gating dispatches. The desktop app is the fastest path today — it bundles the same CLI and MCP server described below, so the allow-list and audit-log steps work identically either way. (Windows is the only platform with a packaged desktop app today; standalone CLI-only distribution isn’t published yet.)
1Install
Grab the desktop app from Download and run the installer. It sets up the strazh CLI, the local MCP server, and the dispatch console together — you don’t need a separate CLI install.
Confirm the CLI landed (open a new terminal after installing):
$ strazh --version
strazh 0.1.242Register an allow-list
Strazh only dispatches into repos you’ve explicitly registered. Add every working directory you actually want a coding agent to touch:
$ strazh allow add ~/projects/app
$ strazh allow add ~/work/api
$ strazh allow list
~/projects/app
~/work/apiAnything outside this list is rejected before a process ever spawns: see it happen on the homepage. There is no bypass route; the gate checks every dispatch against this list, every time. This is the same allow-list file the desktop app reads, so registering a repo here also registers it there.
3Dispatch
Point Strazh at an agent and a registered directory:
$ strazh dispatch --agent claude_code --cwd ~/projects/app --prompt "..."Strazh launches the agent itself, so it is the one thing that can stop it. Environment scrubbing keeps secrets out of the agent’s process, and a timeout tree-kills the whole process group if a dispatch runs away. Every dispatch, approved or rejected, is written to a local, queryable audit log (~/.strazh/audit.jsonl).
4Or connect an MCP client
Prefer to dispatch from inside Cursor, Codex CLI, or another MCP client instead of the CLI directly? Strazh exposes the same gate as an MCP server: a singlePOST /mcp JSON-RPC endpoint on the same local server the desktop app runs (start it with python -m strazh.server if you’re not running the desktop app). Point your client at it with the local token the server prints on startup:
{
"mcpServers": {
"strazh": {
"url": "http://127.0.0.1:8765/mcp",
"headers": { "X-Strazh-Token": "<token>" }
}
}
}This is a local HTTP endpoint, not a separate stdio-based process. A client that only speaks stdio (Claude Desktop, as of this writing) needs a stdio↔HTTP bridge such as mcp-remote in its config to reach it. Clients that support HTTP-based MCP servers directly (Cursor, Codex CLI) can point at the URL above with no bridge. Either way, a dispatch triggered by an MCP client goes through the exact same allow-list, cap, and audit trail as one triggered from the CLI or the desktop app: no separate, less-guarded path.
Supported agents
Strazh dispatches to whichever agent you point it at with --agent:
- claude_code: local CLI, gated and audited.
- codex: local CLI, gated and audited.
- cursor: local CLI, gated and audited.
- devin: cloud sessions, gated and audited, returns a PR rather than running locally.
Uninstalling
Strazh keeps everything, your allow-list, license, and audit log, in~/.strazh/ on your own disk. Uninstall the app from Windows’s usual “Apps & features” list, then remove the local data if you want a clean slate:
$ rm -rf ~/.strazhNothing to deactivate remotely.