Skip to content
TypeBack

01 · The hunk

Your agent wrote it. Did you read it?

Every hunk Claude Code, Copilot, Codex or Pi writes lands in a queue. Answer one question about it, or type it back, before it counts as reviewed. Nothing is blocked. Your commits carry an honest record of what you read.

  • Free
  • VS Code 1.109+
  • Any model you have
  • No telemetry
A real checkpoint.
cart.ts12–28Claude CodeHIGH RISK
12export async function addToCart(userId: string, productId: string, qty: number) {
13if (qty <= 0) throw new Error('Quantity must be positive');
14const product = await db.product.findUnique({ where: { id: productId } });
15if (!product) throw new Error('Unknown product');
16 
17const cart = await getOrCreateCart(userId);
18const line = cart.lines.find((l) => l.productId === productId);
19const nextQty = (line?.qty ?? 0) + qty;
20if (nextQty > product.stock) return { ok: false, reason: 'out_of_stock' } as const;

Checkpoint · lines 17–20Predict

The cart already holds 3 of this product and its stock is 4. What does addToCart(user, product, 2) return?

21 
22await db.cartLine.upsert({
23where: { cartId_productId: { cartId: cart.id, productId } },
24create: { cartId: cart.id, productId, qty: nextQty },
25update: { qty: nextQty },
26});
27return { ok: true, qty: nextQty } as const;
28}

Checkpoint after line 20. Press 1 to 4 to answer.

Reviewed-by-human: 0/1 hunks

02 · Capture

Every agent. One queue.

Run TypeBack: Install Agent Hooks. It writes one small hook for each agent you use, and every edit reaches your editor over 127.0.0.1 as the agent makes it. The agent never waits on your review.

Review queue5 hunks
  • src/cart.ts 12–28now
  • src/api/orders.ts 40–611m
  • app/checkout/page.tsx 8–193m
  • lib/retry.ts 1–226m
  • src/cart.test.ts 30–442h
  • Claude Code

    .claude/settings.local.json

    Each edit arrives with its before and after text, so every hunk is exact. The file is per machine, so your paths never reach a teammate.

  • Copilot agent mode

    .github/hooks/typeback.json

    VS Code's agent hooks report the files an agent touched. TypeBack diffs each one against git to find the hunks.

  • Codex

    .codex/hooks.json

    Codex's apply_patch edits, parsed into hunks. Trust the folder and the hooks once when Codex asks.

  • Pi

    .pi/extensions/typeback.ts

    A small extension hands Pi's edit and write results over in the background, once you trust the project.

No agent?
Scan Git Changes queues every added hunk in the working tree. Or select code and press ⌘⇧A (Ctrl+Shift+A).
Editor closed?
An edit made from a terminal waits in ~/.typeback/inbox, readable only by you, until a window opens that folder. Up to 30 days.
Huge change?
More than 20 hunks or 600 lines arrive as one Large change card. Review a sample of each file, or skip the rest with one reason. Nothing is dropped.

03 · Review

One question per hunk. Or type it back.

Questions are written from the code in front of you, pitched at your level. Multiple choice is graded on your machine. A miss says why and asks again, differently. Run out of tries and the only way out is Skip, and every skip is counted.

  1. Q14 options

    Predict

    Pick what the code does for a given input.

    › Three are in the cart and four in stock. What does addToCart(user, product, 2) return?

  2. Q23 or 4 options

    Trace

    Follow the control or data flow to the right outcome.

    › The product id does not exist. Which line ends the call?

  3. Q3Pick a line

    Spot the bug

    One line was mutated. Find it, or say there is no bug.

    › One line of this hunk was changed to add a bug. Which one?

  4. Q4Free text

    Explain the purpose

    Asked first on high-risk hunks: auth, concurrency, money, data deletion.

    › Why does running out of stock return a result instead of throwing?

  5. Q5Free text

    Why this approach

    When the other kinds are used up.

    › Why upsert the cart line instead of inserting it?

Or type it back, and answer as you go.

Typing makes you read every character. Checkpoints only ask about lines you have already typed. Your words per minute show as you type, for the fun of it. They never grade a hunk: understanding the code is the point.

boththe default
Type the hunk back. Questions open as checkpoints under the lines you just typed.
questions
One question per hunk, as a comment thread right on the code.
typing
Type it back. Filling in more than you typed is recorded as a skip.
Type it backcart.ts · line 19

Type: const nextQty = (line?.qty ?? 0) + qty;

Click, then type the line.

0% typed100% accuracy0 errors

Stuck on a checkpoint? Hint says what to notice. I don't know shows the answer and why, and counts as a miss, so nothing passes quietly.

