Skip to main content
SoulForge embeds a real Neovim instance — your config, your plugins, your LSP servers. The AI agent can read, edit, navigate, and inspect code through the same editor you use.

Overview

The editor panel runs alongside the chat. Toggle it with Ctrl+E or /editor. The agent accesses it through the editor tool with 18 actions covering reading, editing, navigation, LSP operations, and terminal output.

Key shortcuts

KeyAction
Ctrl+EToggle editor panel
/editorEditor menu — toggle, open, settings, split
/editor open <file>Open a file in the editor
/editor settingsToggle editor/LSP integrations
/editor splitCycle editor/chat split ratio (40/50/60/70)

Neovim configuration

SoulForge supports three Neovim config modes, selectable via /nvim-config:
ModeBehavior
defaultSoulForge’s built-in config (LazyVim-based, Mason LSP auto-install)
userYour personal Neovim config (~/.config/nvim)
noneMinimal config — no plugins, no LSP
On first launch with default mode, SoulForge bootstraps LazyVim plugins and installs LSP servers via Mason for all detected project languages. This is a one-time setup.

Editor tool actions

The editor tool provides 18 actions for the AI agent. These require the editor panel to be open (Ctrl+E).

Reading & inspection

ActionParametersDescription
readstartLine?, endLine?, file?Read buffer content (optionally a specific line range or file)
cursor_contextGet current file, cursor position, and visual selection
buffersList all open buffers
terminal_outputcount?Read terminal output (default: last 100 lines)

Editing

ActionParametersDescription
editstartLine, endLine, replacement, file?Replace lines in the buffer
selectstartLine, endLineSelect a range of lines
yanktext?, register?Put text into a register (default: system clipboard)
highlightstartLine, endLineHighlight a range of lines
ActionParametersDescription
navigatefile?, line?, col?, search?Open a file, jump to a line, or search
goto_cursorline, col?Move cursor to a specific position

LSP operations

ActionParametersDescription
diagnosticsGet errors and warnings for the current buffer
symbolsList document symbols (functions, classes, variables)
hoverline, colGet type info and documentation at a position
referencesline, colFind all references to the symbol at a position
definitionline, col, jump?Go to definition of the symbol at a position
actionsline, col?, apply?Get available code actions (quick fixes, refactorings)
renameline, col, newNameRename a symbol across the workspace
formatstartLine?, endLine?Format the buffer (or a range) via LSP

Editor integrations

Configure which LSP features the agent can access via /editor settings:
IntegrationDefaultDescription
LSP DiagnosticsonErrors & warnings from LSP
Document SymbolsonFunctions, classes, variables
Hover / Type InfoonType info at cursor position
Find ReferencesonAll usages of a symbol
Go to DefinitiononJump to symbol definition
Code ActionsonQuick fixes & refactorings
LSP RenameonWorkspace-wide symbol rename
LSP StatusonCheck attached LSP servers
LSP FormatonFormat buffer via LSP
Editor ContextonFile/cursor/selection in system prompt
Sync on EditonJump to edited files (off = only refresh current buffer)

Agent access modes

Control when the agent can use the editor tool:
ModeBehavior
AlwaysAgent can always use the editor tool
NeverEditor tool is disabled for the agent
When editor openAgent can only use it when the editor panel is visible

Dual LSP backend

The agent always has LSP access regardless of editor state:
  • Neovim bridge — When the editor is open, LSP requests route through Neovim’s running servers via Lua RPC. Zero startup cost since servers are already warm.
  • Standalone client — When the editor is closed, SoulForge spawns LSP servers directly as child processes. Full protocol support.
Both backends support: definitions, references, hover, diagnostics, rename, code actions, call/type hierarchy, and formatting.

Mason auto-install

On first editor launch, SoulForge detects project languages and installs appropriate LSP servers via Mason. Servers are stored in ~/.local/share/soulforge/mason/bin/ and discovered automatically.

Vim hints

Toggle Neovim keybinding hints in the UI with /vim-hints. When enabled, common Vim keybindings are shown in the editor footer.

Split ratios

Cycle the editor/chat split with /editor split:
RatioEditorChat
40%40%60%
50%50%50%
60%60%40%
70%70%30%