A beautiful terminal-based Kanban board
Project description
🔥 Kanby
A Beautiful Terminal-Based Kanban Board
Kanby brings the power of Kanban boards directly to your terminal with a clean, intuitive interface built using Python's curses library.
✨ Features
- 🎯 Multiple Projects: Organize different projects separately
- 📊 Customizable Columns: Default "To Do", "In Progress", "Done"
- 🎨 Priority Levels: Low, Mid, High priority tasks with color coding
- 💾 Persistent Storage: All data saved locally in JSON format
- ⌨️ Keyboard Navigation: Full keyboard control for efficiency
- 🎭 Beautiful UI: Clean, colorful terminal interface with splash screen
- 🚀 Fast & Lightweight: No external dependencies required
- 🔧 CLI Options: Custom data file locations and more
📦 Installation
Using pip
pip install kanby
Using uv
uv add kanby
From source
git clone https://github.com/vladzima/kanby
cd kanby
pip install -e .
🚀 Usage
Simply run:
kanby
Or with custom data file:
kanby --data-file /path/to/your/kanban.json
For help:
kanby --help
⌨️ Keyboard Controls
Navigation
| Key | Action |
|---|---|
← → |
Navigate between columns |
↑ ↓ |
Navigate between tasks |
Task Management
| Key | Action |
|---|---|
a |
Add new task |
e |
Edit selected task |
d |
Delete selected task |
m |
Move task (+ arrow keys) |
Project Management
| Key | Action |
|---|---|
p |
Open project manager |
In Project Manager
| Key | Action |
|---|---|
↑ ↓ |
Navigate projects |
Enter |
Select project |
n |
New project |
r |
Rename project |
d |
Delete project |
q |
Cancel/Exit |
Application
| Key | Action |
|---|---|
q |
Quit application |
🎯 Task Management
Creating Tasks
- Press
ato add a new task - Enter the task title
- Choose priority (L/M/H for Low/Mid/High)
- Task appears in current column
Editing Tasks
- Navigate to a task using arrow keys
- Press
eto edit - Modify title and/or priority
- Changes are saved automatically
Moving Tasks
- Select a task with arrow keys
- Press
mto enter move mode - Use arrow keys to move:
←→: Move between columns↑↓: Reorder within current column
- Press
Enterto confirm orEscto cancel
Task Visibility & Scrolling
Column headers show task counts and visibility information:
- All visible:
To Do (5)- shows total count when all tasks fit - Scrolling needed:
To Do (3-7/15)- shows visible range when scrolling - Empty column:
To Do (0)- indicates no tasks in column
Navigate through long task lists with ↑ ↓ arrows. Headers automatically update to show which tasks are currently visible on screen.
Priority Levels
Tasks display with compact priority indicators on the same line:
- [H] Task title: High priority (red color coding)
- [M] Task title: Mid priority (yellow color coding)
- [L] Task title: Low priority (green color coding)
This space-efficient format allows 3x more tasks to be visible on screen compared to the previous multi-line format.
📁 Project Management
Multiple Projects
- Press
pto open the project manager - Navigate with
↑↓arrow keys - Press
Enterto switch to selected project
Creating Projects
- In project manager, press
n - Enter new project name
- Project is created with default columns
Renaming Projects
- In project manager, select project to rename
- Press
rto rename - Enter new project name
- All tasks and data are preserved
- Cannot rename to an existing project name
Deleting Projects
- In project manager, select project
- Press
dto delete - Confirm with
y - Cannot delete the last remaining project
🔧 Configuration
Data Storage
Kanby stores data in kanby_data.json in your current directory by default.
Custom Data File
Specify a custom location:
kanby --data-file ~/.config/kanby/my-projects.json
Data Format
The JSON file contains all projects and tasks:
{
"Project Name": {
"To Do": [
{
"id": "abc123",
"title": "Task title",
"priority": "High"
}
],
"In Progress": [],
"Done": []
}
}
🎨 Color Scheme
Kanby uses a carefully designed color scheme:
- Project names: Cyan
- Column headers: Blue (active: Green)
- Task priorities: Green (Low), Yellow (Mid), Red (High)
- Selected items: Yellow background
- Messages: Green (info), Red (error)
- Borders: White
💻 System Requirements
- Python 3.7 or higher
- Terminal with curses support
- Unix-like system (Linux, macOS) or Windows with proper terminal
🛠️ Development
Setup
git clone https://github.com/vladzima/kanby
cd kanby
pip install -e .
Running Tests
python -m pytest
Code Structure
kanby/
├── kanby/
│ ├── __init__.py # Package initialization
│ └── main.py # Main application logic
├── pyproject.toml # Package configuration
├── README.md # This file
└── LICENSE # MIT License
🐛 Troubleshooting
Terminal Issues
If your terminal becomes corrupted after an error:
reset
Color Issues
If colors don't display properly, your terminal may not support them. Kanby will fall back to a monochrome display.
Size Issues
Kanby adapts to your terminal size, but works best with at least 80x24 characters.
📝 License
MIT License - see LICENSE file for details.
🤝 Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
How to Contribute
- Fork the repository
- Create a feature branch
- Make your changes
- Add tests if applicable
- Submit a pull request
Reporting Issues
Please use the GitHub issue tracker to report bugs or request features.
Made with ❤️ for terminal enthusiasts and productivity lovers
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file kanby-1.0.9.tar.gz.
File metadata
- Download URL: kanby-1.0.9.tar.gz
- Upload date:
- Size: 38.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
978b18d96b7fffa41ff1c9890395110847edd9a892451e26b523f3259cc2c56c
|
|
| MD5 |
8ead6fce69355c4f82a4caff612d2370
|
|
| BLAKE2b-256 |
999ed75c8e56213c2b599151bcf58a04a47de678eaedea63bbe6df63bbc8f2b0
|
File details
Details for the file kanby-1.0.9-py3-none-any.whl.
File metadata
- Download URL: kanby-1.0.9-py3-none-any.whl
- Upload date:
- Size: 14.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.12.4
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
90893ee4304504da9b7f7b3d1b34fb17acb5c4d5db3a166f760c23b4b917481e
|
|
| MD5 |
d33c33e3c3ed0e6682f0d29899a84039
|
|
| BLAKE2b-256 |
600018d233aa5f199fef08d4b7717c2a7dea62aa8e7d06dc5883a886b3d8c2ec
|