All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.
0.4.0 - 2026-04-07
- TTY auto-detection: pretty output in terminal, YAML in pipes (like
ls,grep) --scoreflag: include relevance scores in search results--yamlflag: force YAML output (complement to--jsonand--pretty)searchsubcommand: explicit alternative to positional query (clidex search "csv" --category data)categoriessubcommand with name filter (clidex categories git)trending --updated-sincefilter: show popular tools updated after a given date- Auto-download index on first search in interactive terminals
- Empty result suggestions: "Did you mean:", partial word re-search tips
- Install command shown in pretty search output (
$ brew install jq) - Description truncation based on terminal width
- Compare table adapts column width to terminal size
- 34 unit tests for core functions (edit_distance, word_boundary_match, intent_coverage, popularity_boost, etc.)
SearchIndex::hybrid_search()method: semantic path now uses cached BM25 engine
- Category filter false positives:
contains()→ word-prefix + hierarchical + leaf segment matching- "File" no longer matches "Text Filters"
- "docker" now matches "Development > Docker" (leaf segment)
- Exit code semantics: empty search/browse results → exit 0, lookup not-found → exit 1
- Non-interactive auto-download: CI/pipes get error message instead of silent network calls
to_lowercase()cached outside per-tool loop (avoids redundant computation)- Standalone
hybrid_search()deprecated in favor ofSearchIndex::hybrid_search()
- Default output: TTY → pretty, pipe → YAML (previously always YAML)
- Score output uses
SearchResultOutputwrapper instead of injecting into Tool schema trending --sincerenamed to--updated-sincefor clarity (filters by repo activity, not popularity growth)trendingdescription changed to "Show popular tools (sorted by GitHub stars)"- README rewritten: quickstart section, unified tool count (5,000+), new features documented
- SearchIndex used in CLI main entry point (both lexical and semantic paths)
0.3.0 - 2026-04-05
- Levenshtein edit distance for typo correction (
ripgrpe→ripgrep,zoxdie→zoxide) - crates.io category-based discovery (command-line-utilities, development-tools, etc.)
- PyPI/pipx discovery with 39 seed Python CLI tools
pipxinstall method in output schema- Real index integration tests (5,277 tools): ranking, precision, typo, relevance, performance
- Index coverage tests: 67 must-have tools, category breadth, ecosystem presence, regression guard
- Adversarial test fixtures: 8 competing tools (ag, gitui, lsd, curlie, difftastic, dasel, yq, navi)
assert_ranks_abovehelper for ranking order verification
- Fuzzy anchor too strict — high-confidence fuzzy matches now pass without substring anchor
- Synonym-only matches killed by
covered == 0gate — now checks expanded terms intent_coveragesubstring matching — replaced with token-awareword_boundary_matchdesc_bonusaligned withword_boundary_matchfor scoring consistency- Edit distance skipped for multi-word queries (performance: prevents O(n*m) on 5,000+ tools)
- Recall test threshold raised from 85% to 95%
- Test fixture expanded from 20 to 28 tools (with adversarial competitors)
- Many
top 5assertions tightened totop 3 - Synonym scoring reflected in ranking (0.5x weight), not just gate pass
- Edit distance threshold scaled by query length (4-5 chars: ≤1, 6+ chars: ≤2)
- README and llms.txt updated with current search algorithm and data sources
0.2.0 - 2026-03-14
- crates.io enrichment (42 cargo install commands)
- npm enrichment (12 npm install -g commands)
- Published to crates.io
- Windows installation support
--prettyflag for human-readable output
- Default output format from Pretty to YAML (agent-first design)
- Replaced
--yamlflag with--prettyflag - Improved install.sh to detect ~/.cargo/bin and warn about duplicate binaries
0.1.0 - 2026-03-14
- BM25 search with synonym expansion, category boost, and popularity boost
- awesome-cli-apps parser (427 tools)
- Homebrew enrichment (brew install commands)
- GitHub API integration (stars, last_updated)
- Pretty-printed output format
- Subcommands: search, info, compare, trending, categories, stats, update
- Cross-platform binaries (Linux x86/arm, macOS x86/arm, Windows)
- install.sh for Linux/macOS
- MIT license