Empryo
Graph-powered code intelligence — multi-agent coding with codebase-aware AI
#Empryo
previously SoulForge
Code in context.
AI coding with a map of your codebase.
Website · Download · Benchmarks · Changelog · Discussions · Discord
SoulForge is now Empryo — the same symbol-level, graph-powered agent, rebuilt with a desktop app, a faster engine, and a composable core. This repository is Empryo's public home for issues and discussions.
#Install
# macOS / Linux curl -fsSL https://empryo.com/install.sh | bash # Windows (PowerShell) irm https://empryo.com/install.ps1 | iex
Official installers and direct downloads are available only from empryo.com/download. Empryo is not distributed through Homebrew, WinGet, or npm.
empryo --set-key anthropic sk-ant-... # or run locally with Ollama — no key required cd your-project empryo
Desktop app and prebuilt binaries: empryo.com/download. Runs on macOS, Linux, and Windows. Do not download Empryo binaries from GitHub Releases or third-party package managers.
#Why Empryo
Most coding agents grep, read whole files, and patch strings — they never know what depends on the code they just changed. Empryo builds understanding before it mutates anything:
- It maps before it reads. On launch, tree-sitter parses your repo into a live graph — every symbol, import, and call site, ranked by PageRank and git co-change. Graph queries answer in milliseconds and cost zero LLM tokens.
- It knows the blast radius. Before an edit, the agent sees what imports a file, what historically changes with it, and how far a change ripples — "what breaks if I touch this?" is answered before the first keystroke.
- It edits through the AST. 65+ symbol-level operations, atomic batches with all-or-nothing rollback, structural edits across 30+ languages, and a typecheck as the gate. Nothing breaks on whitespace.
- It treats tokens as spend. The graph does the navigation models usually burn context on — fewer reads, fewer steps, smaller bills at any scale.
#What's inside
| Code genome | live dependency graph: tree-sitter across 30+ languages, PageRank + git co-change ranking, blast-radius tags, millisecond search |
| Symbol-level editing | 65+ AST operations (atomic, with rollback) + structural edits in 30+ languages |
| Multi-agent | parallel explore/edit agents with a shared I/O cache — cheap models scout, strong models write |
| Task router | ten routable roles, any model in any seat, per tab — your own mixture of experts |
| Time machine | every prompt is a git checkpoint; rewind code and conversation together, land on any turn |
| Three surfaces | native desktop app, full terminal UI, headless CLI for scripts and CI — one genome, three phenotypes |
| LSP + MCP | 576+ language servers via Mason, any MCP server, 13 lifecycle hooks |
| Free compaction | structural context compaction with no LLM call — long sessions stay cheap |
#One agent, many brains
Empryo isn't one model in a loop — it's a crew, and you assign the seats. Every role is a routable slot that takes any model from any of the 22 providers:
brain · spark scout · ember code · explore · verify review · goal review · desloppify · summarize · compact · web search
- Per tab. Each workspace tab carries its own routing — a frontier model writing code in one tab, a fast cheap one triaging issues in the next, a local model on a private repo in a third.
- Per config. Set defaults globally or per project; override any slot from the tab. Cheap models scout, strong models write, reviewers judge with clean context.
- Custom agents. Define your own agents — a prompt, a model, a tool policy — and dispatch them alongside the built-ins. Mix and match providers freely inside a single run.
- Cache-aware by design. Routing keeps prompt-cache prefixes stable — sub-agents inherit their parent's cache line, so repeated context bills at cache-read rates instead of full price.
- Costs, itemized. Live spend tracking per model, per sub-agent, per tab, per session, per day — you always know where the tokens went.
#Benchmarks
Head-to-head against pi — same models, same repositories, same tasks. The graph does more with less:
| Round 1 3 bugs × 3 models | Round 2 5 real bugs · hono / zod / ky | |
|---|---|---|
| Bugs fixed | 8/9 vs 7/9 | 7/10 vs 6/10 |
| Cost | 28% lower — $1.13 vs $1.58 | 23% lower — $7.08 vs $9.19 |
| Wall-clock | 57% faster — 4m 16s vs 10m | 32% faster — 22m 30s vs 32m 55s |
| Efficiency | 5.7× fewer input tokens — 1.09M vs 6.21M | 28% fewer steps — 274 vs 382 |
Round 2 used real bugs from merged PRs (post-training-cutoff, history scrubbed, regression tests injected after each run). Full methodology and transcripts: empryo.com/benchmarks · reproduce at proxysoul/pi-vs-empryo-bench.
#Private by design
Empryo runs entirely on your machine. Bring your own key — Anthropic, OpenAI, Google, Groq, DeepSeek, Bedrock, and 16 more, or any OpenAI-compatible endpoint — or run fully local with Ollama / LM Studio. No proxy in the middle, no code leaving your machine, no per-seat fee. Free to use.
#SoulForge
SoulForge remains available to download and install, and continues to receive fixes for bugs and critical issues. New features and active development have moved to Empryo.
brew tap proxysoul/tap && brew install soulforge # or bun install -g @proxysoul/soulforge
#This repository
- Issues and Discussions — the home for Empryo bug reports, questions, and ideas.
- The SoulForge source remains archived here under its existing license (see
LICENSE).