A terminal-based Kanban board using Rich.
Project description
🧮 Terminal Kanban Board
A visually appealing terminal-based Kanban board
powered by the Rich library.
Tasks are organized in three statuses:
TODO, NOW, and DONE,
displayed either horizontally or vertically.
Each task belongs to a custom category,
and each category is assigned a unique color for visual grouping.
Data is stored in a simple CSV file,
and all configuration is handled with a Python dictionary file.
🛠 Features
- 📦 Three colored status columns:
TODO,NOW,DONE - 🗂 Tasks have
id,title,description,category,status - 🎨 Custom categories with persistent color assignment
- ⌨️ Vim-inspired commands like
:a,:m,:w,:q - 🧠 Intelligent ID reuse
- 🔁 Layout switching: vertical (default) or horizontal
- 🔍 Filtering, sorting, and searching tasks
- 🧹 Clean visual interface with bordered Rich panels
🚀 Quickstart
pip install kanban-cli
# or
uv pip install kanban-cli
# then run it:
kanban
📦 Requirements
- Python 3.10+
richlibrary
Install dependencies:
sudo apt install python3-rich
or
pip install rich
▶️ Run the app
python main.py
⌨️ Commands
| Command | Description |
|---|---|
:a |
Add a new task |
:m |
Move a task to another status |
:d |
Delete a task |
:e |
Edit a task |
:f |
Filter tasks by status/category |
:s |
Sort tasks by ID, title, category |
:search |
Search for text in tasks |
:c |
Change a category’s color |
:layout |
Switch layout (columns/rows) |
:w |
Save all changes |
:q |
Quit |
:clear |
Re-render the full board |
📂 Project Structure
kanban/
├── main.py # Entry point
├── board.py # Kanban board rendering
├── task.py # Task dataclass & logic
├── storage.py # CSV load/save helpers
├── config.py # Persistent config dict
├── config_utils.py # Config manipulation utils
├── /db/tasks.csv # Task database
├── README.md # This README.md file
├── README_RU.md # README in Russian
├── StyleGuide.md # Code style guide for the project
📁 Configuration
All configuration (category colors, layout) is stored in config.py as a dictionary:
CONFIG = {
"category_colors": {
"code": "cyan",
"shop": "green",
},
"layout": "columns"
}
Colors are randomly assigned to new categories (avoiding duplicates), but can
be changed by the user with :c.
🧱 Scalability
- Designed to be modular and extensible.
- Easy to switch to JSON or database backend in future.
- Ready for multi-file/project/task view if needed.
❤️ Made with Rich
This app relies on the fantastic Rich library for all terminal rendering — thank you, Will McGugan!
📃 License
GNU General Public License.
Project details
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 kanban_cli-0.1.6.tar.gz.
File metadata
- Download URL: kanban_cli-0.1.6.tar.gz
- Upload date:
- Size: 24.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e56da54bcf2caf27cae80af8aa8ea0a6d3ce8fa88e00a631df1fd390dfb06e7d
|
|
| MD5 |
6ed6d4e07320d4949c4ca6b26ff12860
|
|
| BLAKE2b-256 |
fb7c1505678d93e91dbb36188f93fec796bc62b2d6e1169ec6288d893767ecd2
|
File details
Details for the file kanban_cli-0.1.6-py3-none-any.whl.
File metadata
- Download URL: kanban_cli-0.1.6-py3-none-any.whl
- Upload date:
- Size: 25.7 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.11.11
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
15f5b2c2e254c107782466bc9bc3979535da4b331f8cd463a38422e6d25a882c
|
|
| MD5 |
d83ed1dcd6890ad37dfdfcf156cfb511
|
|
| BLAKE2b-256 |
17070d68f21d302c33cf1d4056274206ebe4b5a5ca9e227edb6ab643b8186767
|