Agent integrations

Coding agent support

Agent Finds and names sessions Collects live activity Setup
Codex Yes, including terminal and Codex Desktop sessions Yes, from Codex’s local session stream None
Claude Code Yes, including terminal, desktop, and editor sessions Yes, after project hooks are installed Optional project hooks: run side-dog setup . --claude, then restart Claude Code
Pi Yes Yes, from Pi’s local session files None
Oh My Pi Yes Yes, from Oh My Pi’s local session files None
OpenCode Yes Yes, from OpenCode’s local SQLite store None
Crush Yes Yes, from Crush’s local SQLite stores None
Cursor Agent Yes, when launched through T3 Code Yes, from T3 Code’s projected activity store None
Grok Build Yes, when launched through T3 Code Yes, from T3 Code’s projected activity store None
DeepSeek Harness Yes Yes, from Harness session logs None
Cline Yes, across CLI, editor, desktop, and background sessions Yes, from Cline’s local session store None
Antigravity CLI Yes Yes, from Antigravity’s local history and transcripts None
Muse Code Yes, including persistent subagents Yes, from Muse Code’s local event logs None

Optional context

Herdr and T3 Code are not coding agents. They add context to the agents above.

Context provider What it adds How Side Dog uses it Setup
Herdr Adds pane, tab, workspace, and terminal-title details Routes activity to the right terminal context Optional
T3 Code Adds thread title, provider, status, and worktree details Supplies projected activity for Cursor and Grok Build Optional; no Side Dog hooks

Most people do not need to set data-location variables. If an agent stores its data somewhere custom, Side Dog honours CODEX_HOME for Codex, PI_CODING_AGENT_DIR for Pi, OMP_AGENT_DIR for Oh My Pi, XDG_DATA_HOME for OpenCode, MUSE_DATA_DIR for Muse Code, CRUSH_GLOBAL_DATA for Crush, T3CODE_HOME for T3 Code, DSH_HOME for DeepSeek Harness, CLINE_DIR, CLINE_DATA_DIR, CLINE_DB_DATA_DIR, and CLINE_SESSION_DATA_DIR for Cline, and ANTIGRAVITY_APP_DATA_DIR or GEMINI_HOME for Antigravity CLI.

Codex

Codex needs no hooks. Side Dog reads a privacy-filtered view of Codex’s local activity stream and identifies recent sessions by repository. This works for Codex in a terminal, editor, or Codex Desktop. If Codex uses a custom data folder, set CODEX_HOME to that folder.

Antigravity CLI

Antigravity needs no hooks. Side Dog joins ~/.gemini/antigravity-cli/history.jsonl to each recent brain/<conversation-id>/.system_generated/logs/transcript.jsonl, so sessions are associated with the correct workspace and their turns, edits, commands, tests, Git operations, and subagents appear as they happen. Set ANTIGRAVITY_APP_DATA_DIR if Antigravity stores its application data elsewhere. If that is not set, Side Dog also honours GEMINI_HOME as the parent of Antigravity’s data folders.

The collector uses stable per-step IDs and persistent cursors, so terminal and browser views can run together without duplicating activity. A pending call is replayed after restart until its result arrives. Command output is inspected only for an exit code and is then discarded; prompts, responses, file content, full commands, stdout, and stderr are never copied into Side Dog’s feed.

Claude Code

Side Dog can identify a live Claude Code session without setup. To see Claude’s tool activity, install Side Dog’s hooks in each project:

cd ~/src/my-project
side-dog setup . --claude

Restart Claude Code after setup. Side Dog writes only to the machine-local .claude/settings.local.json file. It preserves other hooks and does not change the shared .claude/settings.json file.

Without these hooks, Claude’s file changes still appear, but they are shown as unattributed filesystem activity.

Pi

Pi needs no hooks. Side Dog reads Pi’s local session files to find the session, model, reasoning level, and live activity. It honours PI_CODING_AGENT_DIR when Pi stores its files somewhere other than the default location.

Oh My Pi

Oh My Pi needs no hooks. Side Dog reads its local JSONL session files to find the session, model, reasoning level, and safe live tool activity. It supports Oh My Pi’s current fixed-width title record as well as older sessions that begin directly with the session header. Set OMP_AGENT_DIR when the agent data directory is not ~/.omp/agent.

Muse Code

Muse Code needs no hooks. Side Dog reads its local append-only event logs, including persistent subagent logs, to find workspace-local sessions, the configured model, task lifecycle, and safe tool lifecycle markers. Tool arguments, command text, file paths, output, prompts, responses, and reasoning are never copied into Side Dog state. Set MUSE_DATA_DIR when Muse stores its data somewhere other than ~/.local/share/muse (or $XDG_DATA_HOME/muse).

When Oh My Pi or Muse Code runs in a Herdr pane that has no session ID, Side Dog joins the pane to exactly one fresh local session for the same agent and worktree. This supplies Herdr’s pane context without creating a second Board row. If more than one local session is possible, Side Dog leaves them separate rather than guessing.

OpenCode

OpenCode needs no hooks. Side Dog reads its local SQLite store to find the session, model, reasoning variant, title, activity, and subagents. It shows edits, tests, Git operations, and small markers for context tools such as read, search, web fetch, and todo updates. Set XDG_DATA_HOME if OpenCode stores its data under a custom data-directory parent.

Crush

Crush needs no hooks. Side Dog reads Crush’s machine-wide projects.json index, then opens each indexed project’s crush.db read-only. It uses the indexed data_dir exactly as Crush recorded it, including configured absolute locations, and attributes child-agent sessions to their top-level session.

Streaming tool rows are reread with a bounded overlap and stable event IDs, so a call that finishes after Side Dog restarts converges without replaying old activity. Side Dog selects only session metadata and relevant tool lifecycle scalars; prompts, responses, reasoning, command output, result payloads, diffs, and file snapshots are not copied into its state or panel feed. Set CRUSH_GLOBAL_DATA to Crush’s global data directory when Crush stores its project index somewhere other than ~/.local/share/crush.

T3 Code, Cursor, and Grok

T3 Code is optional context, not an agent name. When T3 Code launches Codex, Claude Code, or OpenCode, Side Dog uses the T3 thread title and worktree while keeping that agent’s native model, reasoning level, and activity reader.

Cursor Agent and Grok Build are supported when they run through T3 Code. Side Dog reads only narrowly selected fields from T3 Code’s local projected activity store; it does not read messages, raw orchestration events, command output, or provider logs. No hooks are needed. T3 Code normally stores its data under ~/.t3; set T3CODE_HOME only when T3 Code uses a different base directory.

DeepSeek Harness

DeepSeek Harness needs no hooks. Side Dog reads event-sourced sessions from ~/.dsh/sessions, or $DSH_HOME/sessions when configured. Both Harness’s default Zstandard-compressed logs and diagnostic plain JSONL are supported. Top-level sessions show their model, reasoning effort, status, edits, tests, Git commands, subagents, and turn completion without storing prompts, responses, command output, diffs, or file contents.

Cline

Cline needs no hooks. Side Dog reads its shared SQLite session database and structured message artifacts under ~/.cline/data, or Cline’s file-backed session manifests when SQLite is unavailable. It honours CLINE_DIR, CLINE_DATA_DIR, CLINE_DB_DATA_DIR, and CLINE_SESSION_DATA_DIR.

Side Dog names Cline sessions with their model, task title, and status, and shows editor, patch, command, test, Git, and subagent activity. Child-session activity is attributed to its top-level session. Prompts, responses, tool output, patch contents, full shell commands, and file contents are not copied into Side Dog’s event log.