Skip to content

proxysoul/soulforge

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

815 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Fuel the Forge


SoulForge

VersionΒ  LicenseΒ  CIΒ  Headless ForgeΒ  TypeScriptΒ  Bun



SoulForge

Star History Chart

The agent that treats code as code

~5 tokens

to change a function return type
(AST edit vs ~100 lines of oldString)

~$0

average compaction cost
(V2 extracts as you go)

34 β†’ 5

messages after compaction
with 0 LLM tokens spent

Every other AI coding tool treats your codebase as text. It greps, it pastes 500-line files into context, it builds oldString/newString blobs and prays the whitespace matches. Half the turn is orientation. The other half is string-matching roulette.

SoulForge treats code as code. On startup it parses your project into a live Soul Map β€” every file, symbol, import edge β€” ranked by PageRank and git co-change. Forge opens every turn oriented: it reads single symbols by name (not whole files), edits TS/JS through the AST (symbol kind + name, 65+ ops, zero text matching), and rewrites the rest with line-anchored edits that never drift.

What that means in practice:

  • ast_edit changes a return type with value: "Promise<User>" β€” no oldString, no whitespace failures, no line-offset math.
  • Reads pull one function by name, not an 800-line dump. Context stays lean.
  • V2 compaction serializes structured state as the conversation happens β€” when context fills, it compacts for free.
  • Sub-agents share a read cache, so 3 parallel explorers don't re-open the same file 3 times.

Same work, a fraction of the tokens, a fraction of the seconds.

Not your average CLI

🧠 Live Soul Map

SQLite graph of every file, symbol, and import β€” PageRank-ranked, git-co-change-aware, personalized per turn. Renders into the system prompt with blast radius tags so the agent knows which edits ripple. Learn more

πŸ”ͺ Surgical reads across 33 languages

Read a single function by name. A 500-line file becomes a 20-line extraction. TypeScript, Python, Rust, Go, Java, Ruby, C/C++, Swift, Kotlin, Elixir, Zig, Solidity, and more. Learn more

πŸ€– Parallel agents with shared cache

Forge dispatches explore, code, and web-search agents in parallel. Files one reads are cached for the others β€” 3 agents don't re-read 3x. Real-time findings propagate between them. Learn more

πŸ’° Free compaction

V2 compaction tracks structured state as the conversation happens β€” files touched, decisions, failures, tool results. When context fills up, serialization is instant and typically costs zero LLM tokens. Learn more

🎯 One call, complete job

rename_symbol runs LSP rename, verifies zero dangling refs, reports back. move_symbol moves a symbol and updates every import across TS/JS, Python, and Rust. project auto-detects your toolchain across 23 ecosystems. Learn more

πŸ”¬ AST-native editing

ast_edit addresses TS/JS symbols by name, not text. 65+ operations. Changing a return type costs ~5 tokens instead of 100 lines of oldString. Atomic batches, auto-rollback. Learn more

πŸ“ Your Neovim, embedded

Real Neovim in a PTY β€” your config, your plugins, your LSP servers. Agent edits route through the same editor you use. Over SSH, in tmux, wherever.

🎚️ Mix-and-match models

Haiku for exploration. Sonnet for code. Flash for compaction. The task router wires a different model to each job β€” cheap work goes to cheap models. 21 providers + any OpenAI-compatible API.

πŸ“± Reach your forge from anywhere

Hearth turns a running SoulForge into a remote agent. Telegram or Discord. Tap-to-approve for destructive ops, auto-redaction of secrets. Your code never leaves your host. Learn more

β†Ά Undo any turn

Every prompt is a checkpoint. Ctrl+B / Ctrl+F walks history. Branching from any point rewrites the conversation AND restores files on disk. Learn more

πŸ“‘ Tab-aware file claims

Up to 5 tabs per project with independent model, mode, session, and checkpoints. Tabs see each other's claimed files and active agents. Git hard-blocks during cross-tab dispatch, partial commits are impossible. Learn more

πŸͺ Drop-in Claude Code hooks

13 lifecycle events (PreToolUse, PostToolUse, compaction, subagents). Reads your existing .claude/settings.json β€” no rewrites. Learn more

πŸ”Œ MCP-compatible

Any Model Context Protocol server works out of the box. stdio, HTTP, SSE. Auto-reconnect, namespaced tools. Learn more

🧩 Skills

