Skip to content

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 press Ctrl+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 own luvus.json there and never touches your ~/.grok/config.toml. Oh My Pi (OMP) auto-loads extension factories from its active agent directory, so luvus integration install omp drops a single luvus.ts there — 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 antigravity additionally registers one Luvus-owned PreInvocation hook under ~/.gemini/config/hooks.json for exact live pane ownership. Luvus restores either source with agy --conversation <id>. Screen detection remains responsible for idle/working/blocked state, and uninstall preserves every other named hook.

    Letta Code is detected through its letta executable and exact @letta-ai/letta-code package identity. luvus integration install letta adds one quiet SessionStart hook to ~/.letta/settings.json. The hook reports only the exact conversation_id selected by that pane, which Luvus restores with letta --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 opencode executable. Its former preview name, opencode2, remains accepted as a compatibility alias and is normalized to the same agent. luvus integration install opencode detects 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 surgical cli.json entry. 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 through opencode --session <id>. Scheduled OpenCode workers require explicit Full access, mapped to opencode run --auto.

    Kilo Code is detected through either official executable (kilo or kilocode) and the exact @kilocode/cli package 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 documented kilo run --auto contract; read-only and workspace automation are rejected.

    Devin is detected through its devin executable, which is also an ordinary given name, so only process, launch-command, or title evidence names it. Luvus can resume devin --resume <id> when an exact session ID was reported and persisted, but does not open Devin’s private session database, so luvus 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 under HERMES_HOME, and enables only that plugin in config.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 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.