Band Band

Coding Agents

Band is an agent orchestrator that works with multiple coding agents through a unified adapter pattern. You choose which agent powers your workspaces, and Band handles task submission, output streaming, session management, and lifecycle tracking regardless of which agent is running underneath.

Supported Agents

Band currently ships adapters for four coding agents. Each adapter implements the same CodingAgent interface, so switching between agents requires only a settings change — no workflow modifications.

Feature Claude Code Cursor CLI Gemini CLI
Cost tracking Yes No No
Session listing Yes No No
Session resume Yes Yes No
Real-time streaming Yes Yes Yes
Tool use visibility Yes Yes Yes
User input prompts Yes No No
Custom model selection Yes Yes Yes
Skill discovery Yes No Yes

The Adapter Pattern

Band uses a factory function (createCodingAgent) that accepts a configuration object with a type field and returns the appropriate adapter. Each adapter implements the CodingAgent interface:

  • runSession(prompt, sessionId?) — Starts an agent session and yields a stream of events (text deltas, tool calls, tool results, session results).
  • abort() — Cancels the currently running session.
  • listSessions(dir) — Returns previous sessions for a directory (where supported).
  • getSessionMessages(sessionId, dir) — Retrieves the message history for a session.
  • listSkills() — Discovers available skills in the workspace.

All adapters emit a common set of AgentEvent types: session-start, text-delta, tool-use, tool-result, session-result, and error. The Band task runner consumes these events and broadcasts them to the dashboard UI in real time.

Selecting the Default Agent

Open the Band dashboard and navigate to Settings. Under the Coding Agent section, select your preferred agent type from the dropdown. The available options are:

  • claude-code — Claude Code (default)
  • cursor-cli — Cursor CLI
  • gemini-cli — Gemini CLI

You can also specify a custom executable path if the agent CLI is not on your system PATH. The setting is stored in Band's configuration database and applies to all new agent sessions. Existing running sessions are not affected until they complete and a new session starts.

Agent Pool

Band maintains an in-memory agent pool keyed by workspace ID. When a task is submitted, Band checks the pool for an existing agent instance. If none exists, it creates one using the current settings. This means each workspace gets its own isolated agent instance with its own working directory, session state, and configuration. Agents are removed from the pool when a workspace is deleted.