பெட்டி (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
