Skip to main content

Hierarchical visualization of developer tasks across code repositories

Project description

tickle ๐Ÿชถ

Python Version License: MIT Tests Coverage Code style: ruff

A lightweight, cross-platform tool that provides hierarchical visualization of TODOs, code comments, and markdown checkboxes across your repositories and personal notes.

The name? It's all about ticking things off your list.

Platform Support: Windows, Linux, macOS

Why?

I wanted a fast, configurable way to surface TODOs across many repos. Whether it's tracking bugs in code or managing your life in markdown journals and task lists, tickle finds and reports what needs attention.

Features

  • Hierarchical tree view showing tasks organized by directory structure
  • Multi-repo scanning
  • Configurable task markers (TODO, FIXME, BUG, NOTE, HACK, CHECKBOX)
  • Markdown checkbox detection (finds unchecked - [ ] items)
  • Git blame enrichment (shows who wrote each task and when)
  • Visual summary panel showing task counts and breakdown
  • Alternative JSON / Markdown output formats for automation
  • Cross-platform compatibility (Windows, Linux, macOS)

Installation

From PyPI (Recommended)

pip install tickle-cli

From Source (Development)

git clone https://github.com/colinmakerofthings/tickle-cli.git
cd tickle-cli
pip install -e ".[dev]"

Usage

Check the version:

tickle --version

Scan the current directory for tasks:

tickle

Output shows a hierarchical tree view with summary panel:

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€ Task Summary โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”
โ”‚ Total: 14 tasks in 6 files  โ”‚
โ”‚ BUG: 2 | FIXME: 5 | TODO: 7 โ”‚
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”˜

๐Ÿ“ tickle-cli (14 tasks)
โ”œโ”€โ”€ ๐Ÿ“ src (10)
โ”‚   โ”œโ”€โ”€ ๐Ÿ“ tickle (10)
โ”‚   โ”‚   โ”œโ”€โ”€ ๐Ÿ“„ cli.py (2)
โ”‚   โ”‚   โ”‚   โ”œโ”€โ”€ [TODO] Line 15: Add config file support (by alice, 2 days ago)
โ”‚   โ”‚   โ”‚   โ””โ”€โ”€ [FIXME] Line 42: Handle edge case (by bob, 3 weeks ago)
โ”‚   โ”‚   โ””โ”€โ”€ ๐Ÿ“„ scanner.py (3)
โ”‚   โ”‚       โ””โ”€โ”€ [BUG] Line 67: Memory leak (by charlie, 1 month ago)
โ””โ”€โ”€ ๐Ÿ“ tests (4)
    โ””โ”€โ”€ ๐Ÿ“„ test_cli.py (4)

Note: Git blame information (author and date) is automatically included when scanning git repositories. Use --no-blame to disable this feature for faster scanning.

Scan a specific directory:

tickle /path/to/repo

Filter by specific task markers:

tickle --markers TODO,FIXME,BUG

Show collapsed tree view (counts only):

tickle --tree-collapse

This shows just the directory structure with task counts, hiding individual task details.

Output in JSON format (for automation):

tickle --format json

Output in Markdown format (for documentation):

tickle --format markdown

Note: Summary panel and tree view are shown by default. Use --format json or --format markdown for machine-readable or documentation output.

Ignore specific file patterns:

tickle --ignore "*.min.js,node_modules,build"

Sort tasks by marker priority:

tickle --sort marker

This groups tasks by priority (BUG โ†’ FIXME โ†’ TODO โ†’ HACK โ†’ NOTE โ†’ CHECKBOX), making it easy to focus on critical issues first. Default is --sort file which sorts by file path and line number.

Sort by commit age (oldest first):

tickle --sort age

This shows oldest TODOs first based on git commit date, helping identify technical debt and long-standing issues. Tasks without git blame data appear last.

Sort by author:

tickle --sort author

This groups tasks alphabetically by author name, making it easy to see who wrote each TODO. Requires git blame to be enabled (default).

Scan for markdown checkboxes:

tickle --markers CHECKBOX

This finds all unchecked markdown checkboxes (- [ ] or * [ ]) in your markdown files.

Include hidden directories in scan:

tickle --include-hidden

By default, hidden directories (starting with . like .git, .vscode) are ignored. Use this flag to include them.

Disable git blame enrichment:

tickle --no-blame

By default, tickle enriches task output with git blame information (author and date). Use this flag to skip git blame for faster scanning when you don't need author/date information.

Show verbose git information:

tickle --git-verbose

This shows additional git details including the commit hash and commit message for each task. Only works when git blame is enabled (don't use with --no-blame).

Combine options:

tickle /path/to/repo --markers TODO,FIXME --ignore "tests,venv" --tree-collapse

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

tickle_cli-0.1.0.tar.gz (31.9 kB view details)

Uploaded Source

Built Distribution

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

tickle_cli-0.1.0-py3-none-any.whl (18.0 kB view details)

Uploaded Python 3

File details

Details for the file tickle_cli-0.1.0.tar.gz.

File metadata

  • Download URL: tickle_cli-0.1.0.tar.gz
  • Upload date:
  • Size: 31.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for tickle_cli-0.1.0.tar.gz
Algorithm Hash digest
SHA256 fadea4a6f605c8cdc0638cad808efb137ac4abc9257cdaf46144d1905d6600da
MD5 f33702bae996bf12be2ec065fdc4aa8b
BLAKE2b-256 d4c85a86e8bdecc11f31cdfbe813ae91f7732651befb7bbb07d42869a9f3cd98

See more details on using hashes here.

File details

Details for the file tickle_cli-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: tickle_cli-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 18.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.2

File hashes

Hashes for tickle_cli-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 da0ba35ebbcb8ba583807d6dc3e3dfc845966dcbe40f83091d3bf092c335f617
MD5 57d46d5bed6d122c79ce429d9c4f29b0
BLAKE2b-256 fbb639ac5711668c28198925db35c87eebcc6dbf6085abc952d8e4b8787781fe

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