Contextkit docs

17 skills. First Build course.
Every command. Full reference.

Install Contextkit, run the 7-module First Build course, understand all 17 skills, and use Claude Code or Codex as a development partner that asks first and ships clean.

Note on naming: The landing page and user-facing brand is Contextkit (the product). The CLI and install command is contextkit (the technical name). Same thing — "contextkit" is what you type in the terminal.

01. Install and verify

Your lifetime license follows your email.

Use the exact email from your Dodo checkout. The CLI checks the payment record before writing anything into your project.

1. confirm purchase
npx contextkit-cli@latest verify --email you@example.com
2. install in this project
npx contextkit-cli@latest
or install globally for every project
npx contextkit-cli@latest --global

Install asks a 4-question interview and writes the answers to .contextkit/seed.json. /start reads those answers so the agent never re-asks the basics.

--global installs into ~/.claude and ~/.codex so every project inherits the rules automatically.

After install: the 30-second version

  • New project or feature: /start — asks 3-4 questions, writes CLAUDE.md and your roadmap.
  • Every session after that: Opens with your position: project, progress bar, next step.
  • New screen: /design-intake — decides the design on purpose, writes DESIGN.md.
  • Building: /step → /check. Broke? /fix. Before you accept: /review.
  • Too much code?: /lean. Looks AI-made? /design-check → /polish.
  • Need web or docs?: /connect-mcp wires exa, context7, crawl4ai, or gemini.
  • Going live: /secrets then /ship. Broke it? /recover. Confused? /explain.

02. Claude Code

Open Claude Code where you installed Contextkit.

terminal
claude
terminal
/tour

The tour is your opening night. Doctor proves the engine is alive, optional MCP tools get wired, and the clarity lock fires live in front of you on a real prompt. After that, start any project with /start.

Three behaviors run automatically without you asking:

Clarity lockA vague build request arms a lock — the agent can't touch files until you confirm the goal through multiple-choice questions. Say "just do it" to skip. Tune: contextkit clarity strict|relaxed|off
Slop scanAfter the AI edits a screen, detect-slop.mjs auto-scans for AI-look tells and prompts a /polish pass. Mode: contextkit slop notify|strict|off
Safety guardBefore destructive commands (recursive delete, force-push, DROP TABLE) you get a plain-English warning and a required yes before anything runs.

Two windows into what the engine is doing:

Statusline cockpitClaude Code's own bottom bar shows your project, a progress bar, step N of M, and an 'asking first' light when a clarity round is running. On by default. contextkit statusline on|off
contextkit watchA live HUD in a second terminal pane: roadmap, clarity/tutor status lights, agent activity feed. Run it when you want the bigger picture live.

03. Codex

Same install. Open Codex.

terminal
codex
terminal
$tour

Contextkit adds its rules and skills where Codex reads them. Start a project with $start, advance with $step. Every skill that has a Codex prefix uses $ instead of /.

Codex note on the clarity lock: Codex's hook API warns before a write but cannot physically deny it. In strict mode, Codex gets a durable ask-first instruction plus a write warning — not a hard block. Claude Code keeps the physical locks. The written rules and planning flow are the guardrail in Codex.

04. The 17 skills

A few skills, each deep.

Six clusters, one install. In Claude Code each skill is a /command. In Codex they're $command or plain words — whichever you type, the right skill picks it up.

The core

always on
/startAsk first, build later
Codex: $start
When to use

At the very start of any new app, feature, or change — before a single line of code.

What it does

Reads .contextkit/seed.json (the 4-question install interview) and any existing CLAUDE.md/AGENTS.md first. Asks clarifying questions in rounds of 3-4 multiple-choice options — never one at a time, never a wall of ten. Keeps going until the goal can be stated back with no gaps. Writes CLAUDE.md (human-readable source of truth), a Codex AGENTS.md summary, and journey.json (the machine-readable roadmap the session HUD reads). No code is touched until you approve the plan.

/tourOpening night — four live acts
Codex: $tour
When to use

Your very first session after installing. Run once.

What it does

