towl 0.1.0

A fast CLI tool to scan codebases for TODO comments and output them in multiple formats
Documentation

towl 🦉

TODOOwl

A fast command-line tool that scans your codebase for TODO comments and outputs them in various formats (JSON, CSV, Markdown, TOML, and more).

Features

  • 🔍 Smart Detection: Finds TODO, FIXME, HACK, NOTE, and BUG comments
  • 📁 Multiple Output Formats: JSON, CSV, Markdown, TOML, Terminal table
  • 🎯 Filtering: Filter by TODO type
  • Fast: Built with Rust for maximum performance
  • 🔧 Configurable: Customize file extensions, patterns, and exclusions
  • 📍 Context-Aware: Shows surrounding code and function context

Installation

cargo install towl

Quick Start

# Scan current directory
towl scan

# Output to JSON file
towl scan -f json -o todos.json

# Filter by type
towl scan -t todo

# Initialize config
towl init

# Show current config
towl config

Usage

towl scan [OPTIONS] [PATH]

Options:
  -f, --format <FORMAT>       Output format [default: terminal]
                              [possible values: table, json, csv, toml, markdown, terminal]
  -o, --output <OUTPUT>       Output file path (required for json, csv, toml, markdown)
  -t, --todo-type <TYPE>      Filter by TODO type
                              [possible values: todo, fixme, hack, note, bug]
  -v, --verbose               Enable verbose output

towl init [OPTIONS]

Options:
  -p, --path <PATH>           Config file path [default: .towl.toml]
  -F, --force                 Overwrite existing config file

towl config                   Show current configuration

Configuration

Create a .towl.toml file in your project root (or run towl init):

[parsing]
file_extensions = ["rs", "toml", "json", "yaml", "yml", "sh", "bash"]
exclude_patterns = ["target/*", ".git/*"]
include_context_lines = 3

[github]
owner = "your-github-username"
repo = "your-repo-name"

The GitHub token can be set via the TOWL_GITHUB_TOKEN environment variable. Owner and repo are auto-detected from the git remote on towl init.

License

MIT