பெட்டி (peṭṭi): noun — A word to describe a box, case, or chest used for storage in Tamil
A TUI view that auto-detects Homebrew, casks, npm, and pip packages you have personally installed. Comes with filtering, dependency signals, export, live theme switching, and read-only uninstall helpers.
brew install pettiIf you prefer the explicit two-step form:
brew tap 707/homebrew-petti
brew install 707/petti/petticurl -fsSL https://raw.githubusercontent.com/707/petti/main/scripts/install.sh | shInstall to ~/.local/bin instead:
curl -fsSL https://raw.githubusercontent.com/707/petti/main/scripts/install.sh | sh -s -- --localgit clone https://github.com/707/petti.git
cd petti
go build -o petti ./cmd/petti
./pettigo build -o petti ./cmd/petti
./pettigo run ./cmd/petti./pettiPetti detects packages from supported managers, shows them in a TUI, and lets you filter, inspect, sort, export, and review uninstall commands without changing your system.
petti --version./petti --layout full
./petti --layout compact
./petti --theme default
./petti --theme default-light
./petti --theme ember-dark
./petti --theme frost-light
./petti --filter gh
./petti --version
./petti --export-txt packages.txt
./petti --export-json packages.json| Key | Action |
|---|---|
/ | Start search |
f | Source filter popup |
a | Action/status filter popup |
u | Updated filter popup |
s | Cycle sort |
V | Column/select mode |
Enter | Toggle detail pane |
i | Open package info panel |
d | Copy uninstall command |
t | Cycle themes live |
e | Export visible packages |
r | Refresh package data |
? | Toggle help |
q | Quit |
j / k or arrows | Move selection |
g / G | Jump to top / bottom |
PgUp / PgDn | Page up / down |
- Click a row to select it.
- Click the selected row again to toggle package info.
petti currently ships with 6 built-in runtime themes:
default-darkdefault-lightember-darkember-lightfrost-darkfrost-light
The aliases default, ember, and frost start on the dark variant. Themes can be changed at launch with --theme or cycled live with t.
- Homebrew formulae
- Homebrew casks
- npm global packages
- pip / pip3 packages
The DEPENDANCY column uses:
Ywhen the package is a dependency of another installed packageNwhen it is not currently a dependency of another installed package-when the app cannot determine that safely
Current intended target systems:
- macOS
- Linux
- WSL2
Notes:
- Homebrew support depends on
brewbeing installed and available onPATH. - On Linux and WSL2, npm and pip are the most direct package sources; Homebrew works if Linuxbrew is installed.
- Native Windows is not the first-class target yet.
You can export the currently visible package list to text or JSON:
./petti --export-txt packages.txt
./petti --export-json packages.jsonFrom inside the TUI, press e and choose the format.
cmd/
petti/ # entrypoint
internal/
app/ # app state, filtering, sorting
cli/ # CLI argument handling and program startup
collectors/ # Homebrew, cask, npm, pip collection and metadata
export/ # txt/json export
model/ # shared package models
tui/ # Bubble Tea UI, rendering, themes, input handling
docs/
tdd-log.md # implementation log
session-memory.md # working notes
scripts/ # repo scripts
make buildmake test
make cover-checkgo run ./cmd/petti- npm distribution via a scoped package
- broader metadata coverage per package manager
- duplicate flags
- Ability to directly install and uninstall via petti
MIT
