Package names differ between every manager in the chain, and frequently differ from the CLI binary name. Never guess — always verify against the authoritative sources below.
If a lookup returns nothing, the package is not available via that manager. Do not fabricate a name. Move down the priority chain.
Prefer a live query over a web page. On the user's own machine the managers are right there, and a local query is faster, offline-capable, and exactly matches the channel/commit the host will actually resolve against:
nix search nixpkgs <term> # authoritative for this host's nixpkgs
nix eval --raw nixpkgs#<pkg>.name # confirm an attribute path resolves
guix search <regex> # authoritative for this host's Guix
brew search <regex>
flatpak search <term>
snap find <term> # read-only, no root neededIf the harness exposes a package-search tool or MCP server for the manager (a NixOS-aware search server, for example), prefer it over scraping the web UI — it is current, structured, and cheaper than fetching HTML.
Fall back to the web pages below when no local manager is installed or the host is offline from the registry but you still need the canonical name.
- Online: https://packages.guix.gnu.org/
- Direct page pattern:
https://packages.guix.gnu.org/packages/<n>/ - "Couldn't find any package named …" means the package is not packaged.
- Direct page pattern:
- CLI:
guix search <regex>orguix package -s <regex>
- Online: https://search.nixos.org/packages
- CLI:
nix search nixpkgs <tool-name>- Extract the attribute name after
legacyPackages.x86_64-linux. - Confirm it resolves:
nix eval --raw nixpkgs#<pkg>.name
- Extract the attribute name after
- NixOS / Home Manager options (needed when proposing a Band C edit): https://search.nixos.org/options, https://home-manager-options.extranix.com/
- The same attribute names are what go into
environment.systemPackages/home.packages— see declarative.md.
- npm (npx): https://www.npmjs.com/
- Direct page pattern:
https://www.npmjs.com/package/<n>
- Direct page pattern:
- PyPI (uvx / pipx run): https://pypi.org/
- Direct page pattern:
https://pypi.org/project/<n>/
- Direct page pattern:
- Confirm the package exposes a CLI / console-script before running. For
Python, when the command name differs from the distribution use
uvx --from <pkg> <command>.
- Online: https://crates.io/
- Direct page pattern:
https://crates.io/crates/<n>
- Direct page pattern:
- CLI:
cargo search <n> - Important: the crate name and the installed binary name often
differ (e.g. the
fd-findcrate installs a binary namedfd). Check the crate's README before assuming.
- Online: https://formulae.brew.sh/
- Direct page pattern:
https://formulae.brew.sh/formula/<n>
- Direct page pattern:
- CLI:
brew search <regex> - Casks (macOS GUI apps) are separate: https://formulae.brew.sh/cask/
- Online: https://flathub.org/
- CLI:
flatpak search <term> - App-ids are reverse-DNS (e.g.
org.inkscape.Inkscape,com.github.tchx84.Flatseal). - Flathub is strongly biased toward GUI apps. Most CLI tools are not on Flathub — only use Flatpak when a confirmed app-id exists.
- Authoritative: the upstream project's own releases (GitHub Releases or the
project download page) — that is where the correct
*.AppImageasset URL lives. - Catalogue: https://appimage.github.io/ (AppImageHub) — searchable index of apps that ship an AppImage.
- Prefer an asset with a published checksum/signature and verify it when offered.
- Online: https://snapcraft.io/
- Direct page pattern:
https://snapcraft.io/<n>
- Direct page pattern:
- CLI:
snap find <term> - Many snaps are community-maintained with no upstream endorsement — prefer a higher-ranked manager whenever one has the package.
Rough rules only. Always verify the exact name via the lookup sources above.
| Aspect | Guix | nixpkgs | Cargo | Homebrew |
|---|---|---|---|---|
| Python interpreter | python |
python3 |
— | python@3.12 |
| Python lib X | python-X |
python3Packages.X |
— | python-X (rare) |
| Node runtime | node |
nodejs |
— | node |
| Typical attr style | flat name | dotted path (a.b.c) |
flat crate name | flat formula name |
| Binary vs package | usually matches | usually matches | often differs | usually matches |
When names diverge (especially for language ecosystem wrappers, legacy aliases, and Rust crates whose binary differs from the crate name), look each one up individually.
- Guix names used in this skill's examples have been confirmed against https://packages.guix.gnu.org/.
- Cargo crates have been confirmed against https://crates.io/.
- Homebrew formulae have been confirmed against https://formulae.brew.sh/.
- Flatpak and Snap examples use placeholder
<app-id>/<pkg>because Flathub is dominated by GUI apps and Snap CLI packages are often upstream-disowned (e.g. upstreamripgrepexplicitly discourages the snap).