Workstation field guide / agent bundles
Agent bundles
Reference
Bundles
Open a bundle for its tutorial, tasks, inventory and design.
Reference
Harness support
Which harness loads each bundle part.
| Part | Claude Code | OMP | Pi | Zot | Codex |
|---|---|---|---|---|---|
| Skillsskills/**/SKILL.md. Instructions that the agent or the user invokes. | supported | supported | supported | supported | not supported |
| Agentsagents/*.md. Subagent definitions with a role and a tool list. | supported | supported | supported | not supported | not supported |
| Hookshooks/hooks.json. Commands that run on harness events, such as SessionStart. | supported | supported | not supported | supported | not supported |
| Extensionsextensions/. TypeScript modules that add commands and UI to OMP and Pi. | not supported | supported | supported | not supported | not supported |
Reference
Harnesses
How each harness finds the bundles.
| Harness | mise module | Install | Reads | Hooks |
|---|---|---|---|---|
| Claude Code | devtools-claude | mise run claude.bootstrap (runs claude plugin install <bundle>@zenobius-agent-bundles) | .claude-plugin/plugin.json, skills/, agents/*.md, hooks/hooks.json | hooks/hooks.json, loaded with the plugin. Claude runs a cached copy, so reinstall the plugin after a change. |
| OMP | devtools-omp | mise symlinks ~/.omp/agent/bundles/<bundle> to the bundle | package.json (pi key), skills/, agents/*.md, extensions/ | ~/.agents/hooks/<name>.json, in the Claude hook format. devtools-agent links each bundle's hooks.json there. |
| Pi | devtools-pi | mise symlinks ~/.pi/agent/bundles/<bundle> to the bundle | package.json (pi key), skills/, agents/*.md, extensions/ | No hook route is wired. |
| Zot | devtools-agent | mise symlinks ~/.local/state/zot/extensions/<bundle> to the bundle | extension.json, skills/ | The zot-claude-hooks extension (devtools-zot) runs Claude-format hooks. |
| Codexnot supported | — | Not wired. No mise module installs the bundles for Codex. | — | Not supported. |
Explanation
How a bundle works
One folder, three manifests, many harnesses.
An agent bundle is one folder under mise/conf.d/devtools-agent/bundles/. It holds skills, and it can also hold agents, hooks and extensions. Each harness reads the same folder through its own manifest, so one change reaches every supported harness.
A bundle has three manifests. .claude-plugin/plugin.json is for Claude Code, package.json (the pi key) is for OMP and Pi, and extension.json is for Zot. mise installs or links the bundle for each harness. Claude Code installs a copy into its plugin cache. The other harnesses read the folder through a symlink, so they see a change at once.
Hooks use the Claude Code hook format everywhere. OMP reads them from ~/.agents/hooks/, and Zot runs them through the zot-claude-hooks extension. A hook script must exit with code 0 and print nothing when it has nothing to say, so that it never blocks a session.
Skill scripts are relative to the installed skill folder, not to the repository. Each script is TypeScript, run by Bun through mise exec.