Skip to content

Agent Integration Overview

Séance integrates with multiple AI coding agents to show real-time status in the sidebar. Each agent has its own integration mechanism — wrapper scripts, plugins, or config hooks — but they all follow the same core flow.

How It Works

Agent Framework → Plugin/Hook → Séance Hook → Socket API → Sidebar UI
  1. Agent runs inside a Séance terminal. A wrapper script intercepts the launch, tracking the process PID and ensuring cleanup on exit.
  2. Plugin/hook fires events as the agent works — starting sessions, submitting prompts, using tools, requesting permissions, completing turns.
  3. Séance receives hooks via a Unix socket. Each hook translates to a status update (Running, Idle, Needs input) and optional notifications.
  4. Sidebar updates in real time, showing the agent's current state and any pending actions.

Agent Types

AgentIntegration MethodConfig ToggleStatus Tracking
Claude CodeWrapper script + shell hooks— (always on)Session-level
CodebuffSession log monitoring (inotifywait)codebuff-hooksPer-surface
CodexBuilt-in wrappercodex-hooksPer-surface
FreebuffSession log monitoring (inotifywait)freebuff-hooksPer-surface
Hermes AgentPython pluginhermes-hooksPer-surface
Kilo CodeTypeScript pluginkilo-hooksPer-surface
MiMo CodeTypeScript pluginmimocode-hooksPer-surface
Mistral VibeTOML config hooksvibe-hooksPer-surface
OpenCodeTypeScript pluginopencode-hooksPer-surface
Pi AgentBuilt-in wrapperpi-hooksPer-surface
Poolside Agent CLISession log monitoring (inotifywait)pool-hooksPer-surface

Status tracking means how status is scoped. Session-level (Claude) shares status across all surfaces in a workspace. Per-surface means each terminal pane has independent status.

Zero-Config

Most agents work out of the box. Séance auto-installs plugins and wrapper scripts when it detects an agent is installed. You only need to touch config if you want to disable integration for a specific agent.

Status Indicators

The sidebar shows these states:

StatusMeaning
RunningAgent is processing a prompt or running a tool
IdleAgent finished its turn, waiting for input
Needs inputAgent is waiting for permission or user input

Notifications

When the agent needs your attention — a permission request, a question, or a completed task — Séance sends a desktop notification. Clicking the notification focuses the relevant terminal.

Further Reading

MIT Licensed