18 releases

0.2.1 Feb 17, 2023
0.2.0 Feb 10, 2023
0.1.81 Feb 4, 2023
0.1.2 Jan 31, 2023

#1111 in Command line utilities

MIT license

251 lines


Fancy a game of Roulette?


  • spin the wheel with roulette
  • whatever TODO, FIXME, or type error you get, you must fix!
  • total number of TODOs, FIXMEs, or type error must go down

Inspired by (i.e. copied from) Andreas Kling's FIXME Roulette

Installation and Usage

cargo install fixme-roulette

Once that is done, navigate to the root of your directory and run


and you'll get something like this!

Number of 'pockets': 13
README.md:8:- whatever TODO, FIXME, or type error you get, you must fix!

For more options,

$ roulette --help

Spin the wheel, get a task!

Usage: roulette [OPTIONS]

  -p, --path <PATH>
          Path to directory (defaults to `.`). Note that `clippy` and `git grep` don't take a path, and require you to run `roulette` where you want the commands to be executed
  -c, --commands <COMMANDS>...
          Commands to run (any of git_grep, rip_grep, grep, mypy, ruff, flake8) - defaults git grep and mypy
  -g, --grep-keywords <GREP_KEYWORDS>...
          Optional keywords for grep: defaults to "TODO" and "FIXME"
          Print supported commands
          Print out failed commands (instead of silently ignoring, good for debugging)
          Print out every result, useful for debugging
  -h, --help
          Print help
  -V, --version
          Print version

Configuration files

Run roulette in the same directory as the configuration files, and the tools (e.g. mypy or ruff) should be able to find it.

Supported Commands

  • git_grep
  • rip_grep
  • grep
  • mypy
  • ruff
  • flake8
  • clippy

Soon-to-be Supported Commands

What else? Let me know.


~95K SLoC