Skip to main content

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

Application

Key Action
q Quit application

🎯 Task Management

Creating Tasks

  1. Press a to add a new task
  2. Enter the task title
  3. Choose priority (L/M/H for Low/Mid/High)
  4. Task appears in current column

Editing Tasks

  1. Navigate to a task using arrow keys
  2. Press e to edit
  3. Modify title and/or priority
  4. Changes are saved automatically

Moving Tasks

  1. Select a task with arrow keys
  2. Press m to enter move mode
  3. Use arrow keys to move:
    • : Move between columns
    • : Reorder within current column
  4. Press Enter to confirm or Esc to cancel

Priority Levels

  • Low: Green color coding
  • Mid: Yellow color coding
  • High: Red color coding

📁 Project Management

Multiple Projects

  • Press p to open the project manager
  • Navigate with arrow keys
  • Press Enter to switch to selected project

Creating Projects

  1. In project manager, press n
  2. Enter new project name
  3. Project is created with default columns

Deleting Projects

  1. In project manager, select project
  2. Press d to delete
  3. Confirm with y
  4. 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

  1. Fork the repository
  2. Create a feature branch
  3. Make your changes
  4. Add tests if applicable
  5. Submit a pull request

Reporting Issues

Please use the GitHub issue tracker to report bugs or request features.

🚀 Roadmap

  • Custom column names
  • Task due dates
  • Task descriptions
  • Import/export functionality
  • Themes and customization
  • Search functionality
  • Task filtering

Made with ❤️ for terminal enthusiasts and productivity lovers

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

kanby-1.0.1.tar.gz (13.4 kB view details)

Uploaded Source

Built Distribution

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

kanby-1.0.1-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

Details for the file kanby-1.0.1.tar.gz.

File metadata

  • Download URL: kanby-1.0.1.tar.gz
  • Upload date:
  • Size: 13.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for kanby-1.0.1.tar.gz
Algorithm Hash digest
SHA256 0b1c0c35d8b3c86c507fc7f91cd31a1e81f05f4f002b7bf5da8d2f504f81a2ba
MD5 7c1d7545e1c57f9f79f8239af9d8bfee
BLAKE2b-256 931adf052e40921e263cc29b097349c5f41332f1a42a4912da7d93bcdcfbb8a1

See more details on using hashes here.

File details

Details for the file kanby-1.0.1-py3-none-any.whl.

File metadata

  • Download URL: kanby-1.0.1-py3-none-any.whl
  • Upload date:
  • Size: 13.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.1.0 CPython/3.12.4

File hashes

Hashes for kanby-1.0.1-py3-none-any.whl
Algorithm Hash digest
SHA256 b8784e22722f5f715abede98bbf270d78535e77719b6de2898d7d6669b028702
MD5 a9115614b56811f7ba1fe8d6f5594a6d
BLAKE2b-256 d9137aa8e4273103946dbab9810f797abd3320ae90a466573b5632d0e704ae84

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