Understand an actual project's code through standard editor AI chat, real execution and the native debugger in VS Code and Cursor. Save an explained code path as learning material, or independently generate a repository-wide DeepWiki site.
| Feature | Experience |
|---|---|
| Live explanation | Ask /codebook in Copilot Chat or Cursor Agent. The AI operates the real application/runtime, pauses actual source, explains in chat and continues. Inspect values in the native debugger. |
| Learning replay / time-travel debugging | Replay the application, the source executing at that time and historical values/stack in the native debugger in sync. Repeatedly step backward/forward and seek after runtime exit. The live chat area becomes a learning summary with a sequence diagram. |
| Independent LLM Wiki / DeepWiki | Reproduce DeepWiki itself through the editor AI's generation skill: full chapters, diagrams, source citations, reader navigation and repository Q&A. Keep local/configurable output, chat/browser updates and source links into your editor. Runtime/debug MCP and learning are independent. |
The owner retired the three selectable UI themes, not these distinct feature screens. Codebook Activity Bar navigation reaches them. The v9 product image is owner-approved after GStack design review. Implementation follows the working loop and the acceptance map, with mandatory visual inspection.
Codebook contributes debug.focusEditorOnBreak: false as the native debugger default, so a breakpoint can select its source and values without moving the keyboard out of the chat. This default applies to native debugging throughout editors where Codebook is enabled. At a stop Codebook did not cause (a step or a continue of yours, a refresh of the debug adapter, or a debug session that is not a Codebook run), Codebook gives the paused file the keyboard once, as the editor would without this default; it does nothing while a recording is open or when you set the setting yourself. Existing explicit User and Workspace preferences take precedence; Codebook writes no settings file. Set debug.focusEditorOnBreak to true in the ordinary editor settings if you prefer the debugger to focus source at a break. Disabling or removing Codebook removes its default contribution.
This is a preview, not a Marketplace or Open VSX release. The delivered version is 0.2.68.0 (PR #171, Cycle 0067), and the active cycle Issue says where the delivery stands. Cycle 0068 is a process cycle: the extension behaves as 0.2.68.0 for learners, the replay debugger's lifecycle moved out of studyWorkspace.ts into its own module with the same behavior, and four repository commands under extension/scripts (bump-version.mjs, qa-candidate.mjs, post-trial-evidence.mjs, merge-pr.mjs) now run delivery steps that were done by hand (Commands and checks). Cycle 0067 was a feature cycle (0.2.68.0): a library test that renders or reads the DOM under jsdom or happy-dom is explained live from a natural /codebook question, saved and replayed in VS Code and Cursor, and the six defects its native run-check found are fixed (large repositories, a lean test history, values a Proxy holds, recorded inspections in the replay, a run Vitest itself ends; MCP API 1.12, skill 1.0.61). Cycle 0066 was a bug-fix cycle (0.2.67.0): it fixed every defect Cycle 0065 carried in the Next Pages Router runs, so refusals, the choice between an App and a Pages route, the masking of the server's output and the help say and do the same thing (MCP API 1.12, skill 1.0.60). Cycle 0065 was a feature cycle (0.2.66.0): the chat explains a click in a Next Pages Router page live, pausing in the page's own source, and saves it as a learning replay (MCP API 1.12, skill 1.0.58). Cycle 0064 is a bug-fix cycle that closes every defect Cycle 0063 carried, in up to three pull requests; its first pull request (0.2.63.0) makes a Vite run seal its stops again after the dependency optimizer reloads the page, wait for the optimizer before the inputs, and keep the project's env-file values masked in every Vite output; its second (0.2.64.0) lets Cursor's Agent chat open the Study with no step of yours, keeps a run's Application open through its stops, keeps a run's own stop preview from blocking the next Study, and names a Vite plugin's rewrite when it refuses a stop; its third (0.2.65.0) names every recorded frame in the replay Call Stack and keeps a Cursor 3.27 run's Application at every stop. Cycle 0062 was a bug-fix cycle in two pull requests: the first fixed every defect Cycle 0061 carried for the Chrome extension runs (the Application view in Cursor, where the paused source opens, how a run stops and cleans up, and how the debugger ties the surface and the worker) and the defects its own reviews found (skill 1.0.56); the second changed only the repository's checks (Fallow in four CI jobs with an import-cycle check, formatting with bun fmt and Bun pinned by .bun-version), so the extension, MCP API 1.10 and skill 1.0.56 stayed as in 0.2.60.0. Cycle 0063 was a feature cycle (0.2.62.0): it added the vite-dev adapter of the repository-browser profile, which explains the opened repository's own Vite 8 web app live on its Vite development server and saves the run as a learning replay (MCP API 1.11, skill 1.0.57). Cycle 0061 was a feature cycle that explains a Chrome Manifest V3 extension of the opened repository live, paused in its page script and its service worker, in two pull requests: the first lays the profile's parts (the checks before launch, a Chrome that Codebook starts itself with seeded test data only, the debugger for the page and the service worker, and the click executor), and nothing reaches the chat yet; the second offers the chrome-extension profile through MCP API 1.10 and the bundled skill 1.0.55, shows the extension in the Application view, and carries the native trial. Cycle 0060 was a bug-fix cycle that closes the defects Cycle 0059 carried: a server run's seal, Save notice, status item and run resource agree with its stored history, private paths and secrets stay out of that history, and Open replay opens a just-saved Server replay (skill 1.0.54). Cycle 0059 was a feature cycle that saves a server run as a learning replay, in three pull requests: the first lays the storage a server replay is written to and read from and makes the saved study limit count test replays at a study's save, a run's start and a recording's start too; the second reads a saved server history back (Saved studies, codebook://node-history and the replay composition) and saves the chat's learning material under the storage lock, so two windows no longer overwrite each other's; the third records the history during the run, so Save learning replay saves a server run as a Server replay (MCP API 1.9, skill 1.0.53), and carries the native trial. Cycle 0058 was a bug-fix cycle that closes the 13 defects Cycle 0057 carried: a stopped or retried server run signals and reports only what it did, what the chat and the learner read about a server run is true (skill 1.0.52), and the LLM Wiki view's message no longer flickers empty. Cycle 0057 was a feature cycle that explains a repository's own Node HTTP server live, in three pull requests: the first masks credentials in what every run captures and lays the server profile's launch parts; the second offers the node-server profile through MCP, which starts the server under the debugger, sends one declared request (confirmed by you when it changes data) and stops in the route handler's source; the third routes the bundled skill to it (skill 1.0.51), tightens stopping and what the run shows, and carries the native trial in VS Code and Cursor. Cycle 0056 was a bug-fix cycle that closed the defects Cycle 0055 carried, in three pull requests: the first makes an LLM Wiki start say what happens when it joins a start under way, is stopped or passes its bound, and release or write back what it claimed; the second the LLM Wiki view and the reader; the third a saved test replay that Cursor refused to open, with the native trial. Cycle 0055 is a feature cycle: Codebook: Generate LLM Wiki writes a project's first LLM Wiki through the editor's agent from Codebook's own entry (its first pull request), and an LLM Wiki view in the Activity Bar shows, opens and updates it (its second). Cycle 0053 was a feature cycle: a test inside a workspace package runs with that package's Vitest and config, as the package's own vitest would, while a test the repository root's config already selects keeps running from the root. Cycle 0054 is a bug-fix cycle that closes the three defects Cycle 0053 carried: a test that ends before a later declared stop says so, a package test's launch asks the repository root again whether its config now selects the test, and the native-trial bootstrap keeps a listing it could not release. Cycle 0051 opened a test replay in the learning-replay composition a browser replay has: the Learning summary in the chat's place, one transport for both replay families, and a Learning summary button that shows a hidden summary again. Cycle 0052 was a bug-fix cycle that closed every defect Cycle 0051 carried, in three pull requests: the first makes replays leave, open and reload without stale frames and makes their entries and exits behave as the learner chose; the second fixes a test replay's moves and its summary page; the third the live runtime's unreadable facts, a browser run's refusals and the tests' hygiene. The MCP API is 1.12 from 0.2.66.0 on; 0.2.62.0 to 0.2.65.0 offer 1.11. What each earlier cycle delivered, with its tests, trials and limits, is in the change history and in that cycle's record, kept under the tag docs-archive-2026-10-20; from Cycle 0048 on, the cycle's Issue holds its tasks and state, and its pull requests the results.
The specification is goal version 11, and the implementation targets external repositories. Historical fixture or coupled-Wiki success is not proof of that destination.
Until final acceptance begins, actual-editor development verification uses the owner-designated nextjs-dashboard checkout. Final acceptance requires all nine designated projects in two stages, both editors and every applicable runtime use case. No Stage 1 or Stage 2 PASS is claimed under goal version 11 or any earlier version.
| Question | Source of truth |
|---|---|
| How must an agent build and verify the product? | AGENTS.md |
| What image must an agent open and inspect? | Approved v9 PNG and visual contract |
| What are the features and how do they relate? | PRODUCT_GOAL.md |
| What exactly is saved learning? | Learning replay contract |
| How is Wiki independent, generated and updated? | LLM Wiki contract |
| What must pass before completion? | Final acceptance protocol and the fixed project matrix |
| What is implemented, verified and next? | The active cycle Issue (the open Issue with the label cycle) |
| How does the existing preview work? | Version-qualified installation and usage, change history |
| How do development and review work? | Delivery |
| What is the current design authority? | Design target |
Read AGENTS.md when starting or resuming work; Codex loads it as its project instructions, and so does Claude Code while no CLAUDE.md, .claude/CLAUDE.md or CLAUDE.local.md overrides it. PRODUCT_GOAL.md owns the outcomes, AGENTS.md the way of working, and the active cycle Issue the state.
- Goal Issue #1 remains open until all acceptance conditions and owner acceptance hold.
- Cycle 0068 Issue #172 is the active cycle: a process cycle with no change of learner-visible behavior (the replay debugger's lifecycle moves into its own module; four repository commands run the version bump, native-trial candidate, trial evidence and merge steps); the Issue holds its tasks and state.
- Cycle 0067 Issue #170 is closed after PR #171: a feature cycle in which a library test under jsdom or happy-dom is explained live, saved and replayed in both editors (skill 1.0.61, native run-check N67).
- Cycle 0066 Issue #168 is closed after PR #169: a bug-fix cycle that fixed every defect Cycle 0065 carried (Next Pages refusals, the router contest, masking, help and tests; skill 1.0.60); nothing was carried.
- Cycle 0065 Issue #166 is closed after PR #167: a feature cycle in which the chat explains a click in a Next Pages Router page live and saves it as a learning replay (MCP API 1.12, skill 1.0.58, native trial N65); the defects it carried are the tasks of Cycle 0066.
- Cycle 0064 Issue #162 is closed after PR #163, PR #164 and PR #165: a bug-fix cycle that closed every defect Cycle 0063 carried (Vite seal and masking, Cursor's Agent chat opening the Study, a run keeping its Application, the replay Call Stack's lower frames); nothing was carried.
- Cycle 0063 Issue #160 is closed after PR #161: a feature cycle that explains a repository's own Vite 8 web app live on its Vite development server (the
vite-devadapter, MCP API 1.11, skill 1.0.57, native trial N63); the defects it carried are the tasks of Cycle 0064. - Cycle 0062 Issue #157 is closed after PR #158 and PR #159: a bug-fix cycle that closes every defect Cycle 0061 carried for the Chrome extension runs (its first pull request, #158, with the native trial N62) and then changes the checks (its second pull request: Fallow in four jobs with an import-cycle check,
bun fmt); nothing was carried. - Cycle 0057 Issue #139: a feature cycle that explains a repository's own Node HTTP server live, in three pull requests (the redaction contract and the profile's launch parts; the
node-serverprofile through MCP; the bundled skill's server route with the native trial N57). - Cycle 0055 Issue #132 is closed after PR #133 and PR #134: a feature cycle in which Codebook's Activity Bar generates, opens and updates the LLM Wiki, re-proven natively in both editors. Its baseline E1 measured a first generation at 34 min 33 s in VS Code and 4 min 14 s in Cursor's agent CLI, so a generation is bounded at 55 minutes.
- Cycle 0054 Issue #130 is closed after PR #131: a bug-fix cycle with no increment that closed the three defects Cycle 0053 carried (an unreached declared stop explains itself, a launch asks the root claim again, the native trial keeps unreleased listings); the Issue holds its tasks and state.
- Cycle 0053 Issue #128 is closed after PR #129: a feature cycle in which a test inside a workspace package runs with that package's Vitest and config (TanStack Query's and Redux Toolkit's library tests among the final-acceptance targets); the three defects it carried are the tasks of Cycle 0054.
- Cycle 0052 Issue #124 is closed after PR #125, PR #126 and PR #127: a bug-fix cycle with no increment that closed every defect Cycle 0051 carried (replays leave, open and reload without stale frames; a test replay's moves and summary page; the live runtime, a browser run's refusals and the tests' hygiene); it carried nothing.
- Cycle 0051 Issue #122 is closed after PR #123: a feature cycle that opens a test replay in the learning-replay composition a browser replay has, with the Learning summary in the chat's place and one transport; the defects it carried are the tasks of Cycle 0052.
- Cycle 0050 Issue #118 is closed after PR #119, PR #120 and PR #121: a bug-fix cycle with no increment that closed every defect Cycle 0049 carried.
- Cycle 0049 Issue #107 is closed after PR #113, PR #116 and PR #117: a feature cycle that made a Vitest test run the chat explained a saved, replayable learning replay in both editors, in three pull requests merged in order (the loop and its contracts; the Application pane and the Study section; the recorded source, the debugger and the transitions, with the native round in both editors).
- Cycle 0048 Issue #105 is closed after PR #106: a bug-fix cycle with no increment that closed the 24 defects the adversarial review of Cycle 0047's final candidate found, 5 that an archived test guide carried and the 189 found while it ran, and carried nothing.
- Cycle 0047 Issue #90 is closed after PR #91 (record): a bug-fix cycle with no increment that closed the 53 defects Cycle 0046 left and every defect found while it ran (279 rows, the list); the 24 defects that the adversarial review of its final candidate found are the tasks of Cycle 0048, a bug-fix cycle whose pull request holds only their fixes.
- Cycle 0046 Issue #87 is closed after PR #88 (record): a bug-fix cycle with no increment that closed every defect Cycle 0045 left and every defect found while it ran but row 1066 (1192 rows); row 1066 and the findings its delivery's last review left open are the tasks of Cycle 0047.
- Cycle 0045 Issue #85 is closed after PR #86 (record): the frozen natural
/codebookrequest was submitted three times per host, sixteen causes that stopped it are fixed and the 222 defects Cycle 0044 left are closed (rows); what it leaves is the task list of Cycle 0046, a bug-fix cycle (the list). - Cycle 0044 Issue #83 is closed after PR #84 (record): Update LLM Wiki ends with a result the learner can see on the Wiki page and in the editor, and of the 440 defects earlier cycles left open 439 were closed before the pull request and the last one on it, when the new DOM check job passed (its first run failed for a missing video encoder on the CI runner, and the workflow was fixed) (rows). It is the first cycle under the cycle rule.
- Cycle 0043 Issue #80 is closed after PR #81 (record): a stop the debugger binds on the next line is accepted there instead of ending the run. Work resumed on the owner's direction of 2026-10-03 on a Windows host with WSL (hosts rule).
- Cycle 0042 Issue #78 is closed after PR #79 (record): a pause away from the next declared stop's line that the debugger makes and resumes by itself after a continuation no longer ends a live run.
- Cycle 0041 Issue #76 is closed after PR #77 (record), Cycle 0040 Issue #74 after PR #75 (record), Cycle 0039 Issue #72 after PR #73 (record), Cycle 0038 Issue #70 after PR #71 (record), Cycle 0037 Issue #67 after PR #68, Cycle 0036 Issue #65 after PR #66, Cycle 0035 Issue #63 after PR #64, Cycle 0034 Issue #61 after PR #62, Cycle 0033 Issue #59 after PR #60, Cycle 0032 Issue #56 after PR #58, Cycle 0031 Issue #53 after PR #54, Cycle 0030 Issue #50 after corrective PR #52, and Cycle 0029 Issue #46 after PR #48. Each next cycle Issue is created through
/spec(delivery chain). - The closed cycle records, kept under the tag
docs-archive-2026-10-20, preserve historical results, failed attempts and their exact source/host boundaries.
Advance only the active phase authorized by the owner. After the v9 design review, the owner authorized product implementation; the current state of the active cycle's record holds the current phase and next action. Record actual evidence and update the active cycle's record and its current state before handoff.