Version: 0.2.0
Codex Dev Loop gives development work a durable home. Instead of restarting context every thread, a project gets a .codex-loop/ vault with goals, loop specs, run logs, decisions, open loops, approvals, runbooks, and review surfaces.
Run the installer from the repository root.
PowerShell:
powershell -ExecutionPolicy Bypass -File .\installers\install.ps1
Bash:
bash installers/install.sh
By default, the skill installs to:
%USERPROFILE%\.codex\skills\codex-dev-loop$HOME/.codex/skills/codex-dev-loopYou can override the destination:
powershell -ExecutionPolicy Bypass -File .\installers\install.ps1 -Destination C:\path\to\skills\codex-dev-loop
bash installers/install.sh --destination /path/to/skills/codex-dev-loop
Open a repo in Codex desktop and say:
Use $codex-dev-loop for this repo. Initialize the dev loop vault.
Or run:
python <skill-dir>\scripts\bootstrap_vault.py --target .
For substantial work, create a goal card:
python <skill-dir>\scripts\create_goal.py --target . --name "fix auth timeout" --objective "Users stay signed in across refreshes" --verification "Run auth tests and manual browser check"
A good goal includes:
Use the vault as reviewable memory:
project-brief.md: product direction, architecture, repo conventionsloops/: loop contracts with trigger, action, verifier, budget, stop condition, and escalationruns/: per-loop execution logspreferences.md: durable user preferencesdecisions/: dated technical and product decisionsopen-loops.md: blockers, follow-ups, waiting itemsautomation-registry.md: recurring checks and wakeupsapproval-queue.md: actions waiting for user approvalinbox/: raw transcripts, voice notes, and rough contextCreate a loop spec for repeated work that has a measurable verifier:
python <skill-dir>\scripts\create_loop.py --target . --name "pr babysitter" --trigger "Every 15 minutes" --action "Inspect PRs labeled agent-watch" --verifier "CI green and no blocking comments" --stop-condition "CI green or budget exhausted"
Record each pass:
python <skill-dir>\scripts\record_loop_run.py --target . --loop pr-babysitter --observed "CI red" --action "Prepared one deterministic fix" --verifier-result failed --next-step "Ask user before push"
Check loop health:
python <skill-dir>\scripts\run_loop_check.py --target .
Every loop should define trigger, scope, action, verifier, budget, stop condition, escalation, and status. Skip loops for one-shot edits, vague exploratory work, and tasks without a cheap verifier.
Queue any action that changes external state:
python <skill-dir>\scripts\queue_approval.py --target . --title "push branch" --action "Push local branch" --target-action "origin/feature-x"
Codex should not perform queued actions until the user approves the exact action and target.
Before wrapping substantial work, run:
python <skill-dir>\scripts\finalize_check.py --target .
This reports:
Generate a local HTML dashboard:
python <skill-dir>\scripts\loop_status.py --target . --html
Open .codex-loop/dashboard.html to review current state.
Codex desktop supports real recurring automations. Use this system to define the target, cadence, stop condition, and approval boundary.
Example request:
Use $codex-dev-loop. Watch PR 42 every 30 minutes until CI passes. Prepare fixes locally, but do not push or comment without approval.
Codex should record the automation in automation-registry.md.
Save rough notes:
python <skill-dir>\scripts\ingest_transcript.py --target . --source notes.txt --title "release feedback"
Then distill the note into decisions, preferences, actions, and open loops.
.codex-loop/.