From the editor
  • A wrong answer on a checkpoint: the right option, why it is right, and the offer of another question

    A miss says why, then asks again, differently.

  • A passed hunk with the mentor's suggested change as a diff, and Type it yourself, Apply, Preview and Dismiss

    The mentor suggests one change once the review is done.

  • An edit challenge: the mentor's reason above the code, the new line marked, and a checkpoint hint

    Type the change in yourself; it lands only when you pass.

04 · While it works

Review while it works.

An agent turn can run for minutes. The hunks it has already written are waiting, so the status bar says so, and one notification per turn offers the next one. Read the first file while it writes the third.

Terminalzsh
  1. codex "rate-limit the orders API"
  2. • Reading src/api/orders.ts
  3. • Edited src/api/orders.ts (+21 −4)
  4. • Edited src/lib/limiter.ts (+38)
  5. • Edited src/api/orders.test.ts (+29)
  6. • Running pnpm test
orders.tslimiter.tssrc/api
mainCodex is working · 4 to review
The agent never waits
A turn start is reported in the background. The end costs one short process start after the agent is done, about 30 ms on a Mac.
Quiet when you are busy
Nothing is shown while TypeBack is paused or a review is already open. Not Now stays quiet for the rest of that agent session.
Your call how loud
typeback.whileAgentWorksnotify by default, statusBar for the status bar alone, or off to remove the turn hooks entirely.

05 · The record

The record rides in the commit.

When you commit, TypeBack keeps one line in the Source Control message box. It says what you read, in the commit itself, where it stays with the code.

  • It counts what the commit takes

    The staged files, or every changed file when nothing is staged. The line updates as you review and stage.

  • It never blocks

    Commit whenever you like. A skip is counted, not hidden. Turn the setting off and the line is removed.

  • Agent already committed?

    Review the queue afterwards, then Stamp Review. It amends your last commit if no remote has it yet, or adds an empty commit to push.

git log -1main
commit 8e41c0a
Author: You

feat(cart): check stock before adding a line
Reviewed-by-human: 14/17 hunks (questions), 2 skipped (low-risk)
A commit message whose last line is the trailer: Reviewed-by-human: 14/17 hunks (questions), 2 skipped (low-risk).

TypeBack: Copy Review TrailerThe same line on the clipboard, for commits made somewhere else.

TypeBack: Copy Review Report for PRProCounts per file, right first time, second looks, skip reasons. No code, no answers.

06 · Teams

Ask for a record on every pull request.

Commit a policy. Every commit message then carries a second line that counts the whole branch, and a GitHub check reads it.

Policy and pull request check are free

1.typeback/config.json

1{
2"policy": {
3"require": true,
4"highRisk": ["**/auth/**", "**/payments/**"],
5"highRiskMode": "questions",
6"skips": "low-risk"
7}
8}

2Every commit on the branch

TypeBack-Record:

v
1
passed
22
total
24
skipped
2
low-risk
2
pending
0
high
3/3
policy
3f2a9c1e
sources
claude-code,copilot-agent

Counts, the policy hash and where the hunks came from. No code, answers or file names.

3typeback/verify

Checkspull request #214
  • typeback/verifyfailedsrc/payments/charge.ts: 1 high-risk hunk skipped. Review it, then Stamp Review.
  • typeback/verifypassed24/24 hunks, high risk 3/3, policy 3f2a9c1e.

It fails when

  • The record is missing
  • Hunks are not reviewed yet
  • High-risk hunks fall short
  • A skip the policy does not accept
  • Made under another policy

The check reads the policy and its own script from the base branch, so a pull request cannot loosen or replace it. It is one readable file with no dependencies. Outside GitHub it runs anywhere git and Node.js 20 run.

What a record is, and is not. It is the author's attestation, like a DCO sign-off: they answered questions about each AI-written hunk TypeBack captured. It is not proof of understanding, and it does not replace code review.

07 · Models

Bring the model you already have.

TypeBack writes questions with a model you choose and has no server of its own. Multiple choice is graded on your machine; free-text answers go to the grader you pick.

  • VS Code

    Language Model API

    Any model registered there: GitHub Copilot, which includes GPT, Claude and Gemini models, or a bring-your-own-key provider extension.

  • Cursor and Windsurf

    HTTP fallback

    LM Studio or any OpenAI-compatible local server with no key, or the Anthropic or OpenAI API with a key kept in secret storage.

  • Local only

    Your own machine

    Point the fallback at LM Studio, Ollama or vLLM and choose it over Copilot, so questions are written on your own machine.

  • Grading free text. A chat model grades by default: at least 60% of the key points, no contradictions, and the mechanism named. Or add a TypeSafe key and Jev grades each key point, checks for pasted references, and first confirms each question can be answered from the code.

