{"id":25374041,"url":"https://github.com/zaloog/kanban-python","last_synced_at":"2025-04-08T09:10:37.225Z","repository":{"id":208340718,"uuid":"717456755","full_name":"Zaloog/kanban-python","owner":"Zaloog","description":"Kanban Terminal App written in Python","archived":false,"fork":false,"pushed_at":"2025-03-19T07:40:23.000Z","size":1059,"stargazers_count":288,"open_issues_count":0,"forks_count":7,"subscribers_count":6,"default_branch":"main","last_synced_at":"2025-04-01T08:39:25.509Z","etag":null,"topics":["cli-app","kanban","kanban-board-application","kanban-python","python","terminal-based"],"latest_commit_sha":null,"homepage":"","language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/Zaloog.png","metadata":{"files":{"readme":"README.md","changelog":"CHANGELOG.md","contributing":null,"funding":null,"license":"LICENSE.txt","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":"AUTHORS.md","dei":null,"publiccode":null,"codemeta":null}},"created_at":"2023-11-11T14:43:55.000Z","updated_at":"2025-03-24T15:38:36.000Z","dependencies_parsed_at":"2023-12-19T00:39:00.861Z","dependency_job_id":"12129e55-02e9-47ef-838b-a24f266bcba6","html_url":"https://github.com/Zaloog/kanban-python","commit_stats":null,"previous_names":["zaloog/kanban-python"],"tags_count":30,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zaloog%2Fkanban-python","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zaloog%2Fkanban-python/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zaloog%2Fkanban-python/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/Zaloog%2Fkanban-python/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/Zaloog","download_url":"https://codeload.github.com/Zaloog/kanban-python/tar.gz/refs/heads/main","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":247809964,"owners_count":20999816,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["cli-app","kanban","kanban-board-application","kanban-python","python","terminal-based"],"created_at":"2025-02-15T03:35:41.614Z","updated_at":"2025-04-08T09:10:37.199Z","avatar_url":"https://github.com/Zaloog.png","language":"Python","readme":"\u003c!-- These are examples of badges you might want to add to your README:\n     please update the URLs accordingly\n\n[![Built Status](https://api.cirrus-ci.com/github/\u003cUSER\u003e/kanban-python.svg?branch=main)](https://cirrus-ci.com/github/\u003cUSER\u003e/kanban-python)\n[![ReadTheDocs](https://readthedocs.org/projects/kanban-python/badge/?version=latest)](https://kanban-python.readthedocs.io/en/stable/)\n[![Conda-Forge](https://img.shields.io/conda/vn/conda-forge/kanban-python.svg)](https://anaconda.org/conda-forge/kanban-python)\n[![Twitter](https://img.shields.io/twitter/url/http/shields.io.svg?style=social\u0026label=Twitter)](https://twitter.com/kanban-python)\n[![Monthly Downloads](https://pepy.tech/badge/kanban-python/month)](https://pepy.tech/project/kanban-python)\n[![Coverage Status](https://coveralls.io/repos/github/Zaloog/kanban-python/badge.svg?branch=main)](https://coveralls.io/github/Zaloog/kanban-python?branch=main)\n--\u003e\n\n[![Project generated with PyScaffold](https://img.shields.io/badge/-PyScaffold-005CA0?logo=pyscaffold)](https://pyscaffold.org/)\n[![Ruff](https://img.shields.io/endpoint?url=https://raw.githubusercontent.com/astral-sh/ruff/main/assets/badge/v2.json)](https://github.com/astral-sh/ruff)\n[![PyPI-Server](https://img.shields.io/pypi/v/kanban-python.svg)](https://pypi.org/project/kanban-python/)\n[![Pyversions](https://img.shields.io/pypi/pyversions/kanban-python.svg)](https://pypi.python.org/pypi/kanban-python)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](https://opensource.org/licenses/MIT)\n[![Downloads](https://static.pepy.tech/badge/kanban-python)](https://pepy.tech/project/kanban-python)\n[![Coverage Status](https://coveralls.io/repos/github/Zaloog/kanban-python/badge.svg?branch=main)](https://coveralls.io/github/Zaloog/kanban-python?branch=main)\n# kanban-python\n\n\u003e A Terminal Kanban Application written in Python to boost your productivity :rocket:\n\n## Introduction\nWelcome to **kanban-python**, your Terminal Kanban-Board Manager.\n\n![header](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_header.PNG)\nThe [clikan] Kanban App inspired me to write\nmy own Terminal Kanban Application since I preferred a more simple and guided workflow.\n\n**kanban-python** also comes with more features, like custom column creation,\nautomatic scanning and customizable config file to support you being productive.\n\nThis package was initially developed with [pyscaffold], which provides awesome project templates\nand takes over much of the boilerplate for python packaging.\nIt was a great help for developing my first package and I can highly recommend it.\nWith version `0.5.X` the repository structure was changed to use [uv].\n\n## Features\n\u003cdetails\u003e\u003csummary\u003eColorful and Interactive\u003c/summary\u003e\n\n- kanban-python uses [rich] under the hood to process user input\nand display nice looking kanban-boards to the terminal.\n- Each task has a unique `ID` per board and also has an optional `Tag` and `Due Date` associated with it,\nwhich are displayed alongside its `Title`\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003eFollowing the XDG basedir convention\u003c/summary\u003e\n\n- kanban-python utilizes [platformdirs] `user_config_dir` to save the config file and `user_data_dir` for\nthe board specific task files. After creating your first board, you can use `kanban configure` to show the current settings table.\nThe config path in the table caption and the path for the task files can be found in the kanban_boards section.\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003eScanning of Files for automatic Task Creation\u003c/summary\u003e\n\n- kanban-python can scan files of defined types for specific patterns at start of line.\nCheck [Automatic Task Creation](#automatic-task-creation) for more Infos.\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003eCustomizable Configfile\u003c/summary\u003e\n\n- A `pykanban.ini` file gets created on first initialization in a `kanban-python` folder in your `user_config_dir`-Directory.\nThis can be edited manually or within the kanban-python application. It tracks the location for all your created boards. \\\n![configfile](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_config.PNG)\n   * `Active_Board`: current board that is shown when using `kanban`-command\n   * `Done_Limit`: If the amount of tasks exceed this number in the  \u003cspan style=\"color:green\"\u003eDone\u003c/span\u003e column,\n   the first task of that column gets its status updated to \u003cspan style=\"color:gold\"\u003eArchived\u003c/span\u003e and is moved into that column. (default: `10`)\n   * `Column_Min_Width`: Sets the minimum width of columns. (default: `40`)\n   * `Show_Footer`: Shows the table footer with package name and version. (default: `True`)\n   * `Files`: Space seperated filetypes to search for patterns to create tasks. (default: `.py .md`)\n   * `Patterns`: Comma seperated patterns to search for start of line to create tasks. \u003cbr /\u003e(default: `# TODO,#TODO,# BUG`)\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003eTask Storage File for each Board\u003c/summary\u003e\n\n- Each created board comes with its own name and `pykanban.json` file,\nwhich stores all tasks for that board. The files are stored in board specific folders under `$USER_DATA_DIR/kanban-python/kanban_boards/\u003cBOARDNAME\u003e`.\nWhen 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.\n![change_view](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_kanban_change.PNG)\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003eCustomizable Columns\u003c/summary\u003e\n\n- kanban-python comes with 5 pre-defined colored columns: [Ready, Doing, Done, Archived, Deleted]\nMore column can be added manually in the `pykanban.ini`, the visibility can be configured in the settings\nwith `kanban configure`.\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003eTime Tracking of Task duration in Doing\u003c/summary\u003e\n\n- For each task it is tracked, how long it was in the\n \u003cspan style=\"color:yellow\"\u003eDoing\u003c/span\u003e column, based on the moments when you update the task status.\n The initial Task structure on creation looks as follows:\n![task](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_task_example.PNG)\n\n\u003c/details\u003e\n\n\n\u003cdetails\u003e\u003csummary\u003eReport Creation for completed Tasks\u003c/summary\u003e\n\n- When you use [kanban report](#create-report) a github-like contribution map is displayed for the current year,\nAlso a markdown file is created with all tasks comleted based on the moment, when the tasks were moved to Done Column.\n![task](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_kanban_report_document.PNG)\n\n\u003c/details\u003e\n\n## Installation\nYou can install kanban-python with:\n```bash\npython -m pip install kanban-python\n```\n\nor using [pipx] / [uv] / [rye]:\n```bash\npipx install kanban-python # using pipx\nuv tool install kanban-python # using uv\nrye install kanban-python # using rye\n```\nI recommend using pipx, rye or uv to install CLI Tools into an isolated environment.\n\n## Usage\nAfter Installation of kanban-python, there are 5 commands available:\n\n### Create new Boards\n  ```bash\n  kanban init\n  ```\nIs 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.\nOn first use of any command, the `pykanban.ini` configfile and the `kanban-python` folder will be created automatically.\n![init_file](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_kanban_init.PNG)\n\nYou can create local boards in the current working directory by using the name `local` or the flags `-l` or `--local` when\nusing `kanban init`. kanban-python checks for local boards and updates the config file accordingly.\nLocal boards can only be accessed when using `kanban` in the same folder.\n\n### Interact with Tasks/Boards\n  ```bash\n  kanban\n  ```\nThis is your main command to interact with your boards and tasks. It also gives the option to show the current settings and adjust them.\nAdjusting the settings can also be done directly by using the command `kanban configure`:\n![kanban](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_kanban.PNG)\n\nUse `Ctrl-C` or `Ctrl-D` to exit the application at any time. :warning: If you exit in the middle of creating/updating a task,\nor changing settings, your progress wont be saved.\n\n### Automatic Task Creation\n  ```bash\n  kanban scan\n  ```\nAfter executing this command, kanban-python scans your current directory recursively for the defined filetypes and searches for lines\nthat start with the pattern provided.\n![scan_view](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_scan_view.PNG)\n\nAfter 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.\nThe filepath were the task was found will be added as description of the task.\n![scan_table](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_scan_table.PNG)\n\nYou can also define a different path to scan with the `-p` or `--path` argument.\n\n### Create Report\n  ```bash\n  kanban report\n  ```\nGoes over all your Boards and creates a single markdown file by checking the `Completion Dates` of your tasks.\nAlso shows a nice github-like contribution table for the current year.\n![report](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_kanban_report.PNG)\n\nYou can define a different output path of the `pykanban.md` report file with the `-p` or `--path` argument.\n\n### Change Settings\n  ```bash\n  kanban configure\n  ```\n![settings](https://raw.githubusercontent.com/Zaloog/kanban-python/main/images/image_kanban_configure.PNG)\n\nTo create a new custom Column, you have to edit the `pykanban.ini` manually and add a new column name + visibility status\nunder the `settings.columns.visible` section. The other options are all customizable now via the new settings menu.\n\n\n## Feedback and Issues\nFeel free to reach out and share your feedback, or open an Issue, if something doesnt work as expected.\nAlso check the [Changelog](https://github.com/Zaloog/kanban-python/blob/main/CHANGELOG.md) for new updates.\n\n:warning:\nWith release v0.3.0 kanban-python switched to the [XDG] Basedir Spec. So some file migrations and config edits might be\nneeded to continue working with your already created boards if you update from `v0.2.X` to `v0.3.X`\n\n\n\n[XDG]: https://specifications.freedesktop.org/basedir-spec/basedir-spec-latest.html\n[platformdirs]: https://platformdirs.readthedocs.io/en/latest/\n[clikan]: https://github.com/kitplummer/clikan\n[pyscaffold]: https://pyscaffold.org/\n[rich]: https://github.com/Textualize/rich\n[pipx]: https://github.com/pypa/pipx\n[uv]: https://docs.astral.sh/uv/\n[rye]: https://rye.astral.sh\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaloog%2Fkanban-python","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fzaloog%2Fkanban-python","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fzaloog%2Fkanban-python/lists"}