# Show HN: A light-weight CLI that keeps your skills and rules in sync

> Source: <https://github.com/nicolasakf/unity>
> Published: 2026-08-20 14:02:03+00:00

Unity keeps [Agent Skills](https://agentskills.io/home) 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 --help
```

Unity 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 init
```

On **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-interactive`

to 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 --pull
```

Use ** --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

**, 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**

`--pull`

**or**

`unity pull`

**yourself.**

`unity sync`

For ** pull**,

**,**

`push`

**,**

`sync`

**, project registration, watcher options, targets, diagnostics, import repair, and related CLI workflows, see the**

`env push`

**. Config files, built-in target paths, and sync state are described in**

[Full Setup Guide](/nicolasakf/unity/blob/main/docs/full-setup-guide.md)**.**
