Spirit Agent
Download

Desktop

Settings map, Files / Git / Browser, marketplace, 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 Access
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, then install a provider if it is missing. Once a server is ready, the agent can call get_diagnostics.

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

clangd and jdtls are not bundled. Install them 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 lightweight chat model in Settings → Models. That slot also serves other lightweight background tasks.

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

Marketplace and automations

The sidebar opens the marketplace. 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 Access
  • 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-agent-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.