Agents you build yourself, wrapped so Oxagen answers their tool calls and keeps their record. Each example is a small, runnable agent with its wrapper in one file you can copy.
A wrapper sends each step of a run through tacho hook --agent <name> on an enrolled machine. Oxagen answers the steps that can be denied before they happen, and records the rest as they finish. The agent holds no Oxagen credential: tacho reads the machine's enrollment. The full protocol is in Wrap an agent.
| Example | What the agent does | Language |
|---|---|---|
| Stripe refunds | Finds duplicate charges and refunds them. An operator pause denies the next refund before it reaches Stripe. | TypeScript |
Claude Code, Codex, and Stella do not need a wrapper from this repository. tacho enroll --harness claude-code,codex,stella installs their hooks, or the Oxagen app does it for you.
- A wrapper that fails closed. If Oxagen cannot be asked, the step is denied.
- A check that the machine is enrolled before the first step, so no run goes unrecorded.
- Tests that run without a model or a real account.
- A README with the exact commands, what you should see, and what the example does not show.
Add an example under examples/<name>/ with its own README.md, .env.example, tests, and a package.json (or the equivalent for its language). Add it to the table above and to the CI matrix in .github/workflows/ci.yml.
MIT