Getting started¶
Install aru, initialize a project, and replay its locked state.
Install¶
Aru requires a system git executable.
Install the PyPI distribution named arust:
The distribution name differs because aru was already taken on PyPI, but the installed command remains aru.
Prebuilt wheels support x86-64 glibc Linux and Apple Silicon macOS.
The standalone installer downloads a prebuilt, checksum-verified binary and does not require Rust.
You can use wget instead:
Verify the installation:
Standalone installations can update themselves:
Package-manager installations should be updated through the same package manager instead:
Initialize a project¶
Run init from an existing project directory and name every coding agent the project should support:
Or initialize another directory:
The instruction-capable targets are agents, codex, claude, copilot, pi, and opencode.
Additional canonical targets provide project-scoped Agent Skills only.
Run aru target list --available for the complete registry and aliases such as claude-code, gemini-cli, and kiro-cli.
Initialization creates:
aru.tomlfor human-maintained intent;aru.lockfor exact, reproducible resolution and projection data;.aru/for ignored local cache, ownership, and transaction state.
Adopt existing instructions¶
Specify each existing AGENTS.md file explicitly and preview without writing:
Apply the result:
If an unmanaged destination such as CLAUDE.md already exists, aru reports a collision.
Choose an explicit policy only after reviewing the file:
aru instruction add AGENTS.md src/api/AGENTS.md --merge # preserve Markdown around owned blocks
aru instruction add AGENTS.md src/api/AGENTS.md --force # destructively take over the destination
Warning
--force is destructive takeover. A later removal will not restore the old unmanaged content.
Add a skill¶
Choose exports explicitly for reproducible scripts and CI:
In an interactive terminal, omit selectors to open the searchable multi-select interface:
Verify replay¶
Require the committed lock, then check local synchronization without writing:
Next, learn how to lock and synchronize project state or configure a specific resource: