Skip to content

Native Tools

codexclaw’s discipline is only half the story — the Codex runtime already ships powerful native surfaces, and the skills now route to them by exact tool id. The verified inventory lives in structure/60_native_capabilities.md (re-verified per Codex release).

V1 is codexclaw’s default, but the model catalog selects V2 for sol/terra and V1 for luna; features.multi_agent_v2 is the fallback selector for other models. The chosen surface pins on the session’s first turn. V1 collab tools (multi_agent_v1.spawn_agent / wait_agent / send_input / resume_agent / close_agent) are deferred behind tool_search; V2 tools are direct. If spawn_agent is not visible, run tool_search for it first.

V1 parses skill mentions natively. On plaintext V2 provider/proxy paths, the spawn hook normalizes mentions and inlines recognized SKILL.md bodies. Native ChatGPT-backend V2 gives the hook encrypted message ciphertext, so both operations are no-ops there. When no body can be inlined, the hook appends a plaintext [CXC-SKILL-AFFORDANCE] block telling the child to self-load any $cxc-<folder> / $codexclaw:cxc-<folder> mention from <skillsDir>/<folder>/SKILL.md; fork inheritance remains a secondary channel. The other reliable native V2 hook channels are the leaf guard and omitted configured model/effort injection on non-full-history spawns.

Codex pins each hook identity as hooks.state.<key>.trusted_hash in ~/.codex/config.toml and silently skips a hook whose current hash drifts. After any edit, commit, or merge touching plugins/codexclaw/hooks/*.json, run cxc doctor. If it reports a drifted or untrusted hook, run cxc hooks retrust to back up the config and atomically record safely recomputed hashes, then rerun cxc doctor.

Those entries are written by the host Codex binary when you approve a plugin’s hooks, not by codexclaw. A fresh install therefore starts with no [hooks.state.*] sections at all, and cxc doctor reports every hook as untrusted ... actual=(none) until the approval happens. codexclaw will not write them on your behalf as a side effect of installation: that would bypass the trust prompt the mechanism exists to enforce. To record them deliberately, run the command cxc doctor prints, which needs --bootstrap-ok only when no entry exists yet:

Terminal window
cxc hooks retrust --key codexclaw@codexclaw --bootstrap-ok

On Windows, retrust verifies its own write by running codex features list. It resolves that executable before spawning it, because a bare codex hits either the Store-packaged WindowsApps binary (EPERM) or the npm .cmd shim (EINVAL). Set CODEX_BIN to an explicit path if you keep codex somewhere the PATH walk cannot see.

Proof-of-source escalates through named tools, stopping at the first rung that yields primary evidence:

agbrowse is the primary surface while it resolves; the native tools are its fallback tier:

  1. agbrowse fetch --json --browser never — scripted HTTP proof; the mandatory first attempt (its JSON envelope is the evidence artifact)
  2. agbrowse CDP — one-shot fetch --browser auto for JS/blocked pages, or an interactive session (start --headednavigatesnapshot --interactiveclick eNstop) when steps must act on the page If an agbrowse command fails (connection refused, no browser, etc.), run agbrowse start first to launch the local Chrome session, then retry.
  3. Native fallback — browser:control-in-app-browser (JS/PDF/visual) and chrome:control-chrome (conversational real-profile CDP), used when agbrowse is unresolvable or cannot complete the flow (state why)
  4. computer-use:computer-use — GUI-only last resort (per-app approval)

Every interactive rung follows the verification loop: inspect → act → re-inspect, with screenshot + view_image fallback when DOM inspection fails.

Computer-use QA (owned by cxc-dev-testing §4.6)

Section titled “Computer-use QA (owned by cxc-dev-testing §4.6)”

Playwright owns deterministic suites; the native tools own exploratory QA — “does this change work in the real UI right now”. Drive the flow, capture screenshots, read them back with view_image, and attach them as PABCD C-phase evidence. Promote flows that must stay guarded into Playwright.

Tool Where it’s used
update_plan cxc-pabcd PLAN-TRACK-01 — mirror plan items, keep statuses live through B
imagegen cxc-dev-frontend / cxc-dev-uiux-design — real bitmap assets instead of placeholders
view_image design reads, screenshot evidence, blocked-source captures
multi_tool_use.parallel cxc-lunasearch / cxc-search Tier-3 parallel lanes
list_available_plugins_to_install / request_plugin_install cxc-skill-hub capability discovery

CSV batch fan-out via spawn_agents_on_csv and memories remain flag-gated and are documented as future surfaces. V2 is live through catalog selection or the fallback feature flag; it is not part of this “not shipped” set.