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.24

2Register 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/api

Anything 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 ~/.strazh

Nothing to deactivate remotely.

← Back home