Validation
npm test # build + unit tests (node --test)
npm run doctor # environment checks
npm run smoke:real # real Claude turn (needs Anthropic/Bedrock/Vertex auth)
npm run acceptance:local-remote # local shim/daemon/proxy + real Claude file edit
npm run acceptance:gui-ssh-localhost # SSH localhost -> login shell -> shim -> GUI-session runtime
npm run probe:codex-cli-remote # probes the local codex --remote CLI behaviorWhat each check does
acceptance:local-remotecreates an ignored.claude-codex/local-remote-acceptance-*directory, installs the shim into a temporaryPATH, starts the Unix-socket daemon, connects throughapp-server proxy, auto-approves Claude Code file edits, and verifies that Claude creates a file in the temporary workspace.acceptance:gui-ssh-localhostis the closest automated check to the Codex App GUI Remote experience on macOS: it startscodex app-server --listen unix://andcodex app-server proxythroughssh localhost 'zsh -lc ...', then verifies Claude Code can edit a git workspace through Codex approval and diff events.probe:codex-cli-remotestarts the adapter in mock WebSocket mode and tries the currently installedcodex --remote ws://...CLI. It keeps a transcript under.claude-codex/codex-cli-remote-probe-*. In a desktop flow the app supplies its own interactive/auth context; the CLI probe reportsblocked-login,blocked-timeout, orblocked-no-ttywhen the local CLI cannot complete an automated remote prompt.
Acceptance and probe transcripts are written under the git-ignored .claude-codex/ directory.