PHPackages                             johninamillion/todo - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [CLI &amp; Console](/categories/cli)
4. /
5. johninamillion/todo

ActiveLibrary[CLI &amp; Console](/categories/cli)

johninamillion/todo
===================

A powerful CLI tool to scan your source code for open tasks — with user filtering, Git integration, and customizable reporting.

0.1.0(7mo ago)116MITPHPPHP ^8.3CI passing

Since Sep 27Pushed 7mo agoCompare

[ Source](https://github.com/johninamillion/todo)[ Packagist](https://packagist.org/packages/johninamillion/todo)[ RSS](/packages/johninamillion-todo/feed)WikiDiscussions master Synced 1mo ago

READMEChangelog (1)Dependencies (6)Versions (2)Used By (0)

ToDo
====

[](#todo)

### A powerful CLI tool to scan your source code for open tasks.

[](#a-powerful-cli-tool-to-scan-your-source-code-for-open-tasks)

[![Tests](https://github.com/johninamillion/todo/actions/workflows/tests.yml/badge.svg)](https://github.com/johninamillion/todo/actions/workflows/tests.yml)[![ToDos](https://github.com/johninamillion/todo/actions/workflows/todos.yml/badge.svg)](https://github.com/johninamillion/todo/actions/workflows/todos.yml)[![License](https://camo.githubusercontent.com/dbabff2b88dba16f289da0157cfb7a1f3349aed834d68d44296c06742aacacc5/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f6a6f686e696e616d696c6c696f6e2f746f646f)](https://github.com/johninamillion/todo/blob/master/LICENSE)[![Version](https://camo.githubusercontent.com/4bd6ffe89b236de1e8018cbc68b2426290d58b8d502294915be554d5dc54a358/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f6a6f686e696e616d696c6c696f6e2f746f646f)](https://packagist.org/packages/johninamillion/todo)

---

Table of Contents
-----------------

[](#table-of-contents)

- [Installation](#installation)
- [Features](#features)
- [Usage](#usage)
- [Development](#development)
- [License](#license)

---

Installation
------------

[](#installation)

Install the package globally or per-project via Composer:

```
composer require johninamillion/todo
```

You can also link the CLI binary directly:

```
chmod +x bin/todo
```

Features
--------

[](#features)

- Detects `BUG`, `FIX`, `TODO`, and `TEST` annotations in comments.
- Filter by:
    - keyword (`--keywords`)
    - type (`--bugs`, `--fixes`, `--tests` and `--todos`)
    - user (`--user` or `--me`)
- Git-aware:
    - Honors .gitignore by default
    - Use your Git username with `--me`
- Optional flags:
    - `--fail-on-bugs`, `--fail-on-fixes`
    - `--display-time`
    - `--include-dotfiles`, `--include-ignored`

Usage
-----

[](#usage)

Scan your current directory for all relevant tags:

```
./bin/todo
```

### Options

[](#options)

OptionDescription`[path]`Scan a specific directory (default: current)`--exclude=DIRS`Comma-separated list of directories to exclude`--keywords=...`Comma-separated list of keywords to match`--user=USERNAME`Only show entries assigned to a specific user`--me`Use your Git username to filter results`--bugs`Only show entries tagged with `BUG``--fixes`Only show entries tagged with `FIX``--tests`Only show entries tagged with `TEST``--todos`Only show entries tagged with `TODO``--display-time`Show the last modification time for each entry`--fail-on-bugs`Return non-zero exit code if any `BUG`s are found`--fail-on-fixes`Return non-zero exit code if any `FIX`es are found`--include-dotfiles`Include hidden files (e.g., `.env`, `.github`)`--include-ignored`Include files ignored by `.gitignore`### Example Comment Format

[](#example-comment-format)

Works with line comments:

```
// BUG @john-doe This is a critical issue.
// FIX @jane-dev Applied hotfix.
// TODO @backend-team Improve validation.
// TEST @qa-user Add coverage for edge case.
```

Also works with block comments:

```
/**
 * BUG @me Something is broken.
 * FIX @teammate Refactor needed.
 */
```

### Example Commands

[](#example-commands)

Scan with bug-only filter:

```
./bin/todo --bugs
```

Scan with custom keywords and show timestamps:

```
./bin/todo --keywords=security,performance --display-time
```

Scan only your assigned items (via Git):

```
./bin/todo --me
```

Fail build on any FIX or BUG:

```
./bin/todo --fail-on-bugs --fail-on-fixes
```

### Configuration via composer.json

[](#configuration-via-composerjson)

You may add these scripts for convenience:

```
{
    "scripts": {
        "todo": "./bin/todo --display-time",
        "todo:me": "./bin/todo --me --display-time"
    }
}
```

Development
-----------

[](#development)

### Analyze Code

[](#analyze-code)

To analyze your code for potential issues, you can run [phpstan](https://github.com/phpstan/phpstan):

```
composer code:analyse
```

### Apply Code-Styles

[](#apply-code-styles)

To ensure your code adheres to the coding standards, you can run the [php-cs-fixer](https://github.com/php-cs-fixer/php-cs-fixer).

```
composer code:format
```

### Run Tests

[](#run-tests)

To run the tests, make sure you have installed [phpunit](https://github.com/sebastianbergmann/phpunit) within the dev dependencies and then run:

```
composer test
```

Check the Test Coverage:

```
composer test:coverage
```

---

License
-------

[](#license)

This package is licensed under the MIT License. See the LICENSE file for full details.

*All Glory To God - The Father, The Son, and The Holy Spirit.*

###  Health Score

31

—

LowBetter than 68% of packages

Maintenance62

Regular maintenance activity

Popularity9

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity40

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Unknown

Total

1

Last Release

233d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/0ff389f6dcac477647cab83abc65187f135c0b615687bae3172f2bb28e9297a8?d=identicon)[johninamio](/maintainers/johninamio)

---

Top Contributors

[![johninamillion](https://avatars.githubusercontent.com/u/31989151?v=4)](https://github.com/johninamillion "johninamillion (6 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/johninamillion-todo/health.svg)

```
[![Health](https://phpackages.com/badges/johninamillion-todo/health.svg)](https://phpackages.com/packages/johninamillion-todo)
```

###  Alternatives

[illuminate/console

The Illuminate Console package.

12944.1M5.1k](/packages/illuminate-console)[crunzphp/crunz

Schedule your tasks right from the code.

2292.0M6](/packages/crunzphp-crunz)[crazywhalecc/static-php-cli

Build single static PHP binary, with PHP project together, with popular extensions included.

1.8k13.9k](/packages/crazywhalecc-static-php-cli)[madewithlove/license-checker

CLI tool to verify allowed licenses for composer dependencies

54449.8k21](/packages/madewithlove-license-checker)[statamic/cli

Statamic CLI Tool

7587.7k](/packages/statamic-cli)[civicrm/cv

CLI tool for CiviCRM

4219.8k](/packages/civicrm-cv)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
