clutch
An execution harness for ADHD

When you stall, the next move is already there.

A Claude Code plugin for developers with ADHD. It reads the session, catches the moment work stops moving, and hands back one small move. Then it goes quiet.

on main · parser.py clutch-budget 1/2
// you open a project you left on Tuesday clutch Last landed 'parser runs clean'. Smallest move to resume: finish the change in parser.py. // two hours of real work clutch Landed: 'parser handles empty input'. Smallest next move: one commit. you (commits)

Two lines, a whole session. Then silence. There is no dashboard to check.

The gap is execution

ADHD is a performance disorder. You already know the next step.

The gap opens at the point of performance, the moment the task stalls. Every productivity app aims at knowledge: another planner, another list. Clutch aims at the moment you act.

It is a transmission, not a fuel supply.

It fires on zero movement, never on slowness. It never counts days. It never shames. When it is not sure it stays silent, because a wrong nudge is worse than none. A nag lays a brick you climb tomorrow before you can start.

The toolkit

Seven commands, and a layer that fires on its own.

v1.3 reads the moment and reaches for the right one, so you rarely type anything. Every command is still yours to call by name.

/clutch:smallest-move

Names one move you can finish in one sitting. Never a list, never the far side of the wall.

When a goal is too big to start.

/clutch:sprint

A fixed 20-minute timebox on one shippable. The clock surfaces while you work.

When you need to just start.

/clutch:ignite

One challenge or speed-run frame before work you already understand.

When you dread the boring plumbing.

/clutch:triage

Asks one question, then splits a missed task into a wall (recognition) or forgetting (a cue where you will see it).

When you cannot tell if you are stuck or you forgot.

/clutch:capture

Takes a tangent in one line, then hands you back to the task. Pull it later; it never nags.

When a shiny idea pulls at you mid-task.

/clutch:status

Reports which hooks fired and whether Clutch is alive in this repo.

When quiet might mean broken.

/clutch:retrace

Rebuilds a fast session from git, not the transcript: what landed, what is in flight, what to be aware of, one grounding move.

When the session ran fast and you lost the thread.

How it knows when

You rarely type a command. It reaches first.

Two layers watch the two places a stall shows up: your git state, and what you are saying. When the read is clear, the right mechanism is already there.

// from your git state, mechanically
you re-open the repothe thread greets you
you land a commitrecognition bell
a long run, nothing bankedsafe landing offers
force-push, hard resethot-action pause
same test red, nothing editedthe red moment
// from what you say, read in the moment
you circle, three turns, no editsmallest-move
you dread work you understandignite
a tangent pulls at youcapture
a task slipped, cause uncleartriage asks first
you lost the thread of a fast sessionretrace
anything unclearsilence

A per-turn heartbeat keeps that reading alive, so it does not fade halfway through a long session. The last row is the one that matters: when it is not sure, it says nothing. Being read never turns into being watched, because a wrong nudge costs more than a missed one. Two mechanisms stay on manual for the same reason, triage asks before it guesses, and capture never surfaces on its own.

What it feels like

The moment you run one.

ADHD runs on curiosity, not discipline. Each command hands you something your brain actually wants to reach for.

sprint
/clutch:sprint This sprint ships one thing: ○ the failing empty-input test ● the parser refactor ○ the README pass 19:41 · on the parser refactor

Sprint

You name one thing. Just one. Then a clock walks into the room with you, and twenty minutes has a finish line you can see from where you are standing. Starting small is finally allowed, and that is the whole trick.

ignite
/clutch:ignite the database migration script How few lines can this survive on? Speed-run it. Beat your own guess.

Ignite

The dread was never about the work. It was about the start. Ignite does not tell you to try harder. It hands you a smaller, stranger way in: a game, a number to beat, a dare your brain wants to take.

capture
oh wait, what if the parser streamed? /clutch:capture ✓ held · "what if the parser streamed?" → back to the empty-input test

Capture

The shiny thing does not die and the thread does not snap. One line catches the idea, and you are already back on the test, mid-breath. Nothing lost, nothing chased. You decide later, on your terms.

retrace
/clutch:retrace landed parser shipped, tests green, pushed in flight the README rewrite, uncommitted be aware of the migration backup, still unpushed

Retrace

You ran fast and the pile is a blur. Retrace reads what actually happened from git, never the transcript, and hands it back as a map: what landed, what is still open, what to watch. A wall of unclear changes becomes one thing you can re-enter.

In a real session

A Tuesday, start to finish.

  1. You open the project cold.The thread greets you: "Last landed 'parser runs clean'. Resume: finish the change in parser.py."
  2. The goal feels huge.Clutch reads the stall and hands back one step, or you call /clutch:smallest-move. One named move, nothing else.
  3. Now the boring tests./clutch:ignite reframes it: how few lines can this take. You start.
  4. A tangent pulls at you./clutch:capture takes it in one line. You are back on the test in the same breath.
  5. A test goes red. Your hand moves to git reset --hard.One beat: the heat is a spike, not a verdict. You bank what still works instead.
  6. You commit.The bell: "Landed: 'parser handles empty input'. Smallest next move: one commit." Then it goes quiet.
Where it runs

Install it on a work repo without a second thought.

Runs in any Claude Code session: personal, family, or work. Carries nothing personal between them.
Reads only your git state and the conversation in front of it.
Writes a local .clutch/ that adds itself to git's ignore list.
Makes no network calls. Nothing leaves your machine, and you can verify that.
Composes underneath stricter guardrails: the strictest rule wins.
Install

Two commands. Zero configuration.

Claude Code
/plugin marketplace add yuvalraz/clutch
/plugin install clutch@clutch

The opinions are the product. Source at github.com/yuvalraz/clutch.

Honest about what it is

New, and built by someone it is built for.

I have ADHD and built it in public, and it runs in its own development sessions, so I am the first it bites. Some things stay manual on purpose: it asks before it classifies a wall, because guessing wrong there does real harm.

The numbers are real: 13 mechanisms, and one 7-source canon of ADHD research baked into the wording, not read at runtime (Barkley, Brown, Dodson, Mahan, Hallowell). Built with AI assistance.