Skip to main content

Documentation Index

Fetch the complete documentation index at: https://soulforge.proxysoul.com/llms.txt

Use this file to discover all available pages before exploring further.

Up to 5 tabs per project. Each is a fully independent workspace. Tabs are aware of each other, so parallel work does not collide, and git operations never capture partial changes.

Per-tab state

WhatIndependent per tab
Active modelYes (Ctrl+L inside the tab)
Forge modeYes (Ctrl+D: default, architect, socratic, challenge, plan, auto)
Session and messagesYes
Checkpoint historyYes (git tags namespaced by tab ID)
Agent dispatches and findingsYes
Input historyShared across tabs
Repo map, LSP, MCPShared across tabs (one per project)
Run Sonnet on tab 1 for a refactor while Haiku runs on tab 2 for documentation. One tab in plan mode, another in auto. Same project, independent agents.

Tab awareness

Every tab knows:
  • Which other tabs are open, what they are named, and who is active.
  • Which files are claimed by which tab.
  • Whether another tab currently has agents dispatched.
When your agent is about to edit a file another tab has claimed, it sees a warning before writing and can decide to skip or proceed.

File claims

A claim is created automatically the first time a tab touches a file with edit_file, multi_edit, rename_symbol, move_symbol, rename_file, refactor, or shell writes (sed, >, tee, etc). Other tabs see the claim and get an advisory warning if their agent tries to edit the same file. Edits still go through (advisory, not blocking), but the agent is told another tab owns it and usually skips to avoid stomping. Claims release automatically:
  • 5 seconds after the tab finishes its current prompt.
  • Immediately on Ctrl+X (abort).
  • When the tab closes.
  • After 5 minutes of inactivity (stale sweep).
No persistent locks. No deadlocks. Nothing to clean up manually.

Git is hard-blocked mid-dispatch

Git operations that modify the working tree (commit, stash, restore, branch switch) are blocked while another tab has active dispatch agents. This is the one hard gate: committing mid-dispatch in another tab would capture partial, half-written edits. Your changes stay intact. The block is per-tab. A tab’s own agents do not block its own git. When blocked, the tool returns a terminal error so the agent stops retrying (no token-burning loops).

Contention handling

If edit_file fails with old_string not found AND the target file is claimed by another tab, SoulForge returns a terminal CONTENTION error instead of the normal retry-friendly error. The agent stops and surfaces the conflict to you instead of guessing.

Commands

/tab new                   open a new tab (Ctrl+T)
/tab close                 close current tab (Ctrl+W)
/tab rename                rename the active tab
/claim                     show all active claims across tabs
/claim release <path>      release one claim from this tab
/claim release-all         release every claim from this tab
/claim force <path>        steal a claim from another tab

Shortcuts

KeyAction
Ctrl+TNew tab
Ctrl+WClose tab
Ctrl+[ / Ctrl+]Previous / next tab
Ctrl+1 through Ctrl+9Jump to tab N
Tab / Shift+TabCycle tabs (from the input)