kanban-cli
CLI entry point for the kanban workspace. Parses commands with clap, loads a CliContext wrapping KanbanContext, and emits JSON to stdout.
Usage
kanban [FILE] [COMMAND]
kanban kanban boards.json kanban boards.json board list
File selection priority (TUI launches the choose-storage dialog when none of these is set):
- Positional
FILE argument
KANBAN_FILE environment variable
- Config file
storage_location
All commands output JSON to stdout. Errors are written to stderr.
Command Reference
board
kanban board create --name <NAME> [--card-prefix <PREFIX>]
kanban board list
kanban board get <ID>
kanban board update <ID> [--name <NAME>] [--description <DESC>]
[--sprint-prefix <PREFIX>] [--card-prefix <PREFIX>]
kanban board delete <ID>
column
kanban column create --board <ID> --name <NAME> [--position <N>]
kanban column list --board <ID>
kanban column get <ID>
kanban column update <ID> [--name <NAME>] [--position <N>] [--wip-limit <N>]
kanban column delete <ID>
kanban column reorder <ID> --position <N>
card
kanban card create --board <ID> --column <ID> --title <TITLE>
[--description <DESC>] [--priority low|medium|high|critical]
[--points <N>] [--due-date <YYYY-MM-DD>]
kanban card list [--board <ID>] [--column <ID>] [--sprint <ID>]
[--status todo|in_progress|blocked|done]
[--page <N>] [--page-size <N>]
kanban card get <ID_OR_IDENTIFIER>
kanban card update <ID_OR_IDENTIFIER> [--title <TITLE>] [--description <DESC>]
[--priority <P>] [--status <S>] [--points <N>]
[--due-date <DATE>] [--clear-due-date]
kanban card delete <ID_OR_IDENTIFIER>
kanban card move <ID_OR_IDENTIFIER> --column <ID> [--position <N>]
kanban card archive <ID_OR_IDENTIFIER>
kanban card restore <ID_OR_IDENTIFIER> [--column <ID>]
kanban card assign-sprint <ID_OR_IDENTIFIER> --sprint <ID>
kanban card unassign-sprint <ID_OR_IDENTIFIER>
kanban card branch-name <ID_OR_IDENTIFIER>
kanban card git-checkout <ID_OR_IDENTIFIER>
kanban card archive-cards --cards <UUID,UUID,...>
kanban card move-cards --cards <UUID,UUID,...> --column <ID>
kanban card assign-cards-to-sprint --cards <UUID,UUID,...> --sprint <ID>
Card identifier resolution: <ID_OR_IDENTIFIER> accepts:
- A full UUID:
550e8400-e29b-41d4-a716-446655440000
- A prefix+number identifier:
KAN-5
- If ambiguous, the command prints all matching cards and exits with error
sprint
kanban sprint create --board <ID> [--name <NAME>] [--prefix <PREFIX>]
kanban sprint list --board <ID>
kanban sprint get <ID>
kanban sprint update <ID> [--name <NAME>] [--prefix <PREFIX>]
[--card-prefix <PREFIX>]
[--start-date <DATE>] [--end-date <DATE>]
kanban sprint activate <ID> [--duration-days <N>]
kanban sprint complete <ID>
kanban sprint cancel <ID>
kanban sprint delete <ID>
kanban sprint carry-over --from <ID> --to <ID>
Top-level commands
kanban export [--board <ID>] [--output <FILE>]
kanban import <FILE>
kanban migrate <SOURCE> <BACKEND> [-o <OUTPUT>] [--source-backend <BACKEND>]
kanban completions <bash|zsh|fish|powershell>
migrate moves all data from one storage backend to another:
SOURCE — path to the source file
BACKEND — target backend: json or sqlite
-o, --output — output path (default: source filename with the new backend's extension)
--source-backend — override auto-detection of the source format
kanban migrate boards.json sqlite
kanban migrate boards.sqlite json -o backup.json
kanban migrate data.bin json --source-backend sqlite
Output Format
All commands emit JSON to stdout:
$ kanban board list
[
{
"id": "...",
"name": "My Project",
...
}
]
$ kanban card get KAN-5
{
"id": "...",
"title": "Fix login bug",
"priority": "High",
...
}
Bulk operations emit a BatchOperationResult:
{
"succeeded": ["uuid1", "uuid2"],
"failed": [
{ "id": "uuid3", "error": "card not found" }
]
}
Shell Completions
kanban completions bash >> ~/.bashrc
kanban completions zsh >> ~/.zshrc
kanban completions fish > ~/.config/fish/completions/kanban.fish
kanban completions powershell >> $PROFILE
Environment Variables
| Variable |
Description |
KANBAN_FILE |
Default data file path |
EDITOR |
External editor for description editing (TUI) |
Dependencies
| Crate |
Purpose |
kanban-service |
KanbanContext, all domain operations |
kanban-tui |
TUI launch |
clap |
CLI argument parsing |
tokio |
Async runtime |
serde_json |
JSON output formatting |
tracing |
Structured logging |