Install domain-specific skills with Ctrl+S. Bun development, Three.js fundamentals, product marketing, whatever. Approval-gated, scoped per session.

And a lot more
  • Steering β€” type while the agent works, messages inject mid-stream. More
  • Lock-in mode β€” hide narration, show only tool activity and final answer
  • Inline images β€” pixel-perfect images and animated GIFs via Kitty graphics protocol
  • 24 themes β€” Catppuccin, Dracula, Gruvbox, Nord, Tokyo Night, Rose Pine, and more. Hot-reload custom themes. More
  • Floating terminals β€” Ghostty-powered PTYs next to the chat
  • Plan mode β€” research, write a structured plan, you approve, then execute. More
  • Memory β€” persistent SQLite memory across sessions, scoped per project or global
  • Pre-commit enforcement β€” git commit auto-runs lint + typecheck; fails block the commit
  • 100 slash commands β€” full reference

Install

brew tap proxysoul/tap && brew install soulforge

macOS and Linux. Neovim and a Nerd Font auto-install on first launch.

Windows: not natively supported. Use WSL for now. Tracked in #57.

Other install methods
# Bun (global)
bun install -g @proxysoul/soulforge

# Prebuilt binary
# download from https://github.com/ProxySoul/soulforge/releases/latest
tar xzf soulforge-*.tar.gz && cd soulforge-*/ && ./install.sh

# Source
git clone https://github.com/ProxySoul/soulforge.git && cd soulforge && bun install && bun run dev

Get a key

Pick any one.

soulforge --set-key llmgateway sk-...         # one key for every major model, up to 30% off frontier
soulforge --set-key anthropic sk-ant-...      # or any individual provider you already have
soulforge                                     # launch, Ctrl+L to pick a model

All providers Β· Custom providers

How it compares

SoulForge Claude Code Codex CLI OpenCode
Codebase awareness Live SQLite graph β€” PageRank + git co-change, blast-radius tags, per-turn personalization File reads + grep File reads + grep File reads + grep
Cost tactics Surgical reads, parallel shared cache, free V2 compaction, model-per-task router Auto-compaction Server-side compaction Auto-compaction
Code intelligence LSP β†’ ts-morph β†’ tree-sitter β†’ regex, 33 languages, Mason installer (576+ servers) LSP via plugins β€” LSP auto-load
Editor Embedded Neovim β€” your config β€” β€” β€”
Remote control Hearth: Telegram, Discord β€” β€” β€”
Multi-agent Parallel dispatch + shared cache + edit coordination Subagents + Teams Multi-agent v2 Multi-session subagents
Hooks 13 events, Claude Code drop-in compatible Hooks (PreToolUse, etc.) β€” β€”
Providers 21 + any OpenAI-compatible Anthropic only OpenAI only 75+ via Models.dev
License BSL 1.1 (converts to Apache 2.0 in 2030) Proprietary Apache 2.0 MIT

Verified April 2026. Report inaccuracies.

Real numbers

All from SoulForge's own codebase, on Claude Sonnet 4.6:

Rename a class across 8 files 19 steps, $0.228 (text edits) β†’ 3 steps, $0.036 (rename_symbol)
Change a function return type ~100 lines of oldString/newString β†’ ~5 tokens with ast_edit
Compact a 34-message session V1 LLM summary: ~8k output tokens, 5-15s β†’ V2: 0 tokens, instant
Post-compaction conversation 4.5M prompt tokens β†’ 7.5k tokens (context utilization 6% β†’ 4%)

Claude Code's Explore subagent averages ~$0.70 per 5-minute research run with Haiku. SoulForge matches it when you route spark to Haiku via the task router β€” with the added benefit of full repo-map context.

Try it

brew tap proxysoul/tap && brew install soulforge
cd your-project
soulforge

Then:

> rename AgentBus to CoordinationBus across the project
> run tests and commit

Pair a Telegram/Discord bot once with /hearth pair, then keep chatting from your phone β€” the session auto-syncs both ways.

Full docs at soulforge.proxysoul.com.

License

Business Source License 1.1. Free for personal and internal use. Commercial use requires a commercial license. Converts to Apache 2.0 on March 15, 2030.


Open-sourced March 30, 2026. Built by proxySoul

About

Graph-powered code intelligence, multi-agent coding with codebase-aware AI. No more grep & pray

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Contributors

Languages