08 · Pricing

Free. The mentor is Pro.

Everything that makes a review is free for good. Pro adds the mentor's deeper features. There are no pop-ups: Pro is mentioned only where a Pro feature lives.

Made by one developer. If it helps, you can also buy me a coffee.

Free

For everyone
  • Capture from every agent✓
  • Every mode and question kind✓
  • Any model, local or cloud✓
  • Spec and ADR grilling✓
  • Commit trailer✓
  • Review policy and PR check✓
  • Repo-aware questions✓
  • Learner profile, profile page and hints✓
TOTAL$0
Install TypeBack

Pro

14-day trial

Everything in Free, plus

  • Mentor digest+
  • Topic insights+
  • Mentor suggestions+
  • Edit challenges+
  • PR review report+

MONTHLY$8 /mo

OR YEARLY$80 /yr (save $16)

  • The trial starts the first time you use a Pro feature, not at install. No card.
  • Offline, Pro keeps working for 21 days.
  • Polar handles payment, receipts and tax as the merchant of record.

⌘⇧P or Ctrl+Shift+P › TypeBack: Get TypeBack Pro

09 · Privacy

No telemetry. Not one event.

TypeBack has no server and no analytics. Code goes only to the model and the grader you picked. Here is the whole list.

Leaves the machine

  • The hunk, a few lines around it, its workspace-relative path, the question and your free-text answers→ the model you chose
  • For a Markdown doc: the document, its relative path and your replies→ the doc-review model
  • With the mentor on: nearby callers, matching repo skills, your level and topics→ the model you chose
  • The digest: relative file paths, one-line purposes, missed key points. Never code or answers→ the doc-review model
  • With the Jev grader: the added code and its context, the question, the reference and your answers. No path→ TypeSafe
  • With Pro: the license key and a label with a random id at activation; the key and activation id about once a week→ Polar

Stays on your machine

  • The queue, results and per-branch history, in workspace state
  • Your learner profile, streak and stats, in global state
  • API keys and the license key, in VS Code secret storage
  • Hook traffic, on 127.0.0.1 with a per-session token
  • Edits made with the editor closed, in an inbox owner-only on macOS and Linux and behind your user profile on Windows; past 30 days, deleted the next time it is read or written

The pull request check runs in your CI and sends nothing to TypeBack. The privacy page has every detail, and how to reset each store.

10 · Questions

Questions, answered once.

Something else? Open an issue, or run TypeBack: Report Issue.

01Does TypeBack block my agent or my commits?

No. The agent never waits on a review, and a commit is never blocked. TypeBack keeps a record of what you read; a team that wants a gate adds the pull request check.

02Can I just click through the questions?

A miss gets another question of a different kind: three tries in questions mode, two for a checkpoint in the typing drill. After that the only way out is Skip, and every skip is counted in the trailer. I don't know shows the answer and why, and counts as a miss. In typing mode, filling in more than you typed is recorded as a skip.

03Which agents does it capture?

Claude Code, Copilot agent mode, Codex and Pi, through hooks TypeBack installs for you. For anything else, Scan Git Changes queues every added hunk in the working tree, or select code and press ⌘⇧A (Ctrl+Shift+A).

04Does it work in Cursor or Windsurf?

Yes. Install it from Open VSX, then point the HTTP fallback at LM Studio, an OpenAI-compatible server, or the Anthropic or OpenAI API. The first review offers to set it up.

05What does a question cost?

One request to the model you chose. With Copilot that counts against your plan like any chat request; with a local model it costs nothing. Multiple choice is graded on your machine.

06My agent commits before I review. Now what?

Review the queued hunks afterwards and run Stamp Review. It puts the record on your last commit: it amends the message if no remote has the commit yet, and otherwise adds an empty commit for you to push.

07What about a huge refactor?

More than 20 hunks or 600 lines arrive as one Large change card. Review a sample of each file, or skip the rest with one reason. Nothing is dropped.

08Is a record proof that someone understood the code?

No. It is the author's attestation, like a DCO sign-off, that they answered questions about each AI-written hunk TypeBack captured. It does not replace code review.

Read what you ship.

Install it, run the setup wizard once, and the next hunk your agent writes is waiting in the queue.

$ code --install-extension typeback.typeback
$ cursor --install-extension typeback.typeback

Needs VS Code 1.109 or later.

TypeBack

Reviewed-by-human: 0/10 sections