Buddy Agent Harness
An agent plugin and CLI for initializing or updating a consumer repository's standards-based agent configuration across agent harnesses.
Install the plugin
In Claude Code, add the cyberplace marketplace and install the plugin and its init-buddy-agent-harness skill:
/plugin marketplace add cyberuni/cyberplace
/plugin install buddy-agent-harness@cyberplace
CLI
init runs behind the init-buddy-agent-harness skill, which sorts the configuration you already wrote before the command links anything. Install the package alongside repobuddy to mount every command on buddy, as buddy agent-harness doctor, buddy agent-harness init, and buddy agent-harness dep-plugins.
The repository root's AGENTS.md and .agents/ tree are canonical: .agents/AGENTS.md holds shared behavior, .agents/skills/**/SKILL.md holds capabilities, and separately named files hold tool settings. The active harness is enabled by default; explicit user preferences add others. The command preserves user-authored configuration and projects only supported mappings; it records nothing on disk.
init takes --root, --copy, --force, and --format; --help lists them.
doctor is the read-only counterpart, and the one command worth running without any of the above. It reports whether the bridges init created still resolve after a clone — the common failure being a Windows checkout with core.symlinks=false, where git writes a committed symlink out as a regular file and the harness silently loads no skills:
npx -y buddy-agent-harness doctor
dep-plugins derives a marketplace catalog for plugins shipped by this repository's own dependencies, so a harness can install them — reaching a whole plugin (agents, commands, hooks, MCP servers) rather than only its skills:
npx -y buddy-agent-harness dep-plugins
It writes the catalog, then reports what each detected harness needs to match it and the command that does it. It never touches harness state itself. Claude Code and Codex install from this catalog; Copilot CLI rejects an npm marketplace source, and Cursor exposes no plugin subcommand from a terminal.
It never repairs anything and always exits 0; each finding names the init command that fixes it.