Configuration¶
Every board has a .kanbai/config.toml, created by kanbai init. It's plain
TOML you can edit by hand.
[board]
name = "my-project"
columns = ["backlog", "todo", "doing", "review", "done"]
[defaults]
priority = "medium"
[types]
available = ["feature", "bug", "refactor", "chore", "docs", "spike"]
# Optional hex color overrides for the UI badge, per type (default is a
# built-in color for the types above, or gray for anything else).
# [types.colors]
# bug = "#ff0000"
# Optional work-in-progress limits per column (the CLI and UI warn when exceeded).
[wip]
doing = 3
[board]¶
| Key | Description |
|---|---|
name |
The board's display name (shown in the CLI and the web UI). |
columns |
The ordered list of columns. The folders under .kanbai/ follow this list. |
Column roles¶
KanbAI resolves a few roles from the column list, by name when possible and by position otherwise, so the workflow keeps working even if you rename columns:
| Role | Default column | Used by |
|---|---|---|
| Capture (where new cards land) | backlog |
add |
Sprint (what next reads) |
todo |
next |
| In progress | doing |
start |
| Review | review |
review |
| Done | done |
done, close-sprint |
Tip
You can add extra columns (e.g. a blocked or qa stage). Keep the first column as the
capture/backlog column and the last as the done column for the roles to resolve cleanly.
[defaults]¶
| Key | Description |
|---|---|
priority |
Default priority for new cards when --priority isn't given (low/medium/high). |
[types]¶
Configures the valid values for a card's type.
| Key | Description |
|---|---|
available |
The list of valid types. Defaults to feature, bug, refactor, chore, docs, spike. |
[types.colors]¶
Optional per-type hex color (#rrggbb) for the badge shown in the web UI — overrides the
built-in color for a default type, or gives a custom type its own color instead of the neutral
gray fallback. Invalid values are silently ignored.
[wip]¶
Set a work-in-progress limit per column. When a column exceeds its limit, the CLI and web UI show a warning — they never block the move, so limits are a nudge, not a gate.
[notifications]¶
Controls the native desktop and ntfy notifications fired whenever
a card reaches review/done, from any command (kanbai review/done/move, the CLI in
general, or the web UI) — no background process required.
| Key | Description |
|---|---|
native |
Native desktop notifications (macOS/Linux/Windows). Default true. |
ntfy_topic |
ntfy.sh topic to push to. Default unset (channel off). |
The ntfy topic is your only secret
ntfy.sh is a public server with no signup or authentication — anyone who knows (or
guesses) your topic name receives your notifications. Pick something unguessable, not
e.g. my-project.