Reference

Every command, every flag, every environment variable.

Commands

CommandWhat it does
braidsopen the map
braids indexindex new and changed transcripts
braids search QUERYsearch conversations, memories and work-product names
braids laneslist indexed conversations
braids branchcut a new conversation at a turn
braids mergebring a branch back, as a new conversation
braids promoteturn a subagent into its own conversation
braids agentslist the subagents a conversation spawned
braids workbrowse what a session wrote to disk
braids memorieswhat a project remembers, and what it has lost
braids explain FILEwhich conversations were live when this file last changed
braids show --lane IDread the turns of a conversation, around one turn
braids doctorevery health check braids can run on itself, in one place
braids statushow many conversations are owed a reply, in one line
braids briefthe state of play in the project you are standing in
braids hooksinstall, remove or inspect the hook
braids skillinstall, remove or inspect the Claude Code skill
braids versionthe version, the commit, and how old this build is
braids helpeverything, briefly

Flags, by command

Common

FlagWhat it does
--db PATHindex location. Default $BRAIDS_DB or ~/.braids/index.db
--jsonmachine readable output, with whole IDs
--helpthe flags that command takes

braids (the map)

FlagWhat it does
--asciinarrow glyphs, for terminals that draw box characters double width
--printrender one frame to stdout instead of opening the map
--lane IDwith --print, that conversation's spine
--query Qwith --print, the search screen for a query
--width Nframe width when printing, default 92
--height Nframe height when printing, default 24

braids index

FlagWhat it does
--root DIRtranscript root. Default ~/.claude/projects
--fullre-read every transcript instead of only what changed

braids search

FlagWhat it does
--lane IDrestrict to one conversation
--project NAMErestrict to one project
--since WHENa date or an age: 2026-08-01, 30d, 6w, 12h
--until WHENthe same, as an upper bound
--type LISTconversation, memory, artifact
--kind LISTtext, thinking, tool_use, tool_result
--limit Nmaximum hits, default 20

braids status

FlagWhat it does
--within Donly conversations touched this recently, default 24h, 0 for all
--alwaysprint a line even when nothing is waiting

It is built for Claude Code's statusLine, so it prints nothing when nothing is waiting and never fails: no index is not an error, it is nothing to say. Add it to ~/.claude/settings.json:

{ "statusLine": { "type": "command", "command": "braids status" } }

The window is the difference between a number worth glancing at and one that never changes. The map counts a conversation abandoned three weeks ago mid-thought, and is right to, because it is still an open loop. On a status line that same number never moves.

braids show

FlagWhat it does
--lane IDconversation to read
--at TURNcentre the window on this turn
--around Nturns either side of --at, default 6
--from Nfirst turn, instead of --at
--to Nlast turn
--kind LISTtext, thinking, tool_use, tool_result
--chars Ncharacters of each block, default 600, 0 for all
--plainstrip the terminal colour codes recorded in tool output

braids branch

FlagWhat it does
--lane IDconversation to branch from
--at TURNturn number to branch at
--name NAMEname for the new conversation
--workspacegive the branch a git worktree of its own

braids merge

FlagWhat it does
--lane IDconversation to carry on from
--from IDbranch whose turns are brought over
--name NAMEname for the merged conversation
--planreport what would come over, including how many of the branch's turns failed, and stop

braids explain

FlagWhat it does
--limit Nhow many commits to look back over, default 5
--window Dhow long before a commit a turn still counts, default 3h

braids promote, agents, work, memories, hooks

FlagWhat it does
--lane IDpromote, agents, work: the conversation
--agent IDpromote: the subagent to promote
--path SUBwork: directory within them to list
--orphanswork: sets whose conversation is gone
--reclaimwork: with --orphans, move them to the bin
--project NAMEmemories: only this project
--root DIRmemories: transcript root
--installhooks and skill: put it in place
--showskill: print it instead of installing it
--dir DIRskill: skills directory, default ~/.claude/skills
--removehooks: stop asking
--settings PATHhooks: settings file, default ~/.claude/settings.json

Environment

VariableWhat it does
BRAIDS_DBwhere the index lives
BRAIDS_ASCIIset to anything to make --ascii the default
BRAIDS_SPAWNcommand template for o, understanding {{cmd}} {{name}} {{dir}}
BRAIDS_VERSIONinstaller only: pin a version
BRAIDS_BIN_DIRinstaller only: where the binary lands

When something is wrong

What you seeWhat it means
no index at PATH (run: braids index)nothing has indexed yet, or --db points somewhere else. Reads never create one
no conversations indexed yetthe index exists but is empty. Run braids index
the box characters are double widthrun with --ascii, or set BRAIDS_ASCII
Hooks: not installedwaiting states fall back to what the transcript can prove. braids hooks --install
hook reads an event on stdinyou typed braids hook. You wanted braids hooks
the index was written by another version of braidsyou have upgraded. Run braids index once, or just open the map, which re-reads by itself. Nothing is lost either way
N conversations grew and produced no new messagesbraids could read them before and cannot now, which is what a format change looks like while it happens. braids index names them
N conversations hold bytes braids could not reada transcript yielded no messages at all, which usually means the format changed. braids index names the files. Please report it
a work product is refusedit is the harness's own record of the job, and deleting it would confuse the writer