Your tasks, one keystroke away.
monoban is a keyboard-first kanban board for developers. Projects, columns and tasks, and nothing you have to learn to ignore. Drive it with a few keys in the browser, from your terminal, or hand a task to Claude Code or Codex and watch it open the pull request.
We’re letting people in a few at a time. Leave your email and we’ll write when it’s your turn.
## why monoban
Simple on purpose.
Most boards keep growing until managing the tool is a job of its own. monoban keeps what a board needs, and makes that fast.
It started as a personal tracker by someone who found the popular boards heavy: a dozen clicks to add a task, a modal for every edit, a settings page for everything.
monoban borrows from terminals and editors instead. It opens straight to your board, remembers where you were, and gets out of the way. You spend your time on the tasks, not on the tool.
@@ what we left out, on purpose @@- sprints, story points and burndown charts- required fields and custom workflows- a setup wizard before your first task- notification badges asking for attention+ projects → columns → tasks+ a title and a description, with checklists from - [ ]+ a column limit, when you want one+ every action one key awayEvery action has a key
The command palette lists every action with its shortcut beside it, so you learn the keys by using it. The mouse still works: drag anything anywhere.
Capture is instant
Press n, type, press enter. The input stays open for the next task. No form, no dialog, no losing your train of thought.
One screen
A task opens beside the board, like a tab in your editor. The board never goes away, and j and k walk through tasks with it open.
Calm by default
Monochrome, one monospace font. Colour shows up only when it means something: a column, your selection, a limit you went past.
Undo, not “are you sure?”
Delete a task and bring it back with u. Only changes that touch many tasks at once ask before they happen.
Never waits on the network
Every change shows up the moment you make it and saves in the background. The status bar says saving… and then synced.
## one board
One board. Three ways in.
Plan in the browser, work from your terminal, hand tasks to an agent. Every change lands on the same board, in step, whichever way it came in.
y shows a task's history: what changed, when, from the web or the cli## keys
Learn it in a minute. Keep it for years.
Ten keys cover almost everything. Arrows always work; vim keys are on by default and you can turn them off on any device. Forget one? ⌘K finds any action and shows its key.
The status bar shows NORMAL, INSERT or COMMAND, so you always know whether a key types text or runs an action. Single-key shortcuts never fire while you're typing.
- select a task
- jk
- switch column (past the first: your projects)
- hl
- move to the next column
- ⇧l⇧h
- reorder in the column
- ⇧j⇧k
- to the top · the bottom
- ⌘⇧↑⌘⇧↓
- new task
- n
- open a task
- ↵o
- filter the board
- /
- delete · undo
- xu
- every command
- ⌘k
- every shortcut
- ?
## cli
The same board, in your terminal.
Add a task without leaving your editor. Close it when the pull request lands. The monoban CLI works on the same board you see in the browser, and it's how your coding agents read and write it too.
brew install thiagodmont/tap/monobannpm install -g monobanHomebrew installs a standalone binary for macOS and Linux (no Node needed). npm needs Node 22.12 or newer.
monoban loginapprove it in your browser, or with a code over SSHmonoban linkties a project to a GitHub repo, so commands in that clone just workmonoban start SHOP-14checks out the task's branch and moves it to In progressmonoban attach --prputs this branch's pull request on the cardmonoban todaywhat's planned in every project, overdue first--jsonon every command, and personal access tokens for CIcompletionfor bash, zsh and fish: commands, projects, columns and tasks- and a typed REST API underneath, described in OpenAPI
~/code/shop main $ monoban add "Fix the flaky checkout test" -c todoAdded SHOP-14 to To do: Fix the flaky checkout test~/code/shop main $ monoban list todo inpshop (SHOP) To do 2 SHOP-14 Fix the flaky checkout test today SHOP-9 Cache product images at the edge 3d In progress 2/3 SHOP-11 Refunds from Stripe webhooks [2/4] 1d SHOP-12 Dark mode for the dashboard 4d~/code/shop main $ monoban done SHOP-11Moved SHOP-11 from In progress to Done.~/code/shop main $ ## agents
From a plan to a pull request.
monoban works with the coding agents you already use. Yours turns a plan into tasks on the board. Then press R on any of them: an agent does the work on your machine and opens the pull request.
1 · plan
Your agent plans on the board.
One command teaches Claude Code or Codex your board. When it plans a feature, it offers the plan as tasks, tagged by phase, and adds them only when you say yes. Then it keeps them current while it works: starts each one, ticks its checklist, attaches the pull request.
monoban setup claudeor monoban setup codex. It installs a skill; run it again after you upgrade monoban.
> let's plan invoices for the account page⏺ I read the board first (monoban list --json). Add these 4 tasks to SHOP?phase-1 Add the invoices table and its API routephase-1 Show invoices on the account pagephase-2 Email a receipt when an invoice is paidphase-3 Remove the old billing page> yes, and drop the last one for now⏺ monoban add "Add the invoices table and its API route" -t phase-1 -d -Added SHOP-21 to To do⏺ Added SHOP-21…SHOP-23. Shall I keep them current as I go?> 2 · run
Press R. Get a pull request.
Hand a task to an agent and get back to yours. For Claude Code and Codex the runner does the git work: the task's branch, the commits, the push and the pull request, linked on the card.
- 1.Start a runner
$ monoban runnerIn a terminal on the machine with the code. It asks monoban.dev for work once a minute, so nothing ever reaches into your machine.
- 2.Press R on a taskR
Pick the agent and your clone's folder, and whether the pull request is a draft. The options follow the agent: a budget, a model, network access.
- 3.Watch it on the taskw
The run tab shows each step as it happens and what the agent is doing right now. Stuck? It asks its question on the task instead of guessing.
A run of Claude Code on SHOP-14: it prepares the task's branch, codes, commits, pushes, opens a draft pull request and reports back on the task.
- agentpipePlans, implements and verifies in steps; moves and comments on the task itself.
$ monoban agentpipe install - Claude Codeclaude -p in auto mode: a classifier reviews what it does, and nothing waits for you.
$ npm install -g @anthropic-ai/claude-code - Codexcodex exec in its sandbox: it writes in the folder, with the network off unless you say.
$ npm install -g @openai/codex
- poll
It asks; nothing comes in
The runner polls for work. No open ports, no tunnels, no inbound connections.
- git
Only in your clone
A run works only in a checkout of the task's project, on the task's own branch. Uncommitted changes there? It won't start.
- sandbox
Agents keep their guard rails
Claude Code runs in auto mode, a classifier reviewing each action. Codex stays in its sandbox, offline unless the run asks.
- --confirm
You can say no
Start the runner with --confirm to approve each run in the terminal. Cancel from the task, or Ctrl-C.
try it in the live demo: open a task and press R ↑how runs work, step by step →
## security
Your work stays yours.
A task board ends up holding plans, bugs and notes you wouldn't post in public. monoban treats them that way.
- rls
Locked down in the database
Every read and write runs as you, under Postgres row-level security. Your projects are yours alone.
- auth
Sign-ins that are hard to fake
Sign in with Google, a password, or a one-time link sent to your email. A password has at least 12 characters, upper and lower case, a digit and a symbol, and changing it takes the current one. A bot check guards the sign-in form, and you get an email when your password changes.
- sha256
Only hashes of tokens
CLI sessions and personal access tokens are stored as hashes. Sign out any device, or revoke any token, in one click.
- mail
You hear about new sign-ins
Each time a CLI signs in to your account, you get an email saying which device and from where, with a link to sign it out.
- offline
On your device, until you sign out
To work offline, your browser keeps the boards you open and the changes not sent yet, never a token or your notes. Settings › This browser lists them and removes them; signing out deletes them.
$ monoban init
Clear your head. Start a board.
Your first project comes with Backlog, To do, In progress and Done, and it takes less time to set up than reading this sentence. We’re letting people in a few at a time: join the waitlist and we’ll write when it’s your turn.
brew install thiagodmont/tap/monoban