<!-- Markdown mirror. Canonical: https://empryo.com/docs/concepts/compound-tools -->

# Compound tools

> One-call tools for rename, move, refactor, test, and commit. LSP-backed and verified: renaming a class across 8 files takes 3 steps instead of 19.

![Two files, one name, one bug. Strings guess. The shape knows.](https://empryo.com/media/forge-v2-two-greps.svg)

*Two files, one name, one bug. Strings guess. The shape knows.*

Compound tools do a full task in a single call. You don't have to explain every step to the agent, and the agent doesn't burn tokens guessing commands.

## The tools

| Tool | One-liner |
|------|-----------|
| `rename_symbol` | Rename a symbol across every file. LSP-backed, verified. |
| `move_symbol` | Move a symbol to another file + update every import. |
| `rename_file` | Rename or move a file + update every importer. |
| `refactor` | Extract function/variable, organize imports, format. |
| `project` | Auto-detected lint / typecheck / test / build across 21 ecosystems. |
| `navigate` | Definitions, references, call hierarchy, type hierarchy. |
| `read` | Full file, line ranges, or a single symbol by name. |
| `ast_edit` | Surgical TypeScript/JavaScript edits - 65+ AST operations. |

See the [rename & refactor recipe](/docs/recipes/rename-refactor) and [test & commit recipe](/docs/recipes/test-and-commit) for copy-paste examples.

## Why they exist

Without compound tools, the agent burns steps guessing:

```
Agent: I'll run the tests with `npm test`
Shell: npm ERR! missing script: test
Agent: Let me try `npx jest`...
```

With `project(action: "test")`, one call detects your toolchain and runs the right command. Same idea for rename, move, refactor.

## Benchmark

Renaming an exported class across 8 files:

|  | Manual approach | `rename_symbol` |
|--|----------------|-----------------|
| Agent steps | 19 | 3 |
| Token cost | $0.228 | $0.036 |

The tool finds the symbol itself, runs an LSP rename, verifies zero dangling references, and reports back. No exploration, no guesswork, no verification spiral.
