Skip to content

the whiteboard defense, before every push

Could you defend
this diff at a whiteboard?

grip pulls you aside at the push and asks what a senior engineer would: how it works, why this way, where it fails, what could go wrong. Five questions written from your own diff, a Grip Score out of 100, a pass mark your team picks. In the terminal, and inside Claude Code, Codex, Gemini CLI and Cursor.

I don't expect line-level familiarity with the code. [...] But if I ask "why did you do X instead of Y?", "what happens if this actor behaves maliciously?", "what data structure did you use here and why?", or "where does this fail?" you should be able to answer confidently.

Mitchell Hashimoto, on the whiteboard defense. We found it after building grip. Why it is our bar

Install in one line

pipx install grip-hook        # or: uv tool install grip-hook
cd your-repo && grip init

grip init writes .grip.toml, installs the pre-push hook and tells the coding agents on your machine to run the quiz. It reuses Claude Code, Codex or Gemini CLI as the model when one is installed, so most people never need an API key.

npx skills add guilyx/grip -g

Adds /grip, /grip-review, /grip-explain and /grip-whiteboard to Claude Code, Codex, Gemini CLI, Cursor, Windsurf, Cline and Copilot. Type /grip before you push.

/plugin marketplace add guilyx/grip
/plugin install grip@grip

The skill, plus a hook that stops Claude from running git push until the diff has passed a quiz.

repos:
  - repo: https://github.com/guilyx/grip
    rev: v0.4.1
    hooks:
      - id: grip

How it works

You push

The hook collects the diff: staged changes for a commit, every unpushed commit for a push. Lockfiles and generated code are left out.

grip asks

A model reads the diff and writes five questions with hidden rubrics: behaviour, motivation, an edge case, a risk, how you would test it.

You answer

A sentence or two each. At or above the pass mark the push goes through. Below it you get per-question feedback on what to re-read.

Follow one real change Inside grip

What you can do with it

  • Set up in one command


    grip init writes the config, installs the hook and wires your agents.

    Install

  • Quiz inside your agent


    /grip in Claude Code, Codex, Gemini CLI or Cursor. The agent relays, you answer. The Claude Code plugin also denies git push until the diff has passed.

    Coding agents

  • Defend it at a whiteboard


    grip whiteboard draws the change and pins the questions to it, malicious actor and data structure included.

    The whiteboard

  • Quiz the reviewer


    /grip-review main..feature checks that the person approving understands it too.

    Review skill

  • Skip without hacks


    grip skip for one push, --hours 1 for a demo. No environment variables.

    Command line

  • Practise on real problems


    ROS 2, robotics and AI problems on Keep A Grip. Solve with any assistant, then get quizzed.

    Keep A Grip

Bring your own model

grip writes and grades the questions with whatever you already use. Nothing but the diff and your answers leaves the machine, and only to the provider you choose.

You have Set in .grip.toml Key needed
Claude Code, Codex or Gemini CLI provider = "claude-code", "codex" or "gemini" no
An Anthropic key provider = "anthropic" (the default) ANTHROPIC_API_KEY
A local model provider = "ollama" and a model no
Any OpenAI-compatible API provider = "openai", base_url, model yes

See it run

Recorded against the real CLI with the offline scripted provider, so the questions are canned. A real model writes them from your diff. What has and has not been measured about the quiz is on the honest numbers page.

Generate the prototype.
Defend what ships.

Get started