Repository navigation
The first tagged dmut release brings offline generation with bounded memory, clearer DNS diagnostics, and an easier way to explore the existing rules.
Highlights
- Fix offline
--save-genmemory growth (#15): stream inputs and use temporary files for sorting and deduplication. Preserve the previous output on reported failures or cancellation. - Fix false "no usable resolver" errors and retain query type, resolver, attempt count, timeout and underlying cause (#20).
- Add
--preview --explainto inspect a small offline sample and see the rule family and dictionary word behind each example.--preview-limitcontrols sampling. - Show useful completion and failure summaries, add examples to help, and provide Bash, Zsh, Fish and PowerShell completion scripts.
- Modernize dependencies, error handling and concurrent state, with CI across Linux, Windows and macOS.
- Extend the starter dictionary's years through 2050.
Download and run
Choose the archive for your operating system and architecture from the assets below. darwin means macOS; arm64 covers Apple Silicon, and amd64 covers Intel/AMD 64-bit systems. Verify the archive against its .sha256 file, then extract it. Go is not required to run the binary.
Each archive includes the executable, words.txt, README, changelog, MIT license and a completions/ directory. Use dmut.exe on Windows.
dmut --version
dmut -u test.example.com -d words.txt --preview --explainTo install from source with Go 1.27.1 or newer:
go install github.com/bp0lr/dmut@v1.0.0Upgrading from an older checkout
Legacy flag aliases remain supported. Invalid numeric arguments now fail explicitly. Results stay on stdout; summaries, diagnostics and progress use stderr. DNS failures after the configured attempts return a nonzero exit code and stop the run. Offline output is sorted within each input domain and deduplicated per domain.
Offline generation needs temporary disk space beside its destination. DNS mode still retains generated work in memory, and the historical wildcard/confirmation policy still uses a fixed resolver. Real DNS connectivity failures can still stop a run. See the README for these limitations and completion setup.
Validation
Cross-platform tests, Linux race checks, large-file memory regressions, shell completion checks, dependency checks and vulnerability checks passed. Six platform archives are provided with SHA-256 checksums.