A local-first desktop workspace for running and coordinating AI coding agents.
spawnea-presentation-v1.mp4
Spawnea brings terminals, persistent tmux sessions, Git worktrees, files, artifacts, and agent attention state into one desktop workspace. It is harness-agnostic: Codex, Hermes, Claude Code, Antigravity, OpenCode, shell commands, and other CLI agents can run as first-class sessions.
AI coding sessions become difficult to operate when they are spread across terminal tabs, worktrees, servers, and disconnected status signals. Spawnea keeps the active context together: host, project, worktree, agent, terminal, files, Git state, artifacts, and attention state.
Its philosophy is deliberately simple:
- Local-first: the desktop application is the control plane; there is no hosted Spawnea backend.
- tmux-native: long-running sessions survive Spawnea closing, updating, or crashing.
- Harness-agnostic: an agent is a configured command, not a closed vendor integration.
- Remote-light: remote hosts need existing SSH access and
tmux; Spawnea installs nothing there. - Observable: session state comes from process, tmux, and terminal output rather than hidden hooks.
- Run Codex, Hermes, Claude Code, Antigravity, OpenCode, and shell sessions.
- Manage local and remote hosts through SSH/SFTP.
- Create and operate Git worktrees and branch-aware workspaces.
- Keep a persistent terminal attached to each session.
- Browse project files and inspect Git changes in context.
- Transfer files and clipboard content to remote agent sessions.
- Collect explicit input/output artifacts.
- Surface normalized states such as working, needs input, idle, done, and error.
- Coordinate multiple sessions from one searchable desktop interface.
- Expose an explicit local MCP control surface for approved automation.
Spawnea does not install a daemon, package, plugin, hook, service, or background process on VPSs or other remote hosts. For a host that is already reachable over SSH, Spawnea-managed sessions only expect tmux to be available. The agent command and its dependencies remain user-managed.
Hermes and other harness states are inferred by reading terminal/tmux output and parsing rendered prompts and responses. No harness hook, event file, or resident helper process is required by the base runtime.
The terminal view uses the open-source @xterm/xterm library, with node-pty and ssh2 for PTY and SSH transport. Terminal bytes are streamed to the local UI; Spawnea does not record a conversation transcript or upload terminal data to a Spawnea service. Local configuration, session metadata, logs, artifacts, and explicitly requested diagnostic reports remain separate persistence features.
pnpm install --frozen-lockfile
pnpm devFor a production-style local build:
pnpm build
pnpm startTo package the desktop application for the current host without publishing:
pnpm package:desktop:hostSee Desktop distribution for supported release artifacts and the GitHub Release process.
Operational configuration is user-owned runtime data and is documented separately. It is not loaded from the repository working tree.
Spawnea is early-stage and under active development. Interfaces and runtime behavior may evolve before the first stable release.
- User Documentation Index
- Getting Started
- Installation and Configuration
- Vision
- Architecture
- Local control API and MCP
- Public-source privacy boundary
pnpm typecheck
pnpm lint
pnpm test
pnpm validateRun pnpm privacy:check before publishing changes. Never commit credentials, SSH keys, tokens, private host configuration, or machine-specific runtime data.
Spawnea is released under the Apache License 2.0.

