Track, filter, and navigate code comment anchors like TODO, NOTE and FIXME directly from your terminal.
- Fast workspace scanning with low memory usage
- Built-in mark detection (TODO, FIXME, NOTE, WARN, ERROR, INFO)
- Filters by mark, language, path, and folder
- Sort and group by mark, language, path, or folder in pipeline
- Respects
.gitignoreand common build/artifact directories - Cancellation and progress support
Plan to do:
- Support custom marks and ignore glob
Currently, we only support to install by cargo.
cargo install doto --lockedOr, using Homebrew for both macOS and Linux.
brew install utakotoba/tap/dotoScan the current directory:
# Scan the current directory.
dotoScan specific paths:
# Scan only the specified paths.
doto crates/cli crates/coreLimit to specific marks or languages:
# Filter to specific marks and languages.
doto --filter-mark TODO --filter-mark FIXME --filter-language rsSort and group via a pipeline of stages. Stages are: mark, language, path, folder.
# Group by mark, then language, then folder.
doto --sort mark,language,folderStage overrides only apply when that stage exists in the pipeline:
# Override mark priority inside the mark stage.
doto --sort mark --sort-mark-priority "FIXME=0,TODO=1"
# Change language grouping order.
doto --sort language --sort-lang-order name
# Path grouping order.
doto --sort path --sort-path-order desc
# Folder grouping: depth relative to scan root, and order.
doto --sort folder --sort-folder-depth 2 --sort-folder-order descOn a Chromium-sized repo (~7M SLOC), scanning completes in ~3s with ~55MB peak memory on a modern laptop.
We are going to add detailed benchmark here...
Copyright © 2026 Ly (Ling Yu). Licensed under the MIT.
