pixi-browse
An interactive terminal UI for browsing conda package metadata. Explore packages, versions, dependencies, and more from any conda channel — right from your terminal.
Features
- Browse packages from any conda channel (conda-forge, prefix.dev, etc.)
- Substring search to quickly filter through thousands of packages, as well as through a package's versions, dependencies and files
- Inspect versions grouped by platform with collapsible sections
- View detailed metadata including dependencies, license, checksums, build info, and timestamps
- Inspect package contents — file listings and
about.jsonextracted directly from artifacts - Spot repodata patches — diff an artifact's original
index.jsonagainst the patched repodata served by the channel - Compare artifacts — metadata, dependencies, and file lists of two builds side by side, with optional file diffs
- Clickable links to source repositories, maintainer GitHub profiles, and provenance commits
- Download artifacts directly to your working directory
- Vim-style keybindings for fast keyboard-driven navigation
Installation
From conda-forge
pixi global install pixi-browse
# or use without installation
pixi exec pixi-browse
From PyPI
uv tool install pixi-browse
# or use without installation
uvx pixi-browse
Optional: file diffs
Comparing two artifacts (C) can show a side-by-side diff of a file that
differs between them. This uses
textual-diff-view, which is
AGPL-3.0 licensed and therefore not installed by default:
pixi global install 'pixi-browse[extras=diff]'
pixi exec -s 'pixi-browse[extras=diff]' pixi-browse
# or from PyPI
uv tool install 'pixi-browse[diff]'
uvx 'pixi-browse[diff]'
Without it, the Diff left / right action in the compare view asks for this
package.
Usage
# Browse configured default channels (conda-forge if unset) across all platforms
pixi-browse
# Read a specific config file
pixi-browse --config ./config.toml
# Browse a different channel
pixi-browse -c https://prefix.dev/conda-forge
# Browse several channels at once
pixi-browse -c conda-forge -c bioconda
# Restrict to specific platforms
pixi-browse -p linux-64 -p osx-arm64
# Start with a MatchSpec query applied
pixi-browse -m "numpy >=2"
# Combine channel, platform, and MatchSpec filters
pixi-browse -c https://prefix.dev/conda-forge -p linux-64 -m "python >=3.13"
# Show version
pixi-browse --version
CLI Options
| Option | Description |
|---|---|
-c, --channel |
Startup channels (repeat for multiple; overrides configured defaults) |
--config |
Config file to read instead of the default locations |
-p, --platform |
Platforms to include (repeat for multiple) |
-m, --matchspec |
MatchSpec query to apply at startup |
--version |
Show version and exit |
--help |
Show help and exit |
Configuration
Without --config, pixi-browse loads Pixi's default configuration locations
through rattler, including shared rattler configuration. These include system
configuration, the platform's user configuration directory (and
XDG_CONFIG_HOME), and $PIXI_HOME/config.toml or ~/.pixi/config.toml.
Later files override earlier ones; missing default files are skipped.
--config <path> reads only that file and reports missing or invalid files.
default-channels = ["conda-forge", "bioconda"]
[mirrors]
"https://conda.anaconda.org/conda-forge" = ["https://prefix.dev/conda-forge"]
[repodata-config]
disable-sharded = true
The shared network client applies mirrors, S3 options, authentication, proxy,
and TLS settings to repodata, package previews, and downloads. Repodata format
settings (including per-channel overrides) and concurrency.downloads are
applied to the gateway. Who-needs queries scan the full channel repodata,
even when sharded repodata is enabled for browsing.
Explicit -c flags replace default-channels. If neither is set, pixi-browse
uses conda-forge.
Keybindings
Navigation
| Key | Action |
|---|---|
j / k |
Move selection or scroll |
h / l |
Focus left / right pane |
gg / G |
Jump to top / bottom |
Ctrl+u / Ctrl+d |
Page up / down |
Enter |
Open / select |
Esc |
Back or close current overlay |
App
| Key | Action |
|---|---|
? |
Show help |
/ |
Search packages, versions, dependencies, or files |
p |
Open platform selector |
c |
Select channels |
C |
Compare selected artifact (in versions view) |
m |
Query packages with a MatchSpec |
w |
Query packages that need a package |
d |
Download selected artifact (in versions view) |
q |
Quit |
Channel selector
c opens a dialog with the channels being browsed. The package list and the
MatchSpec and who-needs queries run against all of them.
| Control | Action |
|---|---|
| Text field | Type a channel name or URL, Enter adds it |
✕ button |
Remove that channel (the last one cannot be removed) |
Apply button |
Load the listed channels and the one typed, if any |
Up / Down, Tab |
Move between the ✕ buttons, the field and Apply |
Esc |
Cancel |
Development
This project is managed by pixi.
git clone https://github.com/pavelzw/pixi-browse
cd pixi-browse
pixi run pre-commit-install
Running Tests
pixi run test
The tests run the app against small offline conda channels (conda-forge and
bioconda) made of real artifacts listed in tests/fixtures/channel_artifacts.toml.
They are downloaded into the git-ignored tests/fixtures/channels/ directory on
first use (or ahead of time with pixi run fetch-test-channel) and verified by
SHA256, so later runs work offline. TUI screens are checked with
pytest-textual-snapshot.
The app draws in ANSI colors, so the terminal palette alone decides how it looks.
Every screen is therefore snapshotted twice from a single app run, with the two
palettes pixi run demo records the demos with (rose-pine-moon and
rose-pine-dawn), side by side as
tests/__snapshots__/<module>/<test>.{dark,light}.svg.
After an intentional UI change, review snapshot_report.html and accept the new
screenshots with:
pixi run snapshot-update
To review committed snapshot changes against main without rerunning the tests:
pixi run snapshot-report
Linting
pixi run pre-commit-run
Metadata
Release files for pixi-browse 0.0.18
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| pixi_browse-0.0.18.tar.gz | 20.2 MB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| pixi_browse-0.0.18-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 20.3 MB
Release files / pixi_browse-0.0.18.tar.gz
| Download URL | pixi_browse-0.0.18.tar.gz |
|---|---|
| Size | 20.2 MB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
8aec015375eaeb774c2d89e75dfa5474c35c9c4af876293503303430be00b268
|
|
BLAKE2b-256 checksum How to use checksums |
b455e31b8ad305f7ea9639a6b38f7e1aa4924aecde430a101990560b5ef0f91a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency logRelease files / pixi_browse-0.0.18-py3-none-any.whl
| Download URL | pixi_browse-0.0.18-py3-none-any.whl |
|---|---|
| Size | 82.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
bfa3eb3ce4ccc459aa397aaa7d7cc14733f1c9a14eae514fc878b570c99dde0a
|
|
BLAKE2b-256 checksum How to use checksums |
6d54a65dcaa24542f5bc45fb37ea3acd5fa58a104be5777a685907c45c494c05
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 20, 2026.
Transparency log