Skip to content

Over a long run

Terminal window
bee handover --session # what THIS run did
bee handover --since 12h # or a window
bee handover --json

Decisions first, then fixes, then the rest — the order someone picking the work up needs it in.

--session reads the id the harness already exports — CLAUDE_CODE_SESSION_ID, CODEX_SESSION_ID — so “this run” is an exact boundary rather than a guess at one. BEE_SESSION overrides it for anything bee has not been taught.

Terminal window
bee budget
bee budget --json
session start (once)
┌───────────┬───────┬───────┬─────────┐
│ component │ items │ chars │ ~tokens │
├───────────┼───────┼───────┼─────────┤
│ memory │ 1 │ 108 │ 27 │
│ chrome │ │ 48 │ 12 │
│ total │ │ 156 │ 39 │
└───────────┴───────┴───────┴─────────┘

Broken down by component, for session start and for a sample prompt. This is how you find out that a rule set has quietly become expensive.

Terminal window
bee compact # report only
bee compact --archive # act on it
bee compact --archived # what is currently out of recall
bee compact --restore <id> # bring one back

Over time a store accumulates memories that make it harder to find things: near-duplicates, superseded decisions, one-off notes that will never be asked for again. bee compact reports them; nothing moves unless you ask.

Terminal window
bee worker # stay up
bee worker --once # run each job once and report
bee worker --once --json

Work that scales with the size of the store does not belong on the way to a prompt. The worker builds the relevance index and checks embedding health.

{"ok":true,"jobs":[{"job":"embedding-health"},
{"job":"search-index","message":"built the relevance index — search now reaches
the whole store, not just the recent end of it"}],"failures":[]}

Jobs are resolved from dependency injection, so adding one is a registration.