clutch
A Claude Code plugin for ADHD

Not a gift. Not a deficit. A different transmission.

It catches the stall the moment it happens and hands you one small move. It banks the idea that pulled you away and turns it into fuel for later sessions. Both halves are built on the ADHD research, not productivity folklore.

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 moments

You know these moments.

The task you understand and cannot start. The fast session that turned into a blur. The idea that will not let go. Three of them, and what lands in each.

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.

retrace
/clutch:retrace landed parser shipped, tests green, pushed in flight the README rewrite, uncommitted be aware of the migration backup, still unpushed pulled at you that queue-worker idea, banked mid-run

Retrace

You ran fast and the pile is a blur. Retrace reads what actually happened from git and the capture pool, never the transcript, and hands it back as a map: what landed, what is still open, what to watch, and what pulled at you mid-run. The idea that yanked you sideways comes back with the map. A wall of unclear changes becomes one thing you can re-enter.

spark
/clutch:spark anchor: what if the parser streamed? hop: a stream is a log you can replay hop: replay the log, get the parse back free trace-back streamed parser → replayable input log · banked

Spark

You bring one anchor and invite the chain: ping-pong hops, then a trace-back at the end so the wandering banks instead of evaporating. The jump is the native gait. Spark gives it a track.

The two halves

Same heartbeat, opposite directions.

Half of it catches you when work stops moving. Half of it banks what pulls you and hands it back as ignition. Fifteen commands, split by direction, and one lever over both: a fresh session opens by asking what kind of session this is.

THE CATCH · the pain side

ADHD is a performance disorder. You already know the next step; the gap opens at the point of performance, the moment you have to act. The catch fires there: it names one smallest move, never a list. It fires on zero movement, never on slowness. It never counts days, never shames, and it speaks at most twice a session. Then it goes quiet.

It is a transmission, not a fuel supply.

v1.3 reads the moment and reaches for the right mechanism itself. Every command is still yours to call by name.

/clutch:intent

Declares the session: build engages the maker gear and its posture, ideate opens the divergent session. A fresh start with nothing declared asks you once.

When a session opens and the frame is not set.

/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, and deflected ideas bank to the pool.

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 and the capture pool, not the transcript: what landed, what is in flight, what to be aware of, what pulled at you, one grounding move.

When the session ran fast and you lost the thread.

/clutch:tempo

Engages one of five gears, espresso to ferment: the shape of the session, from tight convergence to slow wandering. The heartbeat carries the engaged gear every turn.

When the session needs a different shape than the one it started with.

THE SPARK · the bliss side

The spark banks what pulls you: the tangent mid-task, the tab you cannot close. It composts them in a pool your repo owns, a local .clutch/, and hands them back as ignition when you ask.

/clutch:fomo

The second door on capture's intake. Banks a link or a thought in one line with why it pulled you, and you keep moving. No fetching, no titles.

When a tab you cannot close holds an idea you are afraid to lose.

/clutch:delve

Pulls the oldest banked capture and reads it for why it pulled you: absorb it into the pool, park it for later, or release it.

When you sit down to process what you caught.

/clutch:spark

A divergent chain session: one anchor, ping-pong hops, a trace-back at the end. The chain is rated at close, so the wandering banks.

When you want to riff, not converge.

/clutch:daydream

Whisper one fragment mid-focus. A small background wander runs a few hops over the pool and banks what it finds while you stay on task.

When something connects and breaking flow would cost the thread.

/clutch:dream-spark

The cellar pass. Cross-references your whole pool, hunting what connects that nobody is watching, and banks the finds for later sessions.

When you want to stock tomorrow's fuel.

/clutch:ideate

The divergent mode. Loads the pool, offers one anchor, and shifts the session into ballmer through the gearbox. Anti-convergence holds until you land it.

When the session is for exploring, not shipping.

The asymmetry is the ethics

The catch may reach first. The spark only answers.

Two layers watch where a stall shows up: your git state, and what you are saying. When the read is clear, the right mechanism is already there. When it is unclear, nothing happens. Silence is the default state: the anti-nag law made visible.

// 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
a fresh session opens, nothing declaredone question: build or ideate
the work has changed shape and held thereone gear-shift offer
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 law: when it is not sure, it says nothing. 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. The spark side goes further: none of it fires uninvited. Divergence is always invited.

The loop

Your repo grows a memory.

Mid-task, an idea yanks you sideways. One line banks it and you are back, nothing lost, no tab graveyard. When you sit down to explore, those banked lines are the anchors: the idea that almost derailed Tuesday becomes Friday's spark session.

  1. Two doors, one intake./clutch:capture takes the mid-task leap in one line and hands you back. A tab from outside goes through /clutch:fomo, banked with why it pulled you. Both land in the same file.
  2. You sit down to absorb./clutch:delve pulls the oldest capture and reads it for its pull: absorb it into the pool, park it for later, or release it.
  3. The pool holds it.A local .clutch/ your repo owns: cross-references, spark logs, idea files. Writes stay repo-scoped by design.
  4. The brain compounds it.Keep a ~/.clutch and it becomes a second level every reader sweeps, across all your repos. Nothing enters it ambiently: one door up, the absorb verdict in /clutch:delve. The idea a work session almost lost feeds a family-project spark next week.
  5. You come back to riff./clutch:spark and /clutch:ideate draw from that same pool.
Receipts, not vibes

Seven sources, a citations file, a quarantine list.

The wording carries seven digested sources of ADHD research: Barkley, Brown, Dodson, Mahan, Hallowell. Each source has a hand-assigned weight and an annotated place in the argument. Nothing reads the corpus at runtime; the judgment is baked into fixed wording.

Every mechanism traces to published ADHD research, and the sources are in the repo. The advice that turned out to be myth, willpower as a fuel tank you can refill, is named and kept out. Name another ADHD tool that shows its sources.

Built by an engineer with ADHD, tested on himself in public.

Where it leads

Gears for the session you are actually in.

The gearbox shifts the shape of a session, five gears from espresso to ferment, through /clutch:tempo. The pool stocks tomorrow's fuel: a /clutch:dream-spark pass cross-references everything you banked and cellars what connects.

The numbers are honest: 21 mechanisms, 15 commands, a 7-source canon. Built with AI assistance.

Next: the divergent half gets the same citation weight as the catch half. The research is picked, the ingest is not written yet.

Where it runs

Install it on a work repo without a second thought.

Reads only your git state, its own .clutch/, and the conversation in front of it.
Writes a local .clutch/ that adds itself to git's ignore list.
The divergent skills can reach out: delve fetches a captured link, and a spark, daydream, dream-spark, or ideate pass may run a web search. But only when you invoke them; nothing calls out on its own.
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.