Supported Agents
| Agent | Live status | Session resume | Fork to new pane | Hook (precise events) |
|---|---|---|---|---|
| Claude Code | ✓ | ✓ | ✓ | ✓ |
| GitHub Copilot CLI | ✓ | ✓ | no | ✓ |
| Codex | ✓ | ✓ | ✓ | ✓ |
Antigravity CLI (agy) |
✓ | ✓ | no | session only |
| Letta Code | ✓ | ✓ with integration | no | session only |
| opencode | ✓ | ✓ | no | ✓ |
| Kimi Code CLI | ✓ | ✓ | no | ✓ |
| Grok Build | ✓ | ✓ | ✓ | ✓ |
| Hermes CLI | ✓ | ✓ with integration | no | session only |
| Pi | ✓ | ✓ | ✓ | no |
| Oh My Pi (omp) | ✓ | ✓ | ✓ | ✓ |
| Muse Code | ✓ | ✓ | no | no |
| fx | ✓ | ✓ | no | no |
| Cursor | ✓ | resume command | no | no |
| Kilo Code | ✓ | with exact session ID | with exact session ID | no |
| Devin | ✓ | with exact session ID | no | no |
| Gemini | ✓ | no | no | no |
| Aider | ✓ | no | no | no |
| Amp | ✓ | no | no | no |
| Droid | ✓ | no | no | no |
| Qwen | ✓ | no | no | no |
| Kiro | ✓ | no | no | no |
-
Live status (blocked/working/done/idle) needs no setup. luvus identifies the agent from the processes running in the pane, then reads the pane’s screen to tell what state it is in.
-
Session resume discovers the agent’s latest session from its own on-disk store, keyed by the pane’s folder, and runs the agent’s resume command on restore.
-
Fork to New Pane branches the running session into a new pane beside it, preserving the original’s full context under a new session id while the original keeps running. It needs an agent with a native fork command, so today that is Claude (
claude --resume <id> --fork-session), Grok (grok --resume <id> --fork-session), Codex (codex fork <id>), Kilo Code (kilo --session <id> --fork), Pi (pi --fork <id>), and Oh My Pi (omp) (omp --fork <id>). Right-click the pane and choose Fork to New Pane, or pressCtrl+Space f. The action only appears when Luvus can resolve the source session safely. -
Hook, via
luvus integration install <agent>, makes the agent report its exact session id and lifecycle events. OMP additionally reports authoritative idle/working/blocked/done state through Luvus’s bounded agent authority API. Removal is surgical:luvus integration uninstall <agent>touches only luvus’s own entry. Kimi keeps its hooks in~/.kimi-code/config.toml, the same file as your API keys, so luvus edits it in place and leaves your keys, comments, and own hooks untouched. Grok Build reads hooks from~/.grok/hooks/*.json, so luvus just adds its ownluvus.jsonthere and never touches your~/.grok/config.toml. Oh My Pi (OMP) auto-loads extension factories from its active agent directory, soluvus integration install ompdrops a singleluvus.tsthere — no config file is edited. Named profiles,PI_CODING_AGENT_DIR,PI_CONFIG_DIR, and OMP’s XDG session store remain supported.Antigravity CLI publishes its newest conversation per workspace in
~/.gemini/antigravity-cli/cache/last_conversations.json, which Luvus reads offline and with a strict size bound.luvus integration install antigravityadditionally registers one Luvus-ownedPreInvocationhook under~/.gemini/config/hooks.jsonfor exact live pane ownership. Luvus restores either source withagy --conversation <id>. Screen detection remains responsible for idle/working/blocked state, and uninstall preserves every other named hook.Letta Code is detected through its
lettaexecutable and exact@letta-ai/letta-codepackage identity.luvus integration install lettaadds one quietSessionStarthook to~/.letta/settings.json. The hook reports only the exactconversation_idselected by that pane, which Luvus restores withletta --conversation <id>. Luvus does not open Letta’s memory, conversation, credential, or cloud stores. Other settings and hooks remain untouched, and uninstall removes only Luvus’s exact entry and script. Letta currently has no reviewed external conversation-fork command or Luvus automation access mapping.OpenCode V2 is the canonical
opencodeexecutable. Its former preview name,opencode2, remains accepted as a compatibility alias and is normalized to the same agent.luvus integration install opencodedetects the installed generation: V1 receives the legacy TUI-local plugin, while V2 receives a CLI-only plugin under${XDG_CONFIG_HOME:-~/.config}/opencode/luvus-v2/and one surgicalcli.jsonentry. The V2 plugin binds only the root session selected by that specific TUI, retries bounded local delivery, and releases ownership when navigation leaves it. Luvus never opens the V2 service’s live SQLite database or starts that service for discovery. Exact known IDs resume throughopencode --session <id>. Scheduled OpenCode workers require explicit Full access, mapped toopencode run --auto.Kilo Code is detected through either official executable (
kiloorkilocode) and the exact@kilocode/clipackage identity. Luvus can resume and fork a Kilo session when it already has the exact session ID, but does not scan or guess IDs from Kilo’s current database. Scheduled Kilo workers are available only with explicit Full access, which maps to Kilo’s documentedkilo run --autocontract; read-only and workspace automation are rejected.Devin is detected through its
devinexecutable, which is also an ordinary given name, so only process, launch-command, or title evidence names it. Luvus can resumedevin --resume <id>when an exact session ID was reported and persisted, but does not open Devin’s private session database, soluvus agent resume <id>cannot find Devin sessions and there is no native fork. Automation profiles and the optional hook integration are not declared yet.Hermes installs
~/.hermes/plugins/luvus-agent-state, or the equivalent directory underHERMES_HOME, and enables only that plugin inconfig.yaml. Its callbacks report each exact CLI session once. Native detection continues to work when the plugin is absent, but offline history discovery does not.
Luvus resumes an exactly reported Hermes session with hermes --resume <id>.
Hermes currently exposes branching only from inside its own TUI, so Luvus does
not present Fork to New Pane for Hermes.
Missing your agent? You can add it yourself without waiting for a release: drop
an [identity] block in ~/.luvus/manifests/<agent>.toml and luvus will
recognize it, as described in
Custom detection rules. If you
would like it built in,
open an issue or follow the
Adding Agent Support guide for a PR.
Agent Skill availability
Section titled “Agent Skill availability”Agent detection is built into Luvus and does not require an Agent Skill. The
optional bundled skill teaches a coding agent how to control Luvus itself.
Print the release-matched instructions for one conversation with
luvus skill show, or install them persistently with luvus skill enable.
The shared ~/.agents/skills/luvus/ destination is understood by Codex,
GitHub Copilot CLI, Gemini CLI, Pi, Cursor, Amp, Droid, fx, Kilo Code, and
Devin. Luvus uses dedicated native destinations for Claude Code, OpenCode,
Kimi Code CLI, Grok Build, Hermes CLI, Letta Code, Qwen Code, Oh My Pi
(omp), and Kiro. Aider does not expose a native Agent Skills installation
directory, so use luvus skill show when an Aider conversation needs the
instructions.
luvus skill status reports the bundled release separately from its managed
filesystem installations. Codex marketplace plugins are managed by Codex and
are not visible to this command.