1
Fork 0
mirror of https://github.com/benkoppe/nixsearch synced 2026-06-09 20:00:40 -07:00
No description
  • Rust 90.3%
  • JavaScript 6.2%
  • CSS 2.7%
  • Nix 0.8%
Find a file
2026-06-08 09:07:22 -07:00
.github/workflows ci: fix Komodo production environment lookup 2026-05-28 13:46:35 -07:00
assets feat: Add hero-notext asset 2026-05-29 09:27:29 -07:00
crates fix(ops): root runtime paths before nix gc 2026-06-08 09:07:22 -07:00
fixtures feat: show package programs in modal 2026-05-27 10:53:08 -07:00
nix feat(web): vendor datastar with nix & serve locally 2026-05-31 14:14:35 -07:00
.envrc Add basic nix flake w/ cargo devshell 2026-05-16 12:54:37 -04:00
.gitignore chore: Add DS_Store to gitignore 2026-05-28 20:12:49 -07:00
Cargo.lock feat(ops): add production cleanup maintenance 2026-06-08 07:37:01 -07:00
Cargo.toml feat(service): extract search service to separate crate 2026-05-31 15:12:54 -07:00
deny.toml Package with nix 2026-05-24 01:33:13 -04:00
flake.lock feat(web): vendor datastar with nix & serve locally 2026-05-31 14:14:35 -07:00
flake.nix Write flake description 2026-06-02 14:32:45 -07:00
GUIDELINES.md Add basic coding guidelines 2026-05-16 12:38:18 -04:00
LICENSE Add MIT License 2026-05-29 15:41:00 -04:00
nixsearch.example.toml feat(ops): add production cleanup maintenance 2026-06-08 07:37:01 -07:00
PLAN.md chore: Rename to nixsearch 2026-05-26 08:15:05 -04:00
README.md Create README.md with project details 2026-05-29 13:10:40 -04:00

nixsearch

The Nix ecosystem has thousands of packages and options. Many solutions exist to help with rummaging through these options, and after running into frustrations with them, this is mine.

Goals

  • Fast search core built with tantivy
    • Support a wide array of producer strategies, so many data sources can be easily mixed together
  • Magical web frontend leveraging Datastar
  • MCP frontend, to easily feed agents with options & source code

Development

This section should be expanded on. But utilize the devenv defined in this flake with nix develop .#. Then, the cli can be run with cargo run -p nixsearch -- <command>.

Inspirations

This section can also be though of as "Motivations", since these past projects are what led to nixsearch.

  • nixos-search: The official solution. Limited to primarily Nixpkgs & NixOS options.
  • Searchix: I was a heavy Searchix user, and nixsearch is really just exactly what I wanted out of Searchix.
    Some key differences are:
    • Reliability
      • I would have frequent issues loading pages on Searchix, especially on unreliable internet
    • Better search algorithm
      • Tantivy provides a very strong search foundation, allowing nixsearch to resemble the powerful Grasshopper-powered search of nixos-search without compromises.
    • Refs as a primitive
      • Searchix doesn't have a solution to deal with multiple refs of the same source, such as 25.11 and unstable.
  • NuschtOS/search: Another solution that focuses on building everything statically.

AI Disclosure

AI was utilized heavilty in the development of this project. But LLMs still can't manage to do even a search bar on their own, so nearly all code has gone through human eyes and hands. See the PLAN.md document to understand how context was initially scaffolded for this codebase.

Thanks for checking out nixsearch!