Spirit
Download

Desktop

Settings map, Files / Git / Browser, extensions, automations, and local Web Host pairing.

Desktop is the graphical host. It shares the local daemon with the CLI. Install it from Install Desktop.

Settings map

Basics

TabWhat it holds
GeneralNotifications, tray / menu bar icon
AppearanceTheme, font, UI language, mica / blur, pointer

Capabilities

TabWhat it holds
ModelsProvider connect, model list, keys
AgentsLSP, commit / PR attribution
TabEditor Tab completion
SkillsDiscover and generate Skills
RulesRules slots
MCPsMCP servers
HooksHooks
DreamsDreams (Beta)

Connect

TabWhat it holds
NetworksLLM HTTP version, Web Remote Control
IntegrationsGitHub Device Login
ExtensionsInstalled extensions, ZIP import

A Developer tab appears only in Vite dev builds.

Workspace panels

TabRole
FilesTree, Monaco, Markdown preview, plans/
GitChanges, history, commit / push / merge chips
BrowserEmbedded browser + element picker (Electron only)
ShellEmbedded PTY (Electron only)

Shell

Desktop (Electron only) has a Shell tab with an embedded PTY. That panel is for you. The agent still goes through shell and approval; it does not type into your PTY.

CLI has no embedded PTY panel. Commands still run through the same shell tool on the shared daemon.

Override the Desktop PTY shell with SPIRIT_TERMINAL_SHELL if you need a specific binary.

Git

The Git tab shows changes and history. Chips on the composer can start commit, push, or merge. This is host UI, not a Skill package.

Those chips inject a fixed prompt. The agent then uses workspace and shell tools.

LSP

Turn language servers on in Settings → Agents. Spirit only detects servers already installed on this machine; install any missing one yourself with the toolchain in the table. Once a server is ready, the agent can call get_diagnostics.

IdLanguagesHow it is installed
pyrightPythonnpm (pyright)
goplsGoGo toolchain
rust-analyzerRustrustup
clangdC, C++Platform package (for example Homebrew or winget)
jdtlsJavaManual
omnisharpC#.NET

Spirit does not install language servers. Install a missing one yourself, then come back to Settings → Agents.

Tab

Tab is Monaco inline completion. Accept ghost text with one Tab. Open Settings → Tab, enable code completion (codeCompletionEnabled), and assign a secondary language model in Settings → Models. That slot also serves other secondary background tasks.

If completion is empty, check that a secondary language model is connected and that the setting is on. This is not the agent conversation.

Extensions and automations

The sidebar Extensions page lists installed extensions and imports ZIP archives. Automations have their own view — Desktop only.

Web Host pairing

Desktop can serve a web client on the local machine.

  • Default listen: 127.0.0.1:7788
  • Settings → Networks → Web Remote Control
  • First visit asks for a 6-digit pairing code from that settings page
  • Five failed attempts lock pairing until you restart Web Host
  • Token is stored in the browser as spirit-web-host-token

The agent still runs inside the shared daemon. The web client receives an authenticated snapshot; it is not a second agent.

Binding 0.0.0.0 for remote LAN access is not an open product path. The daemon and Web Host stay on loopback by default. A LAN IPv4 listen address in Networks is for a machine you control, not a public server.

Development overrides: SPIRIT_DESKTOP_WEB_HOST=1, SPIRIT_WEB_HOST, SPIRIT_WEB_PORT.