Stop dropping tasks. Start sending updates.
A kanban board and weekly planner for your terminal. Plain markdown files, one board per client.
For consultants juggling several clients at once. Plan once a week, and Bentoban nags you the moment something is overdue or someone is waiting on an update.
$ git clone https://github.com/fredrikburman/bentoban && cd bentoban && make installNeeds Go 1.25+. MIT licensed. The command is b. Step-by-step install
- Press enter on the Overdue Flag on Home and pick a fix.
- Press 2 for the Board, move a card between columns and press * to star it Important.
- Press 3 for Notes: each client’s ranked Objectives and Commitments tied to them.
A replica running in your browser, on a fake week with four clients. The real b reads your markdown files and reloads when they change.
- Commitment
- A result you promise for the week, true or not by Friday.
- Flag
- A nudge about something overdue, untold or due a chase. Never blocks you.
- Notify list
- The people who should hear when a Task is done or moves.
- Brain
- Your folder of markdown files. It is all your data.
A week, not a backlog.
Endless backlogs are where plans go to die. Bentoban plans in Weeks: you commit to 3–5 results and link the work to them. One review a week is the whole routine. Nothing is daily.
- Friday, or whenever
Review and commit
Settle the Weeks that are over, then pick 3–5 Commitments for the next one: results that are true or not by Friday (“security controls documented”), not lists of Tasks.
/friday - All week
Capture and star
Requests go straight to the Inbox. Star what should make next Week’s plan, up to five, so it is not lost between now and then.
b add - As it happens
Tell and chase
Done work gets told to the people who care, and a stalled wait gets a nudge. Focus shows both at the start of every Claude session.
/tell - Next review
Keep or miss
Each Commitment is kept or missed. A missed one is carried, re-scoped or dropped with a reason. Skip a Friday and nothing breaks: it is named as Review due until you get to it.
b week close
The whole routine, with a worked Week and a cheat sheet, is in the guide.
It nags, and makes you tell people.
b computes Flags from your files. They never block anything, and they stay few and fixable. Press enter on one and b offers the fix: link it, move it, set a new date, mark it told. Overdue, Due soon and Untold are promises to other people, so those can’t be snoozed.
Every Task can have a Notify list: the people who should hear about it. When it’s done or its date moves, b marks it Untold until you’ve told them. Claude drafts the message, you send it, and b told logs it. Next month, when someone asks “did you ever mention that?”, you can prove you did.
All nine Flags, and how to read them, are in the guide.
Overdue KITE-4 Send revised quote: due 2026-10-17, 3 days ago Due soon INT-4 Invoice September: due tomorrow (2026-10-21) Untold ACME-7 Fix currency rounding: done 1 day ago; tell Anna Chase NORD-8 Get VPN access from IT: waiting 6 days on Lars (chased 1×)
Untold since Mon: ACME-7 Fix currency rounding → done Notify: Anna (product owner, ACME Corp) · Slack Hi Anna, the currency rounding fix is live. Totals now round per line, so invoices match the quote again. Send it yourself, then I’ll record it with b told ACME-7. OK?
The TUI is one door. b is the rest.
Everything the board does is also a command. Capture from any shell, ask who owes you what, or pull last week’s work into a timesheet without opening anything. Every command reads and writes the same markdown files.
$ b add "Call Anna" -c acmeCapture a Task straight into the Inbox.$ b move ACME-3 doingStart, finish or park a Task.$ b ls -s doing,waitingSee what is in flight, by Client.$ b focus --briefFlags, starred Tasks and this Week, in one screen.$ b chaseWho owes you what, by person.$ b did --lastWhat you finished, told and chased last Week.$ b syncCommit the Brain and push it to your remote.
Read commands take --json, so scripts, cron and editors can use your Brain too.b --help lists the rest, and the cheat sheet groups them by habit.
Anna ACME-2 Get price list: chase due 5 days ago Bob Berg ACME-20 Signed agreement: chase due 2 days ago INT-20 Invoice sent: chase due today
Did 2026-W42 (2026-10-12 to 2026-10-14) ACME Corp Kept 2026-W42/C1 Pricing calculator demoed to ACME ACME-20 Task 20: done 2026-10-12 2026-10-13 told Anna: demo went well Internal INT-21 Task 21 (waiting) 2026-10-14 chased Carl: second nudge
Yours, on your machine.
Plain markdown
Your work lives in a Brain: a private git repo with one markdown file per Task. Grep it, edit it, version it. No database, no account, no export button.
Claude, if you want it
bnever calls an LLM. Optional Claude Code skills propose, and nothing is written without your yes. Not into AI?bis complete on its own.Client stuff stays put
No network calls except
b sync, through git to your own remote.ai: falseon a Client hides it from every Claude session.
What a Brain looks like, and the Claude skills, are in the guide.
Install
Four commands, about a minute. Everything stays in plain files on your machine.
Install b
Builds the binary and puts it in ~/.local/bin. Needs git, make and Go 1.25+. Make sure that folder is on your PATH.
$ git clone https://github.com/fredrikburman/bentoban $ cd bentoban && make install
Create your Brain
The Brain is a plain folder of markdown files, and it is all your data. This also writes ~/.config/b/config.yml so b can find it.
$ b init ~/brainAdd a client and a first Task
Every Task belongs to a Client. The key (ACME) becomes its Task IDs, like ACME-1.
$ b client new acme --key ACME --name "ACME Corp" $ b add "Build pricing calculator" -c acme
Open the board
$ b
Optional extras
- Claude Code rituals. Run
make install-claudein the repo (needsjq). - Back it up. Give the Brain a private git remote. It holds your client work, so never make that repo public.