Get started
Get started
There is no hosted service, no sign-in and no sign-up. agent-ops runs under your own GitHub org, AWS account and machine. The source is private to the catesworks org today; ask us for access.
- Step 1
Create the GitHub App
Create an org-owned GitHub App with the repository and Projects permissions in the App setup guide, install it org-wide, and keep its private key in 1Password.
- Step 2
Register the runner
On a macOS machine, run
scripts/install-runner.shto register the self-hosted runner as a launchd service with the labelsself-hosted,macOS,catesworks. - Step 3
Start the bridge and deploy the relay
Run
mcp-agent-bridgeon the runner machine so Claude and the evals are reachable over MCP, and deploy the Lambda relay fromagent-ops-infrawith its org webhook. - Step 4
Onboard a target repo
Run
/ao:onboard-repo-to-agent-ops owner/repoin Claude Code. It checks App coverage, creates the labels, links the Project board and asks whether the repo is public-facing.
Commands from the repository
# On the runner machine (macOS), in a checkout of the control repo
./scripts/install-runner.sh
# The dispatch scripts' tests: no network, no real agents, no real bridge
cd scripts/dispatch && npm install
AGENT_OPS_CLONE_ROOT="$PWD/.work" node test/run.test.mjs # clone root must be writable
# In Claude Code, with the repo's ao plugin marketplace added
/ao:onboard-repo-to-agent-ops owner/repo
# Dispatch one task by hand (the Lambda relay normally does this)
gh workflow run dispatch -R catesworks/agent-ops \
-f tracker=github -f task_id=42 -f target_repo=owner/repo \
-f task_url=https://github.com/owner/repo/issues/42What you need
- A GitHub org with a Projects v2 board whose Status field has Next, Waiting+needs-you and Done
- A macOS machine for the self-hosted runner, with Node, git and the gh CLI
- An AWS account for the Lambda relay
- A 1Password service account that can read the App’s credentials
- Claude Code (through mcp-agent-bridge) or the Codex CLI on the runner machine