.agents/skills/codex-qa/references/install-verify.md
QA must run THIS repo's local build, not the published package. The installer
respects CODEX_HOME for everything, so a non-default home is fully self
contained.
export CODEX_HOME="$(mktemp -d)/codex"; mkdir -p "$CODEX_HOME" # must exist first
export OMO_DISABLE_POSTHOG=1 OMO_CODEX_DISABLE_POSTHOG=1
export OMO_CODEX_PROJECT="$(mktemp -d)/project" # keep project-local cleanup off your tree
node packages/omo-codex/scripts/install-local.mjs install
cqa_install_local_omo wraps this (logs to $CQA_HOME_ROOT/install.log).
Source: packages/omo-codex/src/install/install-codex.ts.
$CODEX_HOME/plugins/cache/sisyphuslabs/omo/<version>/ (then npm ci --omit=dev).$CODEX_HOME/bin/omo-* (8: comment-checker,
git-bash-hook, lsp, rules, start-work-continuation, telemetry, ultrawork,
ulw-loop).$CODEX_HOME/agents/*.toml.$CODEX_HOME/.tmp/marketplaces/sisyphuslabs/.$CODEX_HOME/config.toml: enables [plugins."omo@sisyphuslabs"],
the [marketplaces.sisyphuslabs] local source, [features]
(plugins/plugin_hooks/multi_agent/child_agents_md), and one
[hooks.state."omo@sisyphuslabs:hooks/hooks.json:<event>:i:j"] trusted_hash
per hook (so Codex trusts them — no --dangerously-bypass-hook-trust needed
for the app-server turn).ls "$CODEX_HOME"/plugins/cache/sisyphuslabs/omo/*/ # cache present
grep -A2 '\[plugins."omo@sisyphuslabs"\]' "$CODEX_HOME/config.toml" | grep 'enabled = true'
ls "$CODEX_HOME"/bin/omo-* # component bins
ls "$CODEX_HOME"/agents/*.toml # agent links
Plus the cross-cutting invariant every script enforces: the real
~/.codex/config.toml shasum is unchanged.
omo runtime wrapper, which targets
the repo's dist/cli/index.js (the CLI ships from the repo). dist/cli/index.js
must exist (run bun run build if missing) or that link is skipped.rm -rf "$CODEX_HOME" (the harness does
this on exit). For a normal home, node packages/omo-codex/scripts/install-local.mjs uninstall.bun run test:codex is the hermetic unit gate (installer/config/component
build) and does NOT launch a real codex — this skill is what proves the live
session.