You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Codex CLI reads a native .codex-plugin/plugin.json that points at a new
hooks/hooks-codex.json using the Claude-shaped hook schema (event ->
matcher groups -> { "type": "command" }).
detectHost recognizes Codex by the un-prefixed PLUGIN_ROOT it sets, since
Claude sets only CLAUDE_PLUGIN_ROOT; session state lives under CODEX_HOME
(default ~/.codex). Codex shares Claude's hookSpecificOutput contract, so
orientation injects on SessionStart and the routing audit on
UserPromptSubmit, and the commit-attribution PreToolUse guard applies. The
config omits SessionEnd, which Codex has no event for, so stale session
state is pruned on the next SessionStart instead.
Bumps every host manifest to 0.11.2 and covers the new host with unit and
end-to-end hook tests, a README install section, and a CHANGELOG entry.
"description": "Research-first workflows, ruthless code review, orchestrator-led reasoning, and opaque subagent isolation for the entire development lifecycle.",
"description": "Research-first workflows, ruthless code review, orchestrator-led reasoning, and opaque subagent isolation for the entire development lifecycle.",
"description": "Research-first workflows, ruthless code review, orchestrator-led reasoning, and opaque subagent isolation for the entire development lifecycle.",
Copy file name to clipboardExpand all lines: README.md
+4Lines changed: 4 additions & 0 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -62,6 +62,10 @@ Copilot CLI installs the same plugin via its `/plugin` commands and loads the sk
62
62
63
63
Hooks ship in Copilot's own format: Copilot's command schema treats `command` as a shell string and has no `args` array, so the Claude exec-form config would run a bare `node`. Copilot is pointed at `hooks/hooks-copilot.json` via `.plugin/plugin.json` (a manifest slot Copilot reads but Claude and Cursor don't). Session orientation injects via a flat `additionalContext` on `sessionStart`; prompt submission is state-only, because Copilot's `userPromptSubmitted` hook cannot inject context (same ceiling as Cursor).
64
64
65
+
### Codex
66
+
67
+
Codex CLI installs the plugin from the same marketplace and reads a native `.codex-plugin/plugin.json` that points at `hooks/hooks-codex.json`. Codex uses the Claude-shaped hook schema (event → matcher groups → `{ "type": "command" }`) and shares Claude's `hookSpecificOutput` context contract — so, unlike Cursor and Copilot, orientation injects on `SessionStart`**and** the routing audit injects on `UserPromptSubmit`, and the commit-attribution `PreToolUse` guard runs. Codex is detected by the un-prefixed `PLUGIN_ROOT` it sets (Claude sets only `CLAUDE_PLUGIN_ROOT`); state lives under `CODEX_HOME` (default `~/.codex`). The config omits `SessionEnd` — Codex has no such event — so stale state is pruned on the next `SessionStart`.
0 commit comments