Unity keeps Agent Skills and agent rule files in one source-of-truth tree and mirrors them into the folders and files used by coding agents such as Codex, Orion, Claude Code, Cursor, OpenCode, etc.
npm install -g @nicolasakf/unity
unity --helpUnity has source directories for skills and rules:
| Scope | Skills source | Rules source |
|---|---|---|
| User | ~/.agents/skills |
~/.agents/rules |
| Project | <repo>/.agents/skills |
<repo>/.agents/rules |
Unity uses these as the source of truth. You or your agent can edit skills and rules in the source directories or in supported agent mirror locations. Unity will guarantee that all linked targets are kept in sync at each scope level.
Initialize user-level Unity:
unity initOn first init, Unity prompts for two things:
- Targets — enter the coding agent(s) you work with separated by commas, e.g
codex, orion. - Projects (optional) — type each repository path you want to sync, e.g
~/projects/my-app.
Note for Coding Agents:
If you are an AI coding agent, use--non-interactiveto disable interactive prompts.unity init --non-interactive [--targets codex,orion] [--projects /abs/path/to/repo]If the targets and/or projects were not specified by the user in their prompt, ask them. At least one target must be enabled. Projects are optional.
Start the watcher:
unity watch --pullUse --pull so Unity watches enabled agent skill directories and rule files as well as each scope’s Unity source. When something changes, Unity pulls from those mirrors into the source and then pushes back out, so edits made inside an agent stay consolidated in the canonical tree. Without --pull, only the Unity source directories are watched: changes there still propagate outward on each run, but edits confined to an agent mirror are not noticed until you run unity pull or unity sync yourself.
For pull, push, sync, env push, project registration, watcher options, targets, diagnostics, import repair, and related CLI workflows, see the Full Setup Guide. Config files, built-in target paths, and sync state are described in Configuration.
