Free open source tool

ticket-tag-lint

Analyse a ticket export and expose tag sprawl: near-duplicate tags, one-off tags, dead tags and naming-convention violations, with a ready-to-apply merge plan that maps every messy tag to a canonical one.

View source on GitHub

Run ticket-tag-lint in your browser

Runs fully in your browser, files never leave your device.

Drag and drop your tickets CSV and optional config JSON here, or use the pickers below.

What it does

Frequency per tag counted in tickets, plus the last date each tag was used
Near-duplicate clusters built from case, separator and plural variants and edit distance 1 pairs, with the most frequent form picked as canonical
Convention violations: tags that do not match the configured naming pattern (default lowercase snake_case)
Dead tags unused for more than the configured threshold (default 90 days) before the reference date
One-off tags used on exactly one ticket
Outputs tag-report.md and a ready-to-apply tag-merge-plan.csv, fully offline

Install and usage

Requires Node.js 20 or later. There are no dependencies to install.

git clone https://github.com/aamirtechs/ticket-tag-lint.git
cd ticket-tag-lint
node src/cli.js examples/tickets.csv --config examples/config.json --out-dir output

This writes tag-report.md and tag-merge-plan.csv to the output directory. Command line flags override the optional config file.