One private repo for all your coding agents.
dotagents is a public CLI that keeps your skills, MCP servers, hooks,
and agent roles in a private ~/.agents repository, then syncs
each supported surface into its harness-native format.
$ 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
Supported harnesses
Managed harnesses get each surface they natively support. Compatibility harnesses get documented paths.
Get started
Install the public CLI, then create a private canonical configuration you control.
Install dotagents
Use a release binary or Go. No personal configuration ships with the tool.
$ curl -fsSL https://raw.githubusercontent.com/yourconscience/dotagents/main/scripts/install.sh | sh # or go install github.com/yourconscience/dotagents/cmd/dotagents@latest
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
What syncs
Not just skills. The full config surface that fragments across agents.
Sync surface by harness
| Harness | Skills | Agent roles | MCP | Hooks | Root instructions |
|---|---|---|---|---|---|
| Claude Code | yes | yes | yes | yes | CLAUDE.md shim |
| Codex | yes | yes | yes | yes | AGENTS.md |
| Factory Droid | yes | yes | yes | yes | AGENTS link |
| Hermes | yes | -- | yes | yes | native ctx |
| OpenCode | yes†| yes | yes | -- | native AGENTS.md |
| Pi* | yes | --* | --* | -- | -- |
* Vanilla pi is skills-only by design; on the OMP fork dotagents additionally manages agent roles and MCP servers. † OpenCode reads ~/.agents/skills/ natively, so skills need no mirror when the config root is ~/.agents; hooks are a JS plugin surface only.
Landscape
Project-level generators win on tool breadth. dotagents is user-level: one private repo that follows you across machines, six harnesses deep, with pinned and audited external skills.
How it compares
| dotagents | rulesync | ruler | openskills | |
|---|---|---|---|---|
| Scope | user-level | project-level | project-level | user + project |
| Skills sync | yes | yes | experimental | yes |
| MCP sync | yes | yes | yes | no |
| Hooks sync | yes | yes | no | no |
| Agent roles | rendered native | yes | experimental | no |
| Pinned + audited externals | lock file + audit | no pinning | no pinning | tracks source, no pin |
| Harness coverage | 6 deep | 35 broad | 31 broad | ~5 |
| Install | curl / mise / go | npm / brew | npm | npm |
Counts verified 2026-07-15 against each project's docs. 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.