Skip to main content

Project generated with PyScaffold Ruff PyPI-Server Pyversions License: MIT Downloads Coverage Status

kanban-python

A Terminal Kanban Application written in Python to boost your productivity :rocket:

Introduction

Note: I am no longer actively working on this project (besides bug fixes), you might take a look at the next iteration kanban-tui, which offers a better kanban experience with a full TUI build with textual

Welcome to kanban-python, your Terminal Kanban-Board Manager.

header The clikan Kanban App inspired me to write my own Terminal Kanban Application since I preferred a more simple and guided workflow.

kanban-python also comes with more features, like custom column creation, automatic scanning and customizable config file to support you being productive.

This package was initially developed with pyscaffold, which provides awesome project templates and takes over much of the boilerplate for python packaging. It was a great help for developing my first package and I can highly recommend it. With version 0.5.X the repository structure was changed to use uv.

Features

Colorful and Interactive
  • kanban-python uses rich under the hood to process user input and display nice looking kanban-boards to the terminal.
  • Each task has a unique ID per board and also has an optional Tag and Due Date associated with it, which are displayed alongside its Title
Following the XDG basedir convention
  • kanban-python utilizes platformdirs user_config_dir to save the config file and user_data_dir for the board specific task files. After creating your first board, you can use kanban configure to show the current settings table. The config path in the table caption and the path for the task files can be found in the kanban_boards section.
Scanning of Files for automatic Task Creation
  • kanban-python can scan files of defined types for specific patterns at start of line. Check Automatic Task Creation for more Infos.
Customizable Configfile
  • A pykanban.ini file gets created on first initialization in a kanban-python folder in your user_config_dir-Directory. This can be edited manually or within the kanban-python application. It tracks the location for all your created boards.
    configfile
    • Active_Board: current board that is shown when using kanban-command
    • Done_Limit: If the amount of tasks exceed this number in the Done column, the first task of that column gets its status updated to Archived and is moved into that column. (default: 10)
    • Column_Min_Width: Sets the minimum width of columns. (default: 40)
    • Show_Footer: Shows the table footer with package name and version. (default: True)
    • Files: Space seperated filetypes to search for patterns to create tasks. (default: .py .md)
    • Patterns: Comma seperated patterns to search for start of line to create tasks.
      (default: # TODO,#TODO,# BUG)
Task Storage File for each Board
  • Each created board comes with its own name and pykanban.json file, which stores all tasks for that board. The files are stored in board specific folders under $USER_DATA_DIR/kanban-python/kanban_boards/<BOARDNAME>. When changing Boards you also get an overview over tasks in visible columns for each board and the most urgent or overdue task on that board. change_view
Customizable Columns
  • kanban-python comes with 5 pre-defined colored columns: [Ready, Doing, Done, Archived, Deleted] More column can be added manually in the pykanban.ini, the visibility can be configured in the settings with kanban configure.
Time Tracking of Task duration in Doing
  • For each task it is tracked, how long it was in the Doing column, based on the moments when you update the task status. The initial Task structure on creation looks as follows: task
Report Creation for completed Tasks
  • When you use kanban report a github-like contribution map is displayed for the current year, Also a markdown file is created with all tasks comleted based on the moment, when the tasks were moved to Done Column. task

Installation

You can install kanban-python with:

python -m pip install kanban-python

or using pipx / uv / rye:

pipx install kanban-python # using pipx
uv tool install kanban-python # using uv
rye install kanban-python # using rye

I recommend using pipx, rye or uv to install CLI Tools into an isolated environment.

Usage

After Installation of kanban-python, there are 5 commands available:

Create new Boards

kanban init

Is used to create a new kanban board i.e. it asks for a name and then creates a pykanban.json file with a Welcome Task. On first use of any command, the pykanban.ini configfile and the kanban-python folder will be created automatically. init_file

You can create local boards in the current working directory by using the name local or the flags -l or --local when using kanban init. kanban-python checks for local boards and updates the config file accordingly. Local boards can only be accessed when using kanban in the same folder.

Interact with Tasks/Boards

kanban

This is your main command to interact with your boards and tasks. It also gives the option to show the current settings and adjust them. Adjusting the settings can also be done directly by using the command kanban configure: kanban

Use Ctrl-C or Ctrl-D to exit the application at any time. :warning: If you exit in the middle of creating/updating a task, or changing settings, your progress wont be saved.

Automatic Task Creation

kanban scan

After executing this command, kanban-python scans your current directory recursively for the defined filetypes and searches for lines that start with the pattern provided. scan_view

After confirmation to add the found tasks to table they will be added to the board. The alphanumeric Part of the Pattern will be used as tag. The filepath were the task was found will be added as description of the task. scan_table

You can also define a different path to scan with the -p or --path argument.

Create Report

kanban report

Goes over all your Boards and creates a single markdown file by checking the Completion Dates of your tasks. Also shows a nice github-like contribution table for the current year. report

You can define a different output path of the pykanban.md report file with the -p or --path argument.

Change Settings

kanban configure

settings

To create a new custom Column, you have to edit the pykanban.ini manually and add a new column name + visibility status under the settings.columns.visible section. The other options are all customizable now via the new settings menu.

Feedback and Issues

Feel free to reach out and share your feedback, or open an Issue, if something doesnt work as expected. Also check the Changelog for new updates.

:warning: With release v0.3.0 kanban-python switched to the XDG Basedir Spec. So some file migrations and config edits might be needed to continue working with your already created boards if you update from v0.2.X to v0.3.X

Release files for kanban-python 0.6.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for kanban-python 0.6.4
File Size Uploaded
kanban_python-0.6.4.tar.gz 401.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for kanban-python 0.6.4
File Interpreter ABI Platform
kanban_python-0.6.4-py3-none-any.whl Python 3 none any Details

Total release size: 424.2 kB

Release files / kanban_python-0.6.4.tar.gz

Download URL kanban_python-0.6.4.tar.gz
Size 401.4 kB
Tags Source
SHA-256 checksum
How to use checksums
cf818fceabd60185a777896b7d852ab04454ef852d26ae726aa620ed2035f99d
BLAKE2b-256 checksum
How to use checksums
cf8567c8d1ccd2ef836c3968425754dee85a238a1acfccb30787a20953002024
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release files / kanban_python-0.6.4-py3-none-any.whl

Download URL kanban_python-0.6.4-py3-none-any.whl
Size 22.8 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0fda115bc37374082f4761c44ba65b5f9fabeec7d9400c7bcb77c680b24f6e9a
BLAKE2b-256 checksum
How to use checksums
b5d3ceb2ca6683ce3383d4701dbdc37dcefe84b1da9986043e9547a40da06445
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.13 {"installer":{"name":"uv","version":"0.11.13","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":true}

Release history Release notifications | RSS feed

This release

0.6.4 This release

2 release files

0.6.3

2 release files

0.6.2

2 release files

0.6.1

2 release files

0.6.0

2 release files

0.5.2

2 release files

0.5.1

2 release files

0.4.1

2 release files

0.4.0

2 release files

0.3.9

2 release files

0.3.8

2 release files

0.3.7

2 release files

0.3.6

2 release files

0.3.5

2 release files

0.3.4

2 release files

0.3.3

2 release files

0.3.2

2 release files

0.3.1

2 release files

0.3.0

2 release files

0.2.2

2 release files

0.2.1

2 release files

0.2.0

2 release files

0.1.4

2 release files

0.1.3

2 release files

0.1.1

2 release files

0.1.0

2 release files

0.0.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page