Universal dependency manager TUI — one terminal, every package manager.
Project description
XYZ — Universal Dependency Manager
One terminal. Every package manager. No more context switching.
Quick Start · Features · Keybindings · Development · Contributing
What is XYZ?
XYZ is a terminal-based dependency manager that gives you a single interactive interface across your package managers. Instead of juggling pip list, brew info, and npm ls in separate sessions, XYZ aggregates everything into one searchable, actionable TUI — powered by AI.
Select an unfamiliar package and XYZ will tell you exactly what it is, why it's probably on your machine, and whether it's safe to remove. No browser. No tab switching. No guessing.
Features
Highlights
- Unified package list — aggregates installed packages from detected managers into one view
- Live search + manager filtering — substring filtering, manager pills, and orphan-only toggle
- Natural language AI search — prefix search with
?(e.g.,?AIor?database) to find packages by intent using Gemini - Safe package actions — update/delete with dry-run preview modal before confirmation
- Auto-refresh after actions — package list re-scans after updates/deletes
Intelligence
- Orphan detection (non-AI) — manager-native orphan checks for
pip,npm, andbrew - AI package explainer (streaming) — streamed Gemini explanations in the detail pane
- Smart cleanup recommendations — Gemini-powered remove/review suggestions
- Dependency graph view — dependency graph preview + fullscreen modal (when
mermaid-asciiis available) - CVE scan — Gemini Search-grounded vulnerability summary for selected package
Keybindings
| Key | Action |
|---|---|
↑/↓ |
Navigate package list |
u |
Update selected package |
d |
Delete selected package |
U |
Upgrade all outdated packages |
a |
Fetch AI explanation |
s |
Scan selected package for CVEs |
g |
View dependency graph |
o |
Toggle orphan packages filter |
m |
Cycle manager filter |
c |
Run smart cleanup analysis |
/ |
Focus search bar (prefix with ? for AI search) |
esc |
Blur search or close modals |
ctrl+q |
Quit |
Supported Package Managers
| Manager | Platform |
|---|---|
pip |
Python (all platforms) |
brew |
macOS / Linux |
npm |
Node.js (all platforms) |
Current release auto-detects and integrates: pip, brew, and npm.
Getting Started
Requirements
- Python 3.10+
- One or more of the supported package managers installed
Install (Users)
XYZ inspects the packages available to your current Python environment. For most users, that means installing into your system or user site (not a virtual environment) so XYZ can see the same packages you want to clean up.
pip install --user xyz-manager
Run
xyz
# or
python -m xyz
Gemini API Key (for AI explainer)
export GEMINI_API_KEY=your_key_here
xyz
Without a key, XYZ runs in offline mode: package listing/search/filtering and package actions remain available; AI features (AI search, explainer, smart cleanup, CVE scan) are disabled.
Development Setup
Clone and install
Create an isolated environment
For development, use a virtual environment so you do not pollute your system Python.
Option 1: venv
python -m venv .venv
source .venv/bin/activate
python -m pip install --upgrade pip
Option 2: uv
uv venv .venv
source .venv/bin/activate
git clone https://github.com/xyz-tui/xyz.git
cd xyz
pip install -e ".[dev]"
Run locally
xyz
# or
python -m xyz
Run tests
pytest
ruff check src/ tests/
mypy src/
Tech Stack
| Layer | Technology |
|---|---|
| Language | Python 3.10+ |
| TUI Framework | Textual |
| AI Integration | Google Gemini API |
| Package parsing | Native subprocess calls per manager |
| Distribution | pip / PyPI |
Roadmap
- v1.1 — Snapshot & restore (export full package state to
packages.toml, restore on new machine) - v1.2 — CVE security overlay via OSV API
- v1.3 — Duplicate detection (same package across multiple managers)
- v1.4 — Audit trail with install-reason annotations
- Post-MVP — expand manager coverage (
apt,pacman,bun,cargo,conda,pipx,gem,winget)
Contributing
We welcome contributions! Please see CONTRIBUTING.md for our development workflow and coding standards.
License
MIT. See LICENSE for the full text.
Team
| Name | Role |
|---|---|
| Minsu Kim | Maintainer |
| Adithya Nair | Contributor |
| Ryan Shankar | Contributor |
Originally built at BeaverHacks (May 2nd, 2026), now actively maintained as an open-source project.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file xyz_manager-0.1.1.tar.gz.
File metadata
- Download URL: xyz_manager-0.1.1.tar.gz
- Upload date:
- Size: 29.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
cce58ace3af38f7bed3478a6c6016595451b1d826037676319ad093e2ec87f36
|
|
| MD5 |
e3baa829f9fa9845d256d821375960c4
|
|
| BLAKE2b-256 |
7acc2f28f4510f3aab4ed4c8c7cbfc0fed338f40d15d70f3b6ea89d9db15a0c2
|
File details
Details for the file xyz_manager-0.1.1-py3-none-any.whl.
File metadata
- Download URL: xyz_manager-0.1.1-py3-none-any.whl
- Upload date:
- Size: 34.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.12.13
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
c5f3f54c8ead72860d4f4a062cc969f3c7e3a79a1312ddedf9446ee3d0054a99
|
|
| MD5 |
dc7a97ef358642c562830bae2cefb95e
|
|
| BLAKE2b-256 |
1190b637c4d4c63871b214690b8e61f19c5d3ed8deccf2843ffddbc4eb9ed77b
|