Act 1: runs doctor with a cascade flag so engine checks light up one at a time — any red stops the tour and offers contextkit doctor --fix. Act 2: offers to wire the four starter MCP tools (exa, context7, gemini, crawl4ai) with one pick, proves each one works. Act 3: reads seed.json and confirms it in one line without re-asking. Act 4: fires the clarity lock on a real prompt live so you watch it work, then reveals the statusline cockpit and offers contextkit watch in a second pane.

Build cleanly

/stepOne step, then save your place
Codex: $step
When to use

After /start produces an approved plan. Repeat after each working piece.

What it does

Reads CLAUDE.md and journey.json, marks the next step in-progress before building. Uses the laziest-first reuse ladder: skip speculative work, reuse existing code, use the standard library, use a native platform feature, reuse an existing dependency — only then write new code. Marks the step done, saves lastSession.note (shown at the next session's open), and hands off to /check. Never claims it works itself.

/checkProve it, don't promise it
Codex: $check
When to use

After /step. Any time 'should work' appears.

What it does

Actually runs or opens the change and reports what it saw — the real user action (submit the form, click the button), real output. Checks edges beyond the happy path. Reports concrete evidence. If broken, hands to /fix rather than patching here.

/fixFind the real cause, don't whack moles
Codex: $fix
When to use

Something is broken. An error message appeared.

What it does

Reproduces the bug on purpose first. Traces back to where it actually goes wrong, not where it first shows up. States the cause in one plain sentence, then makes one targeted change. 3-strikes rule: after three real attempts, stops and questions the approach instead of piling on more patches.

/reviewFresh eyes before you accept
Codex: $review
When to use

Before accepting any diff. Before merging or committing a batch of work.

What it does

Reads the actual diff (not a summary) against the original goal in CLAUDE.md. Scans for secrets/keys in every changed file, half-done paths, sneaked scope, real bugs. Splits into must-fix and later. Never rubber-stamps.

/leanCut the code slop
Codex: $lean
When to use

Code looks over-built. Forty files for a two-line change. New dependency for a one-liner.

What it does

Works the reuse ladder in reverse: cuts speculative abstractions, one-use interfaces, dependencies doing what native features or a few lines would, fifty lines where one would do. Reads end-to-end first — the smallest change in the wrong place is a second bug. Re-checks it still works after cutting. Never cuts input validation, error handling, security, or accessibility.

Ship and survive

/shipGet it live
Codex: $ship
When to use

Ready to deploy. First time going public.

What it does

Runs /secrets first — never skipped. Commits and pushes to GitHub. Connects to Vercel or Netlify, sets production env vars (the #1 reason deploys work locally but break live), deploys, then opens the live URL and tests it. Runs the celebrate script once the URL returns 200. Deploy and working are two different things — this confirms both.

/secretsSafe to ship?
Codex: $secrets
When to use

Before anything goes public or gets deployed. Mandatory before /ship.

What it does

Greps source for key shapes: sk-, AKIA, AIza, ghp_, xox, -----BEGIN, password =, secret =. Checks git history, not just current files — a deleted key is still leaked. Verifies .env is gitignored and was never committed. Confirms no secrets in frontend/client code. Checks for unhashed passwords and wide-open routes. If a key was ever public: rotate it. Deletion is not enough.

/recoverGet back to when it worked
Codex: $recover
When to use

Something broke badly. Work seems lost. Git is scary.

What it does

Stops you making it worse first. Shows git status + log + reflog in plain English. Picks the gentlest fix: restore/stash before reset, revert before reset --hard, reflog before 'work is lost'. Explains exactly what any destructive operation will delete and gets an explicit yes. Lands on a working state then checkpoints it.

/explainUnderstand what you built
Codex: $explain
When to use

After the AI wrote something you can't read. Before a code review.

What it does

Reads the actual code (not the filename). Gives the shape in 2-3 sentences: what it does, how pieces fit, what calls what. Points at the few lines that do the real work and anything risky. Never narrates line-by-line. Uses one analogy if it makes it click. Checks it landed and invites the next question.

Don't look AI-made

37-tell detector
/design-intakeDecide the look on purpose
Codex: $design-intake
When to use

Before building any UI. Before the first screen. If there's no DESIGN.md yet.

What it does

Asks 2-3 real questions per round — not confirmation questions. Round 1: what it is and who it's for, brand vs product surface. Round 2: three personality words, named references and anti-references (what it must NOT feel like — the most useful answer you can give). Round 3: color strategy, typeface direction (rejects Inter/Geist/Roboto by default), motion energy. Writes DESIGN.md: your design source of truth including a Creative North Star, named anti-references, and token rules. Never designs from the prompt alone.

/design-checkHonest second pair of eyes
Codex: $design-check
When to use

After building any screen. Before calling design done.

What it does

Looks at the actual rendered screenshot, not the code, at three widths (390/768/1440). Pulls intent from DESIGN.md. Runs detect-slop.mjs for measurable tells (P1 exits 1), then does a holistic pass: squint test for hierarchy, contrast ≥4.5:1, spacing rhythm. Scores 0-40 honestly — most real UIs land 20-32. Tags each issue P0-P3. Lists the top 3 highest-impact fixes. Reports only. Editing is /polish.

/polishFix the slop, by the root
Codex: $polish
When to use

After /design-check finds issues. Any time output looks AI-made.

What it does

Reads DESIGN.md first — refuses to polish without a design system, runs /design-intake instead. Classifies each issue: missing token (add to DESIGN.md, then use it) / one-off deviation (snap to existing token) / conceptual misalignment (rework toward the North Star). Runs detect-slop.mjs and works the full list: swap reflex fonts, kill gradient text, drop violet decorative gradients, fix contrast, put spacing on a 4pt scale, cut em-dashes from copy. Re-runs until 0 P1 tells remain and rescores.

Reach further

/connect-mcpPlug real tools into your agent
Codex: $connect-mcp
When to use

The agent is guessing from stale training data. You need live web search, current library docs, or a real browser.

What it does

Asks what you actually need before adding anything (Rule 0). The starter four: exa (web search + docs, needs a free EXA_API_KEY), context7 (current library docs piped into the agent, no key), gemini (vision — lets the agent check screenshots and designs, needs a Gemini key), crawl4ai (reads a specific site into clean text, no key). Adds the right JSON block to .mcp.json for Claude Code, Codex, or Antigravity. Proves each one works with a real call before moving on. Never adds servers 'just in case'.

/claude-tipsUnlock the 90% you're not using
When to use

Something feels clunky. You're doing manually what Claude Code has a built-in for.

What it does

Matches one feature to your actual pain: re-explaining the project every session (CLAUDE.md), lost context (/clear, /compact), it ran off and built the wrong thing (Shift+Tab plan mode), repeating the same workflow (custom skill in .claude/skills/), visual bug (paste screenshot), same rule every time (hook in settings.json). Recommends the one that fixes your problem, not a product manual. Full list in reference/claude-code-cheatsheet.md.

/codex-tipsUnlock Codex built-ins you're missing
Codex: $codex-tips
When to use

Something in Codex feels clunky. You're repeating yourself across tasks.

What it does

Same philosophy as /claude-tips but Codex-specific: re-explaining rules (AGENTS.md in the repo or ~/.codex/AGENTS.md), wanting a plan before edits (Plan mode), repeating a workflow (SKILL.md in .agents/skills/), needing a check every time (.codex/hooks.json), needing current docs or a browser (MCP). Gives the five must-knows: AGENTS.md, Plan mode, skills, MCP, and hooks. Points to /help, /hooks, /mcp for exact interface since Codex updates often.

Voices

opt-in
teachingTeaching voice
When to use

When you want the agent to explain what it does and why as it goes.

What it does

Switches output to a teaching tone. After each meaningful code change, a short card appears: WHAT IT DOES in your own words, WHY THIS WAY (the choice made and the road not taken). Teach-once aware — checks .contextkit/concepts.json and never cards the same concept twice. Holds a 10-minute cooldown and skips trivial edits. Toggle: contextkit cards on, or /config > Output style.

buddyBuddy voice
When to use

When you want a warmer, more conversational tone without losing directness.

What it does

A softer register that still leads with the point, recommends rather than lists options, and pushes back when needed. Direct stays the default. Switch via /config > Output style. Switching back to direct is always one command.

05. First Build course

From empty folder to your own live app — understood end to end.

Not a demo project. You bring the idea; the course brings the rails. 7 modules, hand-written, taught once at the moment they matter, and remembered in .contextkit/concepts.json so they never repeat.

start or resume the course
contextkit learn

Works in Claude Code, Codex, and any agent that can read files. Resume from anywhere — the session greeting knows where you left off.

0

Your Idea Becomes a Plan

From 'I have an idea' to 'my app exists on my computer and I have a plan I understand.' No code yet — just the idea interrogated, structured, and written down. You leave with an approved plan and CLAUDE.md written.

1

Your First Page

The blank terminal disappears. Your first page goes from plan step to running in a browser. You see the code, understand what it does, and make your first real checkpoint commit.

2

Where Your Data Lives

The most important lesson in the course. You watch your own data travel from your browser form to the server to the database and back, animated inside your own running app in your own words. Data stops being abstract.

3

Make It Do More

Features added one step at a time: /step then /check then commit. You practice the loop until it feels natural. The clarity engine catches a vague request in front of you.

4

When It Breaks (And It Will)

The app breaks on purpose, twice. You fix it both times using /fix. Reading errors is the skill that separates people who ship from people who quit. You leave knowing you can handle it.

5

Ship It

/secrets then /ship. Your app goes live on a real URL, backed by a real database, code on GitHub. You open the URL yourself and confirm it works. The ship celebration runs.

6

Graduation

Defense Mode asks five questions from your own real code. You explain what you built in your own words. You leave with a shareable ship page and the tutor that stays with you in every future project.

Defense Mode

contextkit defend

A 10-minute oral defense of your own code. 5 questions generated from YOUR real files — never a generic bank. No score, always stoppable. Works in any contextkit project, with or without the course. Updates your concept graph based on your answers.

App Map

say "map my app"

Reads your real code and draws one page showing how your app fits together — in your own words, at a scale a beginner can hold in their head. Every node comes from code that actually exists. Works in any contextkit project. Trigger with: "map my app" or "how does my app fit together".

Knowledge graph

contextkit progress

Every lesson and course beat records concepts into .contextkit/concepts.json — with connections between concepts and a grasped/needs-revisit flag. See it any time with contextkit progress or contextkit progress --map for a visual browser view.

Claude Code power map

contextkit powers

20 Claude Code powers mapped. Shows which you've been taught vs not yet — the tutor introduces each one at the moment you actually need it, once, then never repeats it. Most people use 3 of 20 by default.

06. CLI reference

Everything contextkit can do from your terminal.

Run these in your terminal, not inside Claude Code or Codex. They control engine state, toggles, and project tools.

contextkit verify --email you@example.com

Confirm your lifetime license before installing.

contextkit status

Current engine toggles, project roadmap position, and next step.

contextkit doctor

Green/red self-check of the entire hook engine. Add --fix to repair node paths and re-wire hooks.

contextkit clarity strict|relaxed|off

How hard ask-first is enforced. strict blocks vague builds until the goal is confirmed. relaxed asks but never blocks.

contextkit tutor on|off

In-the-moment coaching on Claude Code power moves. Teaches each once at the right moment, then never repeats it.

contextkit cards on|off

Learning cards after meaningful edits: WHAT IT DOES + WHY THIS WAY. Teach-once aware — never cards the same concept twice.

contextkit slop notify|strict|off

Slop scan mode after edits. notify names open tells at wrap-up. strict blocks the agent from finishing while P1 tells are open.

contextkit statusline on|off

Wires the navigator into Claude Code's own status bar: project, progress bar, step N of M, asking-first light while a clarity round runs.

contextkit recap [on|off]

Re-show the last session's receipts card. Toggle whether it appears at session end when earned.

contextkit watch

Live HUD in a second terminal pane: roadmap, clarity/tutor status lights, agent activity feed, animated.

contextkit powers

The 20-power Claude Code map. Shows which powers you've been taught vs not yet. The tutor teaches each one at the moment you need it.

contextkit learn

Start or resume First Build — the 7-module guided course from empty folder to your own live app.

contextkit progress

Your knowledge graph: concepts grasped, worth a re-visit, course position. Add --map for a visual version in your browser.

contextkit defend

Defense Mode: a 10-minute oral defense of your own code. 5 questions generated from YOUR real files. No score, always stoppable.

contextkit celebrate --url <url>

The ship celebration with mascot + URL in a box. Runs automatically from /ship.

contextkit dance

The bot-2 breakdance. Runs until Ctrl+C. Also plays when a step ships via /ship.

contextkit remove [--global]

Clean uninstall. Unwires hooks, removes skills and engine. Keeps CLAUDE.md, AGENTS.md, and .contextkit/ — those are yours.

07. Engine toggles

Turn any behavior on, off, or tuned.

Every toggle has a sensible default. Nothing needs changing to start — adjust only what doesn't fit your workflow.

Clarity enforcementdefault: relaxed
contextkit clarity strict|relaxed|off

strict = hard lock in Claude Code; advisory in Codex

In-moment tutordefault: on
contextkit tutor on|off

teaches each Claude Code power move once at the right moment

Learning cardsdefault: on
contextkit cards on|off

WHAT + WHY card after meaningful edits, teach-once aware

Slop scan modedefault: notify
contextkit slop notify|strict|off

notify = names tells at wrap-up; strict = blocks finish

Statusline cockpitdefault: on
contextkit statusline on|off

Claude Code only; never replaces your own statusLine

Session receiptsdefault: on
contextkit recap on|off

fires at session end only when it actually earned something

08. Daily workflow

The loop that ships real things.

New project or feature/startQuestions first. Plan written. No code until you approve.
Building each piece/step → /check → commitSmallest thing that works, proved, checkpointed.
Something broke/fixRoot cause only. 3 strikes, then rethink the approach.
Before accepting a diff/reviewDiff vs goal, secrets scan, must-fix vs later.
Code looks over-built/leanCut what a few lines or a native feature would do.
Before going public/secrets → /shipKeys audit, then deploy with prod env vars verified.
Screen looks AI-made/design-check → /polishHonest score, root-cause fixes, 0 P1 tells.
Work seems lost/recoverReflog first. Gentlest move. Explicit yes before discard.
Can't read the code/explainShape + key parts. One real path. Never line-by-line.
Underusing Claude Code/claude-tipsMatch one built-in to your actual pain point.

09. Troubleshooting

Common problems, direct fixes.

Verification says no purchase found

Check the email spelling — use the exact address from Dodo checkout. Wait a minute after payment for the webhook to record the completed payment. If it still fails, send your checkout email and payment ID to support@contextkit.dev.

The engine went quiet — clarity lock stopped firing

Hooks are wired to an absolute node path at install time. If node moved or was upgraded, run: contextkit doctor --fix to rewire them. Then run /tour to confirm all lights are green.

AGENTS.md already existed — contextkit didn't install

From v0.4+, the installer merges the core rule into your existing AGENTS.md as a marker-fenced section. It's idempotent (safe to reinstall) and cleanly removable. Run contextkit doctor to check the state.

Upgrading to a new version

Re-run npx contextkit-cli@latest in the project. Upgrades in place and never touches your CLAUDE.md, AGENTS.md, or .contextkit/ roadmap. Run contextkit doctor after to confirm the engine is green.

Removing contextkit

Run contextkit remove (or contextkit remove --global). It unwires hooks, removes skills and the engine, and strips the contextkit section from AGENTS.md. Your CLAUDE.md, personal AGENTS.md content, and .contextkit/ roadmap are left untouched — those are yours.

contextkit watch isn't showing anything

Run it in a second terminal pane inside the project folder where contextkit is installed. The HUD reads from .contextkit/journey.json — if no project has been started with /start yet, the roadmap section will be empty until you run /start.

The statusline cockpit isn't appearing

Run contextkit statusline on. If you already have your own statusLine in .claude/settings.json, contextkit will not overwrite it. Remove that entry first, then run contextkit statusline on. The cockpit appears in the next Claude Code session.

Still stuck?

Send your checkout email and a description of the problem to support@contextkit.dev. Include the output of contextkit doctor if you can.

Dodo payment help