open source

One private repo for all your coding agents.

dotagents is a public CLI that keeps your skills, MCP servers, hooks, agent roles, root instructions, and memory tooling in a private ~/.agents repository, then syncs each supported surface into its harness-native format.

~/.agents
$ dotagents status

canonical config: ~/.agents (user owned)

skills        synced   native skill roots
agent roles   synced   native role formats
MCP servers   synced   targeted config entries
hooks         synced   supported lifecycle events
root instr.  synced   AGENTS.md linked per harness
memory tools built    rem + knowledge-sync to ~/.local/bin

Supported harnesses

Managed harnesses get each surface they natively support. Compatibility harnesses get documented paths.

Claude Code
managed
Codex
managed
Factory Droid
managed
Hermes
managed
Qwen Code
managed
π
Pi
managed
OpenCode
managed
Amp
managed

Get started

Install the public CLI, then create a private canonical configuration you control.

Public CLI

Install dotagents

Homebrew, npm, release binary, or Go. No personal configuration ships with the tool.

$ brew install yourconscience/tap/dotagents
# or npm install -g @your_conscience/dotagents
# or go install github.com/yourconscience/dotagents/cmd/dotagents@latest
Private config

Set up your home

Detect harnesses, import existing content by copy, offer git init, and run the first native sync. Removals are previewed per harness before anything is touched.

$ dotagents setup
$ git -C ~/.agents remote add origin <your-private-repo>

Then add a skill and sync it everywhere:

$ dotagents skill new my-skill
$ dotagents sync
synced configured surfaces to detected harnesses

Author the canonical file with dotagents config in the terminal or dotagents view in a loopback browser. The effective local overlay stays separate, and sync is always an explicit reviewed action.

What syncs

Not just skills. The full config surface that fragments across agents.

Sync surface by harness

HarnessSkillsAgent rolesMCPHooksRoot instructions
Ampyes, config--⁑yes--⁑AGENTS.md
Claude CodeyesyesyesyesCLAUDE.md shim
CodexyesyesyesyesAGENTS.md
Factory DroidyesyesyesyesAGENTS link
Hermesyes--yesyesnative ctx
OpenCodeyes†yesyes--native AGENTS.md
Qwen CodeyesyesyesyesQWEN.md link
OMP (pi fork)yesyesyes--‡AGENTS.md
Pi*yesyes*yes*--skills + MCP*

* Vanilla Pi uses pi-subagents for managed roles and pi-mcp-adapter for MCP and Agent Plugin projection. OMP remains a separate target.

† OpenCode reads ~/.agents/skills/ natively — skills need no mirror when the config root is ~/.agents. Its only hook surface is a JS plugin API.

‡ OMP has no managed hook surface in dotagents.yaml yet; register memory hooks manually if needed.

⁑ Amp's hook and role surfaces use plugin-based models incompatible with dotagents' script-based hooks and per-agent role files.

Landscape

Project-level generators win on tool breadth. dotagents is user-level: one private repo across machines, nine targets deep, pinned and audited externals, review-first memory (rem) built in.

How it compares

dotagentsrulesyncruleropenskills
Scopeuser-levelproject-levelproject-leveluser + project
Skills syncyesyesexperimentalyes
MCP syncyesyesyesno
Hooks syncyesyesnono
Agent rolesrendered nativeyesexperimentalno
Pinned + audited externalslock file + auditno pinningno pinningtracks source, no pin
Harness coverage9 deepbroadbroadnarrow
Installcurl / mise / gonpm / brewnpmnpm

dotagents' own harness coverage is shown above; competitor breadth is described qualitatively, since their exact tool counts drift over time. Different tools for different jobs: rulesync and ruler generate per-project config for many tools; dotagents carries one personal setup deeply into the harnesses you live in.