Agent Connector Examples
Use ruhroh examples to see the packaged tasks, agent connectors, and reviewer commands:
bash
pnpm exec ruhroh examples
pnpm exec ruhroh examples --jsonRuhroh has two ways to call an agent:
custom-shellis the supported public path for most users. It runs a command wrapper with Ruhroh environment variables and reads the wrapper's completion line orRUHROH_RESULT_PATHresult file.- The TypeScript connector lifecycle is the advanced extension point for native integrations. Use it only when a command wrapper cannot preserve the agent behavior or metadata you need.
Credential-free examples:
examples/adapters/fixture-newsletter/run.shexamples/evaluators/fixture-newsletter/run.shexamples/scenarios/simple-newsletter
Live-agent connector examples:
examples/adapters/kestrel-cli/run.shexamples/adapters/codex-cli/run.shexamples/adapters/claude-code/run.shexamples/adapters/gemini-cli/run.shexamples/adapters/aider/run.sh
Each live wrapper uses custom-shell. Set the wrapper command, then run doctor before spending time on a live benchmark:
bash
export RUHROH_RUN_AGENT_COMMAND="$PWD/examples/adapters/codex-cli/run.sh"
export RUHROH_RUN_AGENT_COMPLETION_PROTOCOL=json-final-line
pnpm exec ruhroh doctor --scenario-dir examples/scenarios --adapter custom-shell
pnpm exec ruhroh run --scenario-dir examples/scenarios --scenario simple-newsletter --adapter custom-shell --dry-runFor a project-local wrapper, start from the scaffold:
bash
pnpm exec ruhroh new-adapter local-agent
pnpm exec ruhroh new-adapter codex-local --template codex-cli
$EDITOR ruhroh/adapters/local-agent/run.sh
pnpm exec ruhroh doctor --scenario-dir ruhroh/scenarios --adapter ./ruhroh/adapters/local-agent/run.shUse --template generic for a safe fail-fast skeleton, or choose codex-cli, kestrel-cli, claude-code, gemini-cli, aider, or fixture to copy one of the maintained example wrappers into your project. The generic scaffold is intentionally not a passing benchmark connector. It writes the expected result shape and fails fast until the placeholder command is replaced with a real agent invocation.

