Skip to content

Dogfood & Dev Install

To work on codexclaw while running it inside Codex, install your working checkout as a real plugin copy from a local marketplace rooted at the repo.

Terminal window
scripts/dev-install.sh

The script builds the components, makes sure the codexclaw marketplace points at your checkout, then runs codex plugin add codexclaw@codexclaw. Codex copies the payload into the plugin cache and prunes files that no longer exist in the source, so re-running the script is the whole update loop.

Check the current install state without changing anything:

Terminal window
scripts/dev-install.sh --status

Skip the build when only skills, hooks, or docs changed:

Terminal window
scripts/dev-install.sh --no-build

An earlier scripts/dev-symlink.sh replaced each plugin-cache child with a symlink into the repo so edits were live with no reinstall. Codex does not resolve those symlinked entries reliably, and the plugin can silently fail to load. The dev install trades that liveness for a real copy: you reinstall after each change, and what Codex loads is exactly what is on disk in the cache. dev-install.sh deletes any leftover symlinks it finds in the cache before installing.

Hooks and the CLI run from compiled dist/. The default scripts/dev-install.sh path runs npm run build for you; run it directly when you want the build alone:

Terminal window
npm run build

See Build & Test for the build and test harness.

If your fork carries changes that upstream has not accepted yet, keep a named integration branch as the install source and use separate branches for upstream PRs. Merge upstream dev into that branch while retaining intentional local changes. Before replacing a local feature with upstream code, verify equivalent behavior.

Back up the installed payload and preserve role settings before updating. Build components and, if used, the GUI from the integration revision, then install that revision. Check the marketplace root with scripts/dev-install.sh --status and verify the installed CLI, role routing and catalog features. Installing from a different checkout can remove local additions even when the version string matches. Upstream PR acceptance and preserving a working local installation are separate steps.