Skip to main content

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

kanban-cli poster

🚀 Quickstart

pip install kanban-cli
# or
uv pip install kanban-cli
# then run it:
kanban

📦 Requirements

  • Python 3.10+
  • rich library

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

kanban_cli-0.1.6.tar.gz (24.9 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

kanban_cli-0.1.6-py3-none-any.whl (25.7 kB view details)

Uploaded Python 3

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

Hashes for kanban_cli-0.1.6.tar.gz
Algorithm Hash digest
SHA256 e56da54bcf2caf27cae80af8aa8ea0a6d3ce8fa88e00a631df1fd390dfb06e7d
MD5 6ed6d4e07320d4949c4ca6b26ff12860
BLAKE2b-256 fb7c1505678d93e91dbb36188f93fec796bc62b2d6e1169ec6288d893767ecd2

See more details on using hashes here.

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

Hashes for kanban_cli-0.1.6-py3-none-any.whl
Algorithm Hash digest
SHA256 15f5b2c2e254c107782466bc9bc3979535da4b331f8cd463a38422e6d25a882c
MD5 d83ed1dcd6890ad37dfdfcf156cfb511
BLAKE2b-256 17070d68f21d302c33cf1d4056274206ebe4b5a5ca9e227edb6ab643b8186767

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page