https://github.com/fulsomenko/kanban
A terminal based project management solution
https://github.com/fulsomenko/kanban
agile card cards kanban kanban-board productivity project project-management projects ratatui rust scrum task task-management task-manager tasks terminal tui
Last synced: about 1 month ago
JSON representation
A terminal based project management solution
- Host: GitHub
- URL: https://github.com/fulsomenko/kanban
- Owner: fulsomenko
- License: apache-2.0
- Created: 2025-10-10T02:33:46.000Z (5 months ago)
- Default Branch: develop
- Last Pushed: 2026-02-01T08:24:15.000Z (about 1 month ago)
- Last Synced: 2026-02-01T09:00:14.211Z (about 1 month ago)
- Topics: agile, card, cards, kanban, kanban-board, productivity, project, project-management, projects, ratatui, rust, scrum, task, task-management, task-manager, tasks, terminal, tui
- Language: Rust
- Homepage:
- Size: 1.79 MB
- Stars: 71
- Watchers: 2
- Forks: 2
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- Contributing: CONTRIBUTING.md
- License: LICENSE.md
Awesome Lists containing this project
- awesome-ratatui - kanban - TUI kanban board for projects management with sprint tracking and task prioritization. (💻 Apps / 🚀 Productivity and Utilities)
- awesome-tuis - kanban - TUI kanban board for projects management with sprint tracking and task prioritization. (Table of Contents)
README
# Kanban
[](https://crates.io/crates/kanban-cli)
[](LICENSE.md)
A **fast, keyboard-driven kanban tool**

**Inspired by**: [lazygit](https://github.com/jesseduffield/lazygit)
**Made possible** by: [ratatui](https://ratatui.rs)
## Features
### 🎯 Core
- **Board Management**: Create, edit, and organize multiple boards
- **Custom Columns**: Define your own columns to match your workflow (e.g., **Todo**, **In Progress**, **Blocked**, **Done**)
- **Rich Cards**: Cards with metadata including priority, story points, due dates, and more
- **Card Dependencies**: Parent-child and blocking relationships between cards
- **Keyboard-Driven**: Vim-like navigation with hjkl and context-aware shortcuts
### 🚀 Productivity
- **Search**: Find cards instantly with vim-style `/` search
- **Undo / Redo**: Undo (`u`) and redo (`U`) any action
- **Multiple Views**: Switch between flat list, grouped by column, or kanban board layout with `V`
- **External Editor**: Edit in your preferred editor (emacs, nano, vim, etc.)
### 📊 Organization
- **Sprint Planning**: Plan, start and complete sprints
- **Story Points**: Assign 1-5 point estimates with color-coded display
- **Sorting**: Sort cards by points, priority, date, status, or position
- **Filtering**: Filter by sprint, status, or search results
- **Card Archiving**: Archive and restore tasks
- **Metadata**: Organize with due dates, priority levels, and timestamps
## Installation
### From crates.io
```bash
cargo install kanban-cli
kanban
```
### From Source
```bash
git clone https://github.com/fulsomenko/kanban
cd kanban
cargo install --path crates/kanban-cli
```
### Using Nix
```bash
nix run github:fulsomenko/kanban
```
## Quick Start
### TUI
```bash
kanban # Launch the app
kanban myboard.json # Load a board from file
```
**First time?**
1. Press `n` to create a new board
2. Press `Enter` to activate it
3. Add cards with `n` and organize them
4. Press `x` to export as JSON
### CLI
```bash
export KANBAN_FILE=myboard.json # Set data file
# Boards
kanban board list
kanban board create --name "My Project"
# Cards
kanban card list --board-id
kanban card create --board-id --column-id --title "New task"
kanban card update --status done --priority high
# Sprints
kanban sprint create --board-id
kanban sprint activate
kanban card assign-sprint --sprint-id
```
All commands output JSON. See `kanban --help` for full reference.
## Multiple Views
Switch between view modes with `V`:
- **Flat List**: See all cards in a simple list with details
- **Grouped by Column**: Cards organized under their respective columns
- **Kanban Board**: Classic columnar board layout for visual workflow
## Usage
> **Tip:** Press `?` at any time to view the help menu with all available bindings for your current context.
**Navigation**
- `j`/`k` - Up/down, `h`/`l` - Previous/next column
- `Enter` - Open card
**Card list**
- `n` - New card, `e` - Edit, `r` - Rename
- `d` - Archive, `c` - Toggle done, `p` - Set priority
**Views & Search**
- `V` - Toggle view mode, `/` - Search
- `t` - Sprint filter, `D` - Archived cards
**Undo & Other**
- `u` - Undo, `U` - Redo
- `y` - Copy to clipboard, `H`/`L` - Move card left/right, `q` - Quit
## Architecture
Built with **Rust** for speed and reliability:
```
crates/
├── kanban-core → Shared traits, error handling & reusable state primitives
├── kanban-domain → Domain models, business logic, filtering & sorting
├── kanban-persistence → JSON storage, versioning & migrations
├── kanban-tui → Terminal UI with ratatui
├── kanban-cli → CLI entry point
└── kanban-mcp → Model Context Protocol server for LLM integration
```
**Key Design Patterns:**
- **Command Pattern**: All mutations flow through domain commands for persistent tracking
- **Immediate Saving**: Changes auto-save after each action
- **Format Versioning**: Automatic V1→V2 migration with backup on first load
- **Multi-Instance Support**: Last-write-wins conflict resolution for concurrent edits
## Data & Persistence
- **Format**: JSON-based import/export
- **Automatic Migration**: V1 data files are automatically upgraded to V2 format on load with backup creation
- **Multi-Instance Support**:
- Real-time file watching detects changes from other running instances
- Automatic reload when no local changes exist
- User prompt when local edits conflict with external changes
- Last-write-wins conflict resolution for concurrent edits
- **Atomic Writes**: Crash-safe write pattern (temp file → atomic rename) prevents data corruption
- **External Editor**: Automatically detects vim, nvim, nano, or your `$EDITOR` for editing descriptions
- **Rich Metadata**: Timestamps, priority levels, story points, custom tags
- **Bounded Save Queue**: Maintains a queue of up to 100 pending snapshots
## Roadmap
- [x] Progressive auto-save (save changes to board as you make them, not just on exit)
- [x] Full CLI interface matching TUI operations (scriptable kanban commands)
- [x] Card dependencies
- [ ] Configurable keybindings
- [ ] Audit log
- [ ] Multiple storage backends (.md archive, SQL, MongoDB) with pluggable architecture
- [ ] HTTP API for remote board access and programmatic control
- [ ] Collaborative features (multi-user, sync)
## Contributing
See [CONTRIBUTING.md](CONTRIBUTING.md) for development workflow, code style, and testing guidelines.
## License
Apache 2.0 - See [LICENSE.md](LICENSE.md) for details