Agents
Supported agents
What Rexa shows for each agent, and the files it writes into each agent's config.
Rexa supports five agent CLIs through bundled adapters. Install the CLIs yourself; Rexa does not ship them.
| Agent | Command |
|---|---|
| Claude Code | claude |
| Codex | codex |
| Cursor Agent | cursor-agent |
| OpenCode | opencode |
| Pi | pi |
What each agent supports
| Claude Code | Codex | Cursor Agent | OpenCode | Pi | |
|---|---|---|---|---|---|
| Live card | ✓ | ✓ | ✓ | ✓ | ✓ |
| “Your turn” status | ✓ | ✓ | — | ✓ | — |
| Interrupted status | ✓ | ✓ | ✓ | ✓ | ✓ |
| Session history | ✓ | ✓ | ✓ | ✓ | ✓ |
| Transcript | ✓ | ✓ | Partial | Partial | ✓ |
| Subagent transcripts | ✓ | — | — | — | — |
| Skill and plugin toggles | ✓ | ✓ | — | — | — |
| Plan usage in status bar | ✓ | ✓ | — | — | — |
- Cursor Agent fires no hook for approval prompts, so its card shows Working while it waits on you. Its transcripts have no tool results, and chats started in a subfolder have none.
- OpenCode transcripts have no per-turn timing or token use.
- Pi reports state from its session file only, with no “Your turn” status.
- Codex lists the newest 100 sessions per worktree.
Files Rexa writes
Each adapter installs hooks, session context and skill links into its agent’s own config. This runs every time Rexa starts. Hook entries Rexa adds end in # rexa-hook <id>; entries from other tools are kept.
| Agent | Writes |
|---|---|
| Claude Code | Hooks in ~/.claude/settings.json; a link at ~/.claude/skills/rexa |
| Codex | Hooks in ~/.codex/hooks.json; notify in ~/.codex/config.toml if unset; links in ~/.codex/skills/ |
| Cursor Agent | Hooks in ~/.cursor/hooks.json; links in ~/.cursor/skills/ |
| OpenCode | A plugin link at ~/.config/opencode/plugins/rexa; links in ~/.config/opencode/skills/. Only if ~/.config/opencode exists. |
| Pi | ~/.pi/agent/extensions/rexa.ts; links in ~/.pi/agent/skills/. Only if ~/.pi/agent exists. |
The hooks call rexa post <agent> to report state, and rexa context to tell the agent it runs inside Rexa. Outside a Rexa terminal, both do nothing.
Check, repair or remove
rexa claude setup --check # report; exit code 1 if something needs fixing
rexa claude setup # install or repair
rexa claude setup --remove # remove everything Rexa wroteReplace claude with codex, cursor, opencode or pi. Rexa reinstalls on the next launch, so to keep an adapter off, disable it too:
rexa extension disable rexa-claude-adapterAdapter ids follow the pattern rexa-<agent>-adapter; rexa extension ls lists them.
Known limits
- Codex asks you to trust new hooks in its startup review. Rexa’s hooks do nothing until you trust them.
- Codex always uses
~/.codex; a customCODEX_HOMEis not followed. - Cursor Agent sessions resumed with
--resumeget no Rexa session context. - OpenCode always uses
~/.config/opencode; XDG overrides are not followed.