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

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

  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

Renaming Projects

  1. In project manager, select project to rename
  2. Press r to rename
  3. Enter new project name
  4. All tasks and data are preserved
  5. Cannot rename to an existing project name

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.

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.6.tar.gz (25.8 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.6-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: kanby-1.0.6.tar.gz
  • Upload date:
  • Size: 25.8 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.6.tar.gz
Algorithm Hash digest
SHA256 644fcae1b0e9a5839c4408baac183aec07e60173f178e681934887a70a61813b
MD5 766e12b8dae8fa28aca074003389f302
BLAKE2b-256 d46ed805f34b553f7d75514c0efca79c828ad9c0886cb459978161f9b644f4a8

See more details on using hashes here.

File details

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

File metadata

  • Download URL: kanby-1.0.6-py3-none-any.whl
  • Upload date:
  • Size: 14.3 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.6-py3-none-any.whl
Algorithm Hash digest
SHA256 23186ed4a115b80fad4a45b3eb936c86df5288efc4489ff54f69ad6dcd517561
MD5 b22cf699f223d1238f2063a7ca4adfee
BLAKE2b-256 98cfd5449d60b344a369d145457ef66b851773570a467dac0e90e8e24cf8b10d

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