Crust contributes VS Code settings under Extensions › Crust:
crust.pi.commandPath — command or absolute path used to start Pi. Defaults to pi.
crust.pi.defaultModel — preferred model key selected on startup. Leave empty to use Pi's current model.
crust.chat.lockEditorGroupOnOpen — lock the chat editor group after opening Crust. Defaults to true.
crust.chat.includeIdeContextByDefault — enable current editor file/selection context for new prompts by default. Defaults to false for security/privacy so Crust does not send IDE context unless you explicitly enable it in the chat UI or settings.
crust.chat.useTerminalViewByDefault — Use Terminal View by Default. When enabled, the Crust editor toolbar button opens a VS Code terminal editor running Pi's native TUI instead of the Crust webview. Defaults to false. Crust: Open Chat always opens the webview; use Crust: Open Chat (Terminal) for the terminal view from the command palette. In terminal mode, crust.chat.includeIdeContextByDefault controls whether Crust IDE context starts enabled; toggle it in the TUI with /ide-context. Terminal sessions are restored after VS Code reloads when crust.session.restoreOnReload is enabled.
crust.session.restoreOnReload — restore serialized Crust chat tabs to their previous Pi session after a VS Code window reload. Defaults to true.
crust.markdown.allowRawHtml — allow sanitized raw HTML in rendered chat Markdown. Defaults to false.
Limitations
/export supports HTML only — Pi RPC exposes HTML session export, so Crust supports /export and /export path.html. Pi's TUI also supports JSONL export with /export path.jsonl, but JSONL export is not exposed by Pi RPC yet.
Change reversion is checkpoint-based — Crust can reset tracked file changes for prompts submitted after checkpoint tracking was available. Older prompts without persisted checkpoints do not show a reset button. The reset feature tracks Pi write and edit file-tool changes and warns when shell commands ran after the selected checkpoint because arbitrary shell-side mutations may not be fully reversible. Crust refuses to overwrite files whose current contents no longer match the last tracked post-change snapshot.
/reload is emulated — Pi's TUI has a built-in /reload command for reloading keybindings, extensions, skills, prompts, and themes. Pi RPC mode does not currently expose that command directly, so Crust emulates it by restarting its pi --mode rpc child process, restoring the active session, and refreshing models and slash commands. This reloads Pi-side resources without reloading the VS Code extension host; changes to Crust's own extension code or VS Code contributions still require the normal VS Code extension reload workflow.
Contributing
Feel free to submit issues or open pull requests with features and bug fixes on GitHub!