Crab Buddy glossary

One word for each part of the crab, so a change can be asked for in one sentence. Each term says what it is, how to say it, and where it lives in the code. Version 0.10.0. Regenerate with bun docs/glossary.ts.

The map

Hammering out the changes.
Skimming code at crab speed.
Reply to Claude…
band: the whole strip
caption: the two lines, left
stage: the dashed half, right
station: where the crab stops on it
set: the wall beside the crab
stage extra: the bricks rising

A scene, second by second

Every take plays as a 14 s scene. The work loop runs throughout; the whole crab breaks for two beats, each with an emote.

work loopbeat 1 work loopbeat 2work
0 s4.8 s6.2 s10.1 s11.5 s14 s, next take

Where things are on screen

TermWhat it isSay it likeLives in
bandThe strip Crab Buddy draws right above the prompt box. Crab height, never taller.“the band is too tall; band colour”register.tsx · ui.render AbovePrompt · box crab-fill (never rename: other mods find the band by it)
captionLeft half of the band: two one-liners, the newest on top in full colour, the one before it dimmer. It scrolls down like a terminal.“top line, second line, caption colour”crab-text box · look.log (2 lines)
status linesOther plugins' status lines, drawn in the band above the caption instead of piling up in the footer.“other mods' lines”lines atom · setLine() · FOOTER (exceptions kept in the footer)
stageRight half of the band (desktop app). The crab walks across it.“stage width, stage edge”stageArt() in art.ts
stationThe crab's spot on the stage for a mood: 0 is the stage's left end, 1 the right edge by the prompt.“move read's station left”STATION in art.ts
cornerFallback when the window is too narrow for a stage: the crab sits in the corner and does not walk.“corner mode”register.tsx, narrow branch
labelThe pill over the crab's head while the pointer is on it. Shows the mood's meaning; stays 3 s after the pointer leaves.“hover label, tip”MEANING · .st-tip

What the crab does

TermWhat it isSay it likeLives in
moodWhat Claude is doing, as one of 25 ids (think, read, build, test…). Tool calls and turn events pick it.“the test mood”Mood in types · classify(), step(), shown() in crab.ts
lookWhat the band shows right now: a mood, one of its takes and the caption. A switch is the look changing.“the look switches too often”look atom · show() in register.tsx
takeOne version of a mood. Take 0 carries the mood's plain name (think), the others a number (think1 to think8). Busy moods have 9, each build scene 2, the rest 4. See the atlas below.“think5 is my favourite; drop read7”take 0: LOOK · others: TAKE · CSS .cb-think5 · count: takes()
sceneThe 14 s a take plays for: work, a beat, more work, a second beat. Then the next take.“scene length; a longer scene”SCENE in crab.ts and 14s in scene(), art.ts: change both
work loopThe take's own short motion, repeating inside the scene: the hammer swing every 4 s, the saw every 0.5 s.“think5's work loop is too fast”the take's CSS rules, .cb-<take> in art.ts
beatA short break where the whole crab moves: hop, admire, turn, stretch, shimmy or tilt. Two per scene, at about 4.8–6.2 s and 10.1–11.5 s. A take always gets the same pair, picked from its id.“bigger beats; one beat per scene; no turn beat”BEATS, WINDOW, scene() in art.ts
emoteThe tiny icon over the crab's shoulder during a beat: bang (!), note (♪), spark, ask (?), love (heart), sweat (drop).“no hearts on test; bigger emotes”EMOTE in art.ts
glum moodstestf, debug, dizzy, long, ask. Their emotes are only sweat, ask or bang, never a heart.“make long glum too”GLUM in art.ts
propA thing on the crab's body or claw: magnifier, flask, coffee cup.“bigger magnifier”first slot of a LOOK/TAKE entry · .cb-pr
setA thing standing beside the crab: the wall, laptop, easel, gears.“move the laptop closer”second slot ("beside") of a LOOK/TAKE entry
claw heightWhere the front claw rests for a take (14 is resting).“raise the claw”third slot of a LOOK/TAKE entry
build sceneOne of the five moods a build rotates through, 14 s each: build (hammer and wall), saw, type (laptop), paint, gear.“swap the order of build scenes”BUILDS in crab.ts
lapOne pass through the five build scenes (70 s). Lap 2 plays each scene's take 1: weld, drill, blueprint, sweep, crane. So 10 scenes, 140 s, before one repeats.“a third lap”take() in crab.ts
walk-inThe sideways scuttle from where the crab stands to the new look's station. The whole stage takes 4.8 s; never under 0.8 s.“faster walk-in”walkFor() in art.ts
roamA slow drift about the station on a long loop: idle 80 s, think 24 s, read 32 s, web 12 s, done 10 s, long 40 s. Paint walks right once.“idle roams too far”ROAM in art.ts
stage extrasStage-wide effects behind the crab: the brick wall (build), paint stripe (paint), confetti (fixed), footprints (walk-in), the trip (testf). Hidden under reduce motion.“more confetti; no footprints”stageArt(), .st-fx
walking takesTakes that walk their legs the whole time: inst, codex, think3, done2.“make read walk”WALKS in art.ts
terminal crabThe block-character crab in a terminal. One look per mood, a frame every 150 ms. No takes, scenes, beats or stage there.“the terminal crab”term.tsx · LOOKS, FRAME

