ARNO — Agent Repository Navigation & Operations
以下摘录自该仓库的 README(片段) · 在 GitHub 读完整 README →
The IDE for agents
ARNO gives coding agents what an IDE gives you, served over MCP. Read by symbol,
edit against a known revision, get the compiler's diagnostics back with the
edit, validate with the repository's own commands, see what changed, and
revert to a checkpoint — each step one tool call, none of it through the shell.
Symbol-aware reading is how ARNO finds its way around; the transaction is what
it is for. Where the shell is still the better tool, use it — the question
ARNO has to answer is whether an agent gets more done, at acceptable cost,
with it than without (docs/benchmark.md).
**Half the tokens, more issues fixed.** Claude Code on 12 real closed issues
from cobra (Go), ky (TypeScript), requests (Python) and ripgrep (Rust), judged
by each upstream fix's own hidden tests:
| Claude Code with… | Issues fixed | Tokens per task | Time per task |
|---|---|---|---|
| its built-in tools | 10 of 12 | 1.38M | 215s |
| **ARNO in their place** | **12 of 12** | **0.68M (−51%)** | **163s (−24%)** |
Not just a shorter tool list: against a shell trimmed to Bash, Read, Edit and
Write, ARNO still used 18–25% fewer tokens and fewer turns, in two separate
runs. Sonnet 5, one run per task, four languages —
results and caveats ·
how to set it up.
**Status:** 0.0.14 shipped, the first release without the Jade names; 0.0.11 and earlier were Jade — early, usable, and looking for feedback. **Testing it?**
Start with the tester guide.
For macOS and Linux — Windows isn't supported (here's why, and where to upvote).
Run it again to update. Other ways to install.
---
Table of contents
- Trying ARNO: a guide for testers
- Why ARNO exists
- Install
- Configure your MCP client
- Use it in a container
- The tools
- Repository commands
- Language support
- Design principles
- When the shell is still the right tool
- What ARNO does not do yet
- Stability and versioning
- Telemetry
- Reporting problems
- Development
---
Trying ARNO: a guide for testers
Thanks for testing. Half an hour gets you set up; the useful part is a week or
two of your normal work with it switched on, and then telling us how it went —
**including if you turned it off.**
1. Install ARNO and your language servers
**macOS and Linux:**
**Windows** isn't supported, sorry! If you'd like it to be, please 👍
issue #2 or tell us there why it
matters to you. (WSL 2 runs Linux, so the Linux build may work there, but we
don't test it or take bug reports for it.)
The script picks the build for your OS and CPU, checks it against the
release's checksums and installs it to /usr/local/bin, or ~/.local/bin
when that is not writable — no sudo, no Go toolchain. If that directory is
not on PATH, it offers to add it to your shell profile, and it prints the
absolute path to use as command in your MCP client config. On a first install it then opens
arno-mcp install, a menu that installs the language servers you pick, or
shows how to install them by hand; Enter skips it, and you can run it again
any time. **Run the same command again to
update** — ARNO tells you when a new release is out (see
Update check). (Prefer Go? go install
github.com/julianbei/arno/cmd/arno-mcp@latest works too.) ARNO reads
structure in every language with nothing else installed; exact references,
cross-file rename and type errors on edit need the language's server —
arno-mcp install installs these for you, or by hand:
| Language | Install | Notes |
|---|---|---|
| Go | go install golang.org/x/tools/gopls@latest | First answer about 1.6s. |
| Java | brew install jdtls (needs JDK 21+), or your distro's package | First answer about 8.5s while it indexes. check runs mvn or gradle; with only the Gradle wrapper, have the agent declare ./gradlew build once (step 4). |
| Scala | cs install metals (coursier) | Set ARNO_METALS_IMPORT=1 so metals may import the sbt build (it creates .bloop/ and .metals/). First answer about 22s. |
| Kotlin | — | No grammar or server yet: text search only. Tell us if you need it. |
A missing server is never an error: ARNO says which answers are approximate.
2. Point your agent at a real repository
For **Claude Code**, put this in .mcp.json at the root of the repository you
work in (other hosts: Codex CLI, goose, OpenCode):
That keeps Claude Code's own tools too. For the clearest signal, run some
sessions with ARNO **in place of** them: claude --tools "" with the same
config (why and trade-offs). Restart
or reconnect the client (/mcp) after installing or upgrading ARNO.
3. Check it came up
Ask the agent: *"call arno.capabilities"*. You should see your languages, each