Squad View
AI-assisted development increasingly means running multiple agents at once: one refactoring a module, another writing tests, a third researching an API. The problem is coordination. Terminal tabs blur together, you lose track of which agent is doing what, and there is no shared context linking their work back to your project.
Squad View is Sidespace's multi-agent cockpit. You launch, monitor, and coordinate CLI agents in a single interface. In v1, you are the quarterback. There is no AI orchestration layer. You decide which agent works on what, and Squad View gives you the visibility to keep it all straight.
What's Built
Three-Zone Layout
| Zone | Position | Purpose |
|---|---|---|
| Task sidebar | Left (~220px) | Read-only kanban lens, grouped by project. Shows task status and agent assignments. |
| Focused terminal | Center | Full-size xterm.js terminal for the agent you're actively watching. |
| Thumbnail strip | Bottom | Miniature previews of all running agents. Click to focus. "+" button adds new terminals. |
The right panel remains Hoshi's chat. Squad View is the sole terminal surface; Hoshi advises, terminals execute.
Constellation Names
Each terminal gets an auto-assigned constellation name (Orion, Lyra, Vela, and so on). These are not cosmetic. They persist into session logs and the memory bank (memories.agent_name column), so you can trace which agent produced which insight or change when reviewing a session.
Panel States
| State | Indicator | Meaning |
|---|---|---|
| Running | Green | Agent is actively producing output |
| Idle | Amber | No output for 30 seconds |
| Ended | Red | Process exited. Ghost state preserves scrollback for review. |
CLI Auto-Detection and Launch
When you add a terminal, Squad View detects installed CLI agents (Claude Code, Codex, etc.) using the detect_available_clis Tauri command. A popover lets you pick from available options.
The CLI registry (src/lib/cli-registry.ts) maps each agent type to its launch command via getLaunchCommand(). The terminal auto-launches the chosen CLI immediately. The "blank" type gives you an empty shell for manual control.
Environment Variable Injection
Every Squad terminal gets two variables injected automatically:
| Variable | Value | Purpose |
|---|---|---|
SIDESPACE_AGENT_NAME | Constellation name (e.g., Orion) | Agent identifies itself in logs and memory writes |
SIDESPACE_SQUAD_SESSION | true | Signals a coordinated multi-agent session to tools and scripts |
This is how agent identity flows through the system without requiring the CLI tools themselves to know about Sidespace.
State Management
All panel state lives client-side in sessionStorage via a Zustand store (useSquadStore). No new database tables. Terminal sessions are ephemeral; the durable artifacts (memories, commits, task updates) flow through the existing persistence layer.
Keyboard Shortcuts
| Shortcut | Action |
|---|---|
Cmd+Shift+S | Toggle Squad View |
Ctrl+N | Add a new terminal |
Ctrl+1 through Ctrl+9 | Focus terminal by position |
Ctrl+W | Close focused terminal panel |
MCP Tools for Agent Control
Agents running in Squad terminals can interact with Sidespace programmatically through MCP tools:
| Tool | What It Does |
|---|---|
sidespace_navigate_preview | Opens a file or URL in the Sidespace preview panel |
sidespace_add_squad_terminal | Adds a new terminal to the Squad View |
sidespace_open_squad_view | Switches the UI to Squad View |
These tools replace the earlier deep-link approach (which would spawn a new app instance instead of routing to the existing one). The SIDESPACE_SQUAD_SESSION environment variable signals to agents that MCP tools are available for app control.
Where It's Heading
Near-term direction is giving Hoshi awareness of what is happening in Squad terminals (which agents are running, what they are working on) so it can suggest coordination moves. Full AI orchestration (Hoshi dispatching work autonomously) is on the roadmap but deliberately deferred until the manual workflow is solid.