The five adapters

How Sirio launches Claude Code, Codex, OpenCode, Pi and Oh-My-Pi, and what it writes for each.

Each supported CLI has an adapter that knows how to launch it, how to resume a session, and whether it can report its own state through hooks.

Agent Native hooks How Sirio learns its state in a terminal
Claude Code Yes Lifecycle hooks in its settings call sirioctl notify
Codex Yes A notify command, in its config.toml or on its command line, calls sirioctl notify
Oh-My-Pi Only when Sirio starts it Its terminal title (π: <cwd>), and a hook file Sirio passes with --hook when it starts the CLI itself
OpenCode No Terminal title and foreground process
Pi No Terminal title (π - <cwd>)

Hooks are the strongest evidence, and the terminal title, the screen and the foreground process fill in wherever they are missing. Activity states explains how the layers combine, and Hooks and sirioctl notify shows where each hook lives.

Terminal or chat

In a terminal you start the CLI yourself, and Sirio recognises it. A chat tab is where Sirio launches an agent for you, and all five can run in one, over the Agent Client Protocol. When the Claude Code binary on your PATH is new enough, its chat takes Claude Code’s own native protocol instead, which is what lets a chat read its context meter from Claude Code itself and restore files to an earlier message. Settings → Agents lists all five, with the CLI Sirio finds on your PATH and the ACP server it takes from the registry, and installs or updates that server from the same page. See Agent chats.

A launch never touches your user-level configuration. For an agent you start in a terminal, Settings → General → Agent Hooks → Install Hooks writes Sirio’s hooks there for Claude Code, Codex and OpenCode, and only when you press it.

What Sirio writes, and where

Sirio starts an agent’s CLI in a terminal itself only when it brings back a terminal saved with an agent in it, which older versions of Sirio could open from their menus. The adapter’s prepare step then writes inside the worktree:

  • Claude Code: .claude/settings.local.json with its hooks, and the Sirio skill at .claude/skills/sirio/SKILL.md.
  • Oh-My-Pi: the hook file .sirio/omp-hook.ts, and the skill at .agents/skills/sirio/SKILL.md.
  • OpenCode: the session plugin .opencode/plugin/sirio-session.js, and the skill at .agents/skills/sirio/SKILL.md.
  • Codex and Pi: the skill at .agents/skills/sirio/SKILL.md. Codex also carries its hook on its command line.

Removing the worktree removes everything Sirio added there.