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
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.
Where things are on screen
| Term | What it is | Say it like | Lives in |
|---|---|---|---|
| band | The 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) |
| caption | Left 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 lines | Other 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) |
| stage | Right half of the band (desktop app). The crab walks across it. | “stage width, stage edge” | stageArt() in art.ts |
| station | The 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 |
| corner | Fallback 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 |
| label | The 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
| Term | What it is | Say it like | Lives in |
|---|---|---|---|
| mood | What 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 |
| look | What 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 |
| take | One 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() |
| scene | The 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 loop | The 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 |
| beat | A 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 |
| emote | The 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 moods | testf, debug, dizzy, long, ask. Their emotes are only sweat, ask or bang, never a heart. | “make long glum too” | GLUM in art.ts |
| prop | A thing on the crab's body or claw: magnifier, flask, coffee cup. | “bigger magnifier” | first slot of a LOOK/TAKE entry · .cb-pr |
| set | A thing standing beside the crab: the wall, laptop, easel, gears. | “move the laptop closer” | second slot ("beside") of a LOOK/TAKE entry |
| claw height | Where the front claw rests for a take (14 is resting). | “raise the claw” | third slot of a LOOK/TAKE entry |
| build scene | One 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 |
| lap | One 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-in | The 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 |
| roam | A 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 extras | Stage-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 takes | Takes that walk their legs the whole time: inst, codex, think3, done2. | “make read walk” | WALKS in art.ts |
| terminal crab | The 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
| Term | What it is | Say it like | Lives in |
|---|---|---|---|
| dwell | 8 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 |
| cut | Looks that break through the dwell at once: debug, dizzy, testf, testp, fixed, done, ask, comp. | “let read cut in” | CUT in register.tsx |
| hold | 5 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 take | 42 s. Idle, doze and night keep a take for three scenes. | “idle changes take too often” | CALM in crab.ts |
| long turn | Past 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 owl | Doze 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 |
| tick | Every 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
| Term | What it is | Say it like | Lives in |
|---|---|---|---|
| one-liner | A 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 |
| meaning | The 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.
| Say | What 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
| Mood | Meaning (hover label) | Shows when | Takes | Station | Lines |
|---|---|---|---|---|---|
idle | Idle: waiting for your message | No turn running | 4 | 1 | 10 |
think | Thinking | A turn starts, or after a short tool | 9 | 0.85 | 15 |
read | Reading and searching files | Read, Grep, Glob | 9 | 0.65 | 15 |
build | Editing files and running commands | Edit, Write, most Bash; first build scene | 2 | 0.9 | 15 |
saw | Editing files and running commands | Second build scene | 2 | 0.7 | 15 |
type | Editing files and running commands | Third build scene | 2 | 0.5 | 15 |
paint | Editing files and running commands | Fourth build scene | 2 | 0.3 | 15 |
gear | Editing files and running commands | Fifth build scene | 2 | 0.1 | 15 |
test | Running tests | A test command (pytest, npm test, plugin test…) | 9 | 0.5 | 15 |
testp | Tests passed | Tests passed | 4 | 0.5 | 10 |
testf | Tests failed | Tests failed | 4 | 0.5 | 10 |
debug | A command failed: fixing it | A command failed | 4 | 0.35 | 10 |
dizzy | Three failures in a row | Three failures in a row | 4 | 0.35 | 10 |
fixed | Tests pass again after a failure | Tests pass after a failure | 4 | 0.5 | 10 |
done | Turn finished | The turn ended | 4 | 1 | 10 |
doze | Dozing: nothing happened for 10 min | 10 min with nothing happening | 4 | 1 | 10 |
night | Night owl: between midnight and 5 am | Idle between midnight and 5 am | 4 | 1 | 10 |
web | Searching and reading the web | WebSearch, WebFetch | 4 | 0.7 | 10 |
sub | A subagent is working | A subagent (Agent, Task) | 4 | 0.6 | 10 |
codex | Another model is working: Codex, Gemini | Bash running codex or agy | 4 | 0.6 | 10 |
git | Committing and pushing with git | git commit, git push | 4 | 0.4 | 10 |
inst | Installing a package | npm/pip/brew/uv install | 4 | 0.55 | 10 |
ask | Waiting for your reply | A question or permission prompt waits on you | 4 | 1 | 10 |
long | This turn has run past 5 min | Turn past 5 min, alternating with the work | 9 | 0.5 | 15 |
comp | Compacting the conversation | A compaction really runs (not a vetoed one) | 4 | 1 | 10 |
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.