Skip to main content

XYZ — Universal Dependency Manager

Project Logo

One terminal. Every package manager. No more context switching.

Python TUI License PyPI CI

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., ?AI or ?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, and brew
  • 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-ascii is 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.

Metadata

Release files for xyz-manager 0.1.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for xyz-manager 0.1.1
File Size Uploaded
xyz_manager-0.1.1.tar.gz 29.8 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for xyz-manager 0.1.1
File Interpreter ABI Platform
xyz_manager-0.1.1-py3-none-any.whl Python 3 none any Details

Total release size: 64.0 kB

Release files / xyz_manager-0.1.1.tar.gz

Download URL xyz_manager-0.1.1.tar.gz
Size 29.8 kB
Tags Source
SHA-256 checksum
How to use checksums
cce58ace3af38f7bed3478a6c6016595451b1d826037676319ad093e2ec87f36
BLAKE2b-256 checksum
How to use checksums
7acc2f28f4510f3aab4ed4c8c7cbfc0fed338f40d15d70f3b6ea89d9db15a0c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release files / xyz_manager-0.1.1-py3-none-any.whl

Download URL xyz_manager-0.1.1-py3-none-any.whl
Size 34.3 kB
Tags Python 3
SHA-256 checksum
How to use checksums
c5f3f54c8ead72860d4f4a062cc969f3c7e3a79a1312ddedf9446ee3d0054a99
BLAKE2b-256 checksum
How to use checksums
1190b637c4d4c63871b214690b8e61f19c5d3ed8deccf2843ffddbc4eb9ed77b
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.12.13

Release history Release notifications | RSS feed

This release

0.1.1 This release

2 release files

0.1.0

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page