Timing

TermWhat it isSay it likeLives in
dwell8 s. The least time a look stays before a new mood replaces it. "Slow the switching" usually means this.“dwell 5 s”DWELL in register.tsx
cutLooks that break through the dwell at once: debug, dizzy, testf, testp, fixed, done, ask, comp.“let read cut in”CUT in register.tsx
hold5 s. How long a result look (an error, a test result, fixed) and done stay before the crab moves on.“hold done longer”HOLD, DONE in crab.ts
calm take42 s. Idle, doze and night keep a take for three scenes.“idle changes take too often”CALM in crab.ts
long turnPast 5 min, a turn alternates the long look with the work, 8 s each.“long kicks in at 10 min”LONG, SWAP in crab.ts
doze / night owlDoze after 10 min with nothing happening. Night owl replaces idle between midnight and 5 am, local time.“doze after 20 min”DOZE, localHour() in crab.ts
tickEvery second the band re-checks which look is due. Animation itself is pure CSS and costs no hook calls.$.clock.every(1_000) in register.tsx

Text

TermWhat it isSay it likeLives in
one-linerA caption line. Ten per mood, fifteen for the busy moods; all build scenes share one list. Picked by the moment the mood came up.“add five one-liners to git”LINES, BUILD_LINES in crab.ts
meaningThe plain description on the hover label. Said with certainty: no "or".“reword the meaning of codex”MEANING in crab.ts

Easy to mix up

mood vs look vs take

A mood is what Claude is doing. A take is one way the crab acts it. The look is the mood and take on screen right now.

scene vs build scene

Every take plays as a 14 s scene. A build scene is one of the five moods a build rotates through (build, saw, type, paint, gear).

beat vs work loop

The work loop is the take's own repeating motion. A beat is the break from it, twice per scene, the same six moves for every take.

prop vs set vs stage extra

A prop is on the crab, a set stands beside it, a stage extra spans the whole stage behind it.

dwell vs hold vs scene

Dwell (8 s): the least a look stays. Hold (5 s): how long a result shows. Scene (14 s): how long one take plays before the next.

animation

Too vague on its own. Say which: the take, its work loop, a beat, an emote, the walk-in or a stage extra.

How to ask for a change

Name the part, then the mood or take, then the change. One term is enough to find the code.

SayWhat changes
Make think5's work loop slower.One take's CSS rule: .cb-think5 in art.ts.
Make the beats bigger, or keep one beat per scene.BEATS or WINDOW in art.ts.
Dwell 5 s instead of 8.DWELL in register.tsx.
Move read's station left.STATION.read in art.ts.
Add five one-liners to git.LINES.git in crab.ts.
A new take for web: a fishing rod.A TAKE entry, its CSS and the count in takes().
A new mood for a deploy.The Mood type, classify(), MEANING, LINES, STATION, LOOK and term.tsx.

All 25 moods

MoodMeaning (hover label)Shows whenTakesStationLines
idleIdle: waiting for your messageNo turn running4110
thinkThinkingA turn starts, or after a short tool90.8515
readReading and searching filesRead, Grep, Glob90.6515
buildEditing files and running commandsEdit, Write, most Bash; first build scene20.915
sawEditing files and running commandsSecond build scene20.715
typeEditing files and running commandsThird build scene20.515
paintEditing files and running commandsFourth build scene20.315
gearEditing files and running commandsFifth build scene20.115
testRunning testsA test command (pytest, npm test, plugin test…)90.515
testpTests passedTests passed40.510
testfTests failedTests failed40.510
debugA command failed: fixing itA command failed40.3510
dizzyThree failures in a rowThree failures in a row40.3510
fixedTests pass again after a failureTests pass after a failure40.510
doneTurn finishedThe turn ended4110
dozeDozing: nothing happened for 10 min10 min with nothing happening4110
nightNight owl: between midnight and 5 amIdle between midnight and 5 am4110
webSearching and reading the webWebSearch, WebFetch40.710
subA subagent is workingA subagent (Agent, Task)40.610
codexAnother model is working: Codex, GeminiBash running codex or agy40.610
gitCommitting and pushing with gitgit commit, git push40.410
instInstalling a packagenpm/pip/brew/uv install40.5510
askWaiting for your replyA question or permission prompt waits on you4110
longThis turn has run past 5 minTurn past 5 min, alternating with the work90.515
compCompacting the conversationA compaction really runs (not a vetoed one)4110

Build scenes rotate in this order: build → saw → type → paint → gear.

Take atlas

Every take, live, with the name to use for it. Take 0 has the mood's plain name.