Set it up
Point your agent at this repo and let it do the work. In Empryo, or any agent that can run commands:
Set up SoulStack for me from https://github.com/proxysoul/SoulStack and follow its AGENTS.md.
Or pick just the skills you want, for any agent, with the skills CLI:
npx skills add proxysoul/SoulStack
It lists the skills, asks which to install and for which agents. For Empryo, choose Universal (it installs into .agents/skills, which Empryo reads). Add -g for every project, -s ensoul to skip the picker, --list to only look.
Using GitHub Copilot CLI? SoulStack is also a Copilot plugin, with the skills and the takeaways as rules:
copilot plugin marketplace add proxysoul/SoulStack
copilot plugin install soulstack@soulstack
Or everything, with the setup script. It asks nothing and changes nothing without a backup:
- downloads SoulStack to
~/dev/SoulStack(or updates it) - links the skills into
~/.agents/skills, and~/.claude/skillsif you use Claude Code - links the ten immune cells into Empryo, Claude Code, Copilot CLI and OpenCode
- adds the takeaways to the global rules of every agent it finds:
~/.empryo/EMPRYO.md,~/.claude/CLAUDE.md,~/.codex/AGENTS.md,~/.copilot/copilot-instructions.md,~/.pi/agent/AGENTS.md,~/.config/opencode/AGENTS.md,~/.gemini/GEMINI.md. It followsCLAUDE_CONFIG_DIR,CODEX_HOME,COPILOT_HOME,PI_CODING_AGENT_DIRandGEMINI_CLI_HOMEwhen you set them. Your own rules stay; SoulStack's part sits in a marked block that updates in place - skips anything Empryo-only when Empryo isn't installed
curl -fsSL https://raw.githubusercontent.com/proxysoul/SoulStack/main/scripts/setup.sh | sh
irm https://raw.githubusercontent.com/proxysoul/SoulStack/main/scripts/setup.ps1 | iex
Every file it changes is copied to <file>.bak-<time> first.
Staying up to date
Setup also adds a soulstack command (in ~/.local/bin on macOS and Linux, in your user apps folder on Windows):
soulstack check # is a new version out? changes nothing
soulstack update # get it, set everything up again, show what changed
soulstack remove # take SoulStack out; your own rules stay
update pulls the latest SoulStack, refreshes the skills and the rules block in every agent, and lists what's new. If you changed files in your copy, it keeps them and tells you instead of overwriting. Without the command, running the one-liner again does the same. Copilot plugin users run copilot plugin update soulstack.
From a clone you can also pass:
| macOS, Linux | Windows | Does |
|---|---|---|
--presets proxysoul,proxysoul-mcp | -Presets proxysoul,proxysoul-mcp | Also add my Empryo presets (optional) |
--check | -Check | Change nothing, show what is installed |
--remove | -Remove | Take SoulStack out again; your own rules stay |
--skills <folder> | -Skills <folder> | Link the skills somewhere else |
--plain | -Plain | No colour or animation (automatic for agents and pipes) |
Best with Empryo
SoulStack comes from ProxySoul, the creator of Empryo. It works in Claude Code, Codex, Copilot CLI, pi, OpenCode and Gemini CLI, and goes further in Empryo:
| In Empryo | What it changes |
|---|---|
| Rules reload live | Edits and soulstack update apply on the next message, no restart |
| The Genome | Immune cells ask the code map where a bug lands before they attack or judge it |
project tool | Checks run the same way for every agent: immune, immune:smoke |
| Background agents | tcell-helper runs the other cells in parallel |
| Memory | Confirmed bugs, disproved claims and traps carry over to the next run |
| Browser and computer use | Cells drive web and desktop apps through their real front doors |
| Routines | A nightly /routine patrols and wakes the lead on red |
EMPRYO.md template | Empryo fills it in from the Genome, writing only what the code can't show |
What's inside
My Empryo setup
My global config as three presets in plugins/presets/:
| Preset | Sets |
|---|---|
proxysoul | GPT-6 Sol as the main model, Astra for reviews and second opinions, Luna for grunt work and subagents; Undertow-style theme, desktop appearance, editor, agent features |
proxysoul-trusted | Full autonomy: yolo, auto-approve, every computer-use switch. Trusted machines only |
proxysoul-mcp | MCP servers; tokens come from environment variables, never the file |
Add them with scripts/setup.sh --presets proxysoul,proxysoul-mcp, or for one launch with empryo --plugin <path>. After changing settings in Empryo, refresh them with bun scripts/export-config.ts: it drops machine-only state, moves risky switches into the trusted preset, and refuses to write anything that looks like a secret.