{"id":47247046,"url":"https://github.com/neur0map/glazepkg","last_synced_at":"2026-05-15T01:26:44.368Z","repository":{"id":343994744,"uuid":"1180024506","full_name":"neur0map/glazepkg","owner":"neur0map","description":"See all your installed packages in one place.","archived":false,"fork":false,"pushed_at":"2026-05-10T04:45:46.000Z","size":38216,"stargazers_count":521,"open_issues_count":14,"forks_count":19,"subscribers_count":9,"default_branch":"main","last_synced_at":"2026-05-10T06:45:25.289Z","etag":null,"topics":["apt","bubbletea","cargo","cli","cross-platform","dashboard","devtools","golang","homebrew","linux","macos","nix","npm","package-manager","pacman","pip","system-monitor","terminal","tui","windows"],"latest_commit_sha":null,"homepage":"","language":"Go","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/neur0map.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":"CONTRIBUTING.md","funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":".github/CODEOWNERS","security":null,"support":null,"governance":null,"roadmap":"ROADMAP.md","authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2026-03-12T16:12:19.000Z","updated_at":"2026-05-10T04:45:41.000Z","dependencies_parsed_at":null,"dependency_job_id":null,"html_url":"https://github.com/neur0map/glazepkg","commit_stats":null,"previous_names":["neur0map/glazepkg"],"tags_count":72,"template":false,"template_full_name":null,"purl":"pkg:github/neur0map/glazepkg","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neur0map%2Fglazepkg","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neur0map%2Fglazepkg/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neur0map%2Fglazepkg/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neur0map%2Fglazepkg/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/neur0map","download_url":"https://codeload.github.com/neur0map/glazepkg/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/neur0map%2Fglazepkg/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":33049889,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-05-13T13:14:54.681Z","status":"online","status_checked_at":"2026-05-14T02:00:06.663Z","response_time":57,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["apt","bubbletea","cargo","cli","cross-platform","dashboard","devtools","golang","homebrew","linux","macos","nix","npm","package-manager","pacman","pip","system-monitor","terminal","tui","windows"],"created_at":"2026-03-14T08:16:50.070Z","updated_at":"2026-05-15T01:26:44.317Z","avatar_url":"https://github.com/neur0map.png","language":"Go","funding_links":[],"categories":[],"sub_categories":[],"readme":"\u003cdiv align=\"center\"\u003e\n\n# GlazePKG (`gpk`)\n\n**See every package on your system — one gorgeous terminal dashboard.**\n\nA beautiful TUI that unifies **36 package managers** into a single searchable, snapshotable, diffable view.\nBuilt with [Bubble Tea](https://github.com/charmbracelet/bubbletea). Zero config. One binary. Just run `gpk`.\n\n[![CI](https://img.shields.io/github/actions/workflow/status/neur0map/glazepkg/ci.yml?style=for-the-badge)](https://github.com/neur0map/glazepkg/actions/workflows/ci.yml)\n[![Go](https://img.shields.io/github/go-mod/go-version/neur0map/glazepkg?style=for-the-badge\u0026color=00ADD8)](https://go.dev/)\n[![Release](https://img.shields.io/github/v/release/neur0map/glazepkg?style=for-the-badge\u0026color=4c1)](https://github.com/neur0map/glazepkg/releases)\n[![License: GPL-3.0](https://img.shields.io/badge/license-GPL--3.0-blue?style=for-the-badge)](LICENSE)\n[![Downloads](https://img.shields.io/github/downloads/neur0map/glazepkg/total?style=for-the-badge\u0026color=orange)](https://github.com/neur0map/glazepkg/releases)\n[![Stars](https://img.shields.io/github/stars/neur0map/glazepkg?style=for-the-badge\u0026color=yellow)](https://github.com/neur0map/glazepkg/stargazers)\n\n![demo](demo.gif?v=2026-05-10)\n\n\u003c/div\u003e\n\n---\n\n## Why?\n\nYou have `brew`, `pip`, `cargo`, `npm`, `apt`, maybe `flatpak` — all installing software independently. Knowing what's actually on your machine means running 6+ commands across different CLIs with different flags and output formats.\n\n**GlazePKG fixes this.** One command, one view, every package. Track what changed over time with snapshots and diffs. Export everything to JSON for backup or migration.\n\n## Features\n\n- **36 package managers** — brew, pacman, AUR, apt, dnf, snap, pip, pipx, uv, cargo, go, npm, pnpm, bun, flatpak, MacPorts, pkgsrc, opam, gem, pkg, composer, mas, apk, nix, conda/mamba, luarocks, XBPS, Portage, Guix, winget, Chocolatey, Scoop, NuGet, PowerShell modules, Maven, Windows Update\n- **Instant startup** — scans once, caches for 10 days, opens in milliseconds on repeat launches\n- **Fuzzy search** — find any package across all managers instantly with `/`\n- **Package operations** — upgrade, remove, search, and install packages without leaving the TUI\n- **Multi-select** — batch upgrade or remove with smart sudo batching\n- **Snapshots \u0026 diffs** — save system state, diff to see what changed\n- **Update detection** — `↑` indicator for packages with available updates\n- **Export** — dump to JSON or text for backup, migration, or dotfile tracking\n- **Zero dependencies** — single static Go binary, cross-platform\n\n## Install\n\n### Homebrew (macOS / Linux)\n\n```bash\nbrew install neur0map/tap/gpk\n```\n\n### Arch Linux (AUR)\n\n```bash\nyay -S gpk-bin\n```\n\n### Go\n\n```bash\ngo install github.com/neur0map/glazepkg/cmd/gpk@latest\n```\n\n### Pre-built binaries\n\nGrab a binary from [releases](https://github.com/neur0map/glazepkg/releases) for macOS (ARM/Intel), Linux (x64/ARM), or Windows (x64/ARM).\n\n\u003cdetails\u003e\n\u003csummary\u003eBuild from source\u003c/summary\u003e\n\n```bash\ngit clone https://github.com/neur0map/glazepkg.git\ncd glazepkg \u0026\u0026 go build ./cmd/gpk\n```\n\nIf `gpk` is not found after installing via `go install`, add Go's bin directory to your PATH:\n\n```bash\nexport PATH=\"$PATH:$HOME/go/bin\"\n```\n\n\u003c/details\u003e\n\n## Quick Start\n\n```\ngpk              Launch TUI\ngpk update       Self-update to latest release\ngpk version      Show current version\ngpk --help       Show keybind reference\n```\n\nJust run `gpk` — navigate with `j`/`k`, switch managers with `Tab`, search with `/`, press `s` to snapshot, `d` to diff, `e` to export. Press `?` for the full keybind reference.\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eKeybindings\u003c/strong\u003e\u003c/summary\u003e\n\n| Key | Action |\n|-----|--------|\n| `j`/`k`, `↑`/`↓` | Navigate |\n| `g` / `G` | Jump to top / bottom |\n| `Ctrl+d` / `Ctrl+u` | Half-page down / up |\n| `PgDn` / `PgUp` | Page down / up |\n| `Tab` / `Shift+Tab` | Cycle manager tabs |\n| `f` | Cycle size filter |\n| `/` | Fuzzy search |\n| `Enter` | Package details |\n| `u` (detail) | Upgrade package |\n| `x` (detail) | Remove package |\n| `d` (detail) | View dependencies |\n| `h` (detail) | Package help/usage |\n| `e` (detail) | Edit description |\n| `i` | Search + install packages |\n| `m` | Toggle multi-select mode |\n| `Space` (multi-select) | Toggle package selection |\n| `s` | Save snapshot |\n| `d` | Diff against last snapshot |\n| `e` | Export (JSON or text) |\n| `r` | Force rescan |\n| `?` | Help overlay |\n| `q` | Quit |\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003ePackage Operations\u003c/strong\u003e\u003c/summary\u003e\n\n### Upgrade (`u` in detail view)\n\nOpen a package with `Enter`, then press `u`. A confirmation modal shows the exact command. Privileged managers (apt, pacman, dnf, snap, apk, xbps) include a password field for sudo. The upgrade runs in the background while you keep using the TUI.\n\n### Remove (`x` in detail view)\n\nOpen a package with `Enter`, then press `x`. Managers that support it (apt, pacman, dnf, xbps) offer two modes: remove package only, or remove package with orphaned dependencies. If the package is required by other packages, a warning is shown before proceeding.\n\n### Search + Install (`i`)\n\nPress `i` from the package list to open the search view. Type a query and results stream in from all installed managers in parallel. Results are deduplicated by name — expand a row to see all available sources and versions. Press `i` on a result to install it. Already-installed packages are marked.\n\n### Multi-Select (`m`)\n\nPress `m` to enter selection mode. Use `Space` to toggle packages, navigate and search normally — selections persist across tabs and searches. Press `u` to upgrade all selected or `x` to remove all selected. The confirmation modal groups operations by privilege level so you only enter your password once.\n\nAll operations work on macOS, Linux, and Windows. Each manager maps to its correct native command automatically.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eSupported Package Managers (36)\u003c/strong\u003e\u003c/summary\u003e\n\n| Manager | Platform | What it scans | Descriptions |\n|---------|----------|---------------|-------------|\n| **brew** | macOS/Linux | Installed formulae and casks | batch via JSON |\n| **pacman** | Arch | Explicit native packages | `pacman -Qi` |\n| **AUR** | Arch | Foreign/AUR packages | `pacman -Qi` |\n| **apt** | Debian/Ubuntu | Installed packages | `apt-cache show` |\n| **dnf** | Fedora/RHEL | Installed packages | `dnf info` |\n| **snap** | Ubuntu/Linux | Snap packages | `snap info` |\n| **pip** | Cross-platform | Top-level Python packages | `pip show` |\n| **pipx** | Cross-platform | Isolated Python CLI tools | — |\n| **cargo** | Cross-platform | Installed Rust binaries | — |\n| **go** | Cross-platform | Go binaries in `~/go/bin` | — |\n| **npm** | Cross-platform | Global Node.js packages | `npm info` |\n| **pnpm** | Cross-platform | Global pnpm packages | `pnpm info` |\n| **bun** | Cross-platform | Global Bun packages | — |\n| **flatpak** | Linux | Flatpak applications | `flatpak info` |\n| **MacPorts** | macOS | Installed ports | `port info` |\n| **pkgsrc** | NetBSD/cross-platform | Installed packages | `pkg_info` |\n| **opam** | Cross-platform | OCaml packages | `opam show` |\n| **gem** | Cross-platform | Ruby gems | `gem info` |\n| **pkg** | FreeBSD | Installed packages | inline from scan |\n| **composer** | Cross-platform | Global PHP packages | inline from JSON |\n| **mas** | macOS | Mac App Store apps | — |\n| **apk** | Alpine Linux | Installed packages | `apk info` |\n| **nix** | NixOS/cross-platform | Nix profile, nix-env, and NixOS system packages | `nix-env -qa` |\n| **conda/mamba** | Cross-platform | Conda environments | — |\n| **luarocks** | Cross-platform | Lua rocks | `luarocks show` |\n| **XBPS** | Void Linux | Installed packages | `xbps-query` |\n| **Portage** | Gentoo | Installed ebuilds via `qlist` | `emerge -s` |\n| **Guix** | GNU Guix | Installed packages | `guix show` |\n| **winget** | Windows | Windows Package Manager | — |\n| **chocolatey** | Windows | Chocolatey packages (v1 + v2) | — |\n| **scoop** | Windows | Scoop packages | — |\n| **nuget** | Cross-platform | NuGet global package cache | — |\n| **powershell** | Cross-platform | PowerShell modules | via scan |\n| **maven** | Cross-platform | Local Maven artifacts in `~/.m2/repository` | — |\n| **windows-updates** | Windows | Pending Windows system updates | — |\n\n- Managers that aren't installed are silently skipped — no errors, no config needed.\n- Descriptions are fetched in the background and cached for 24 hours.\n- Packages with available updates show a `↑` indicator next to their version (checked every 7 days).\n- Press `d` in the detail view to see full dependency tree for any package.\n- Press `h` in the detail view to see the package's `--help` output.\n- Press `e` in the detail view to add custom descriptions — these persist across sessions and won't be overwritten.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eSnapshots \u0026 Diffs\u003c/strong\u003e\u003c/summary\u003e\n\nGlazePKG can track how your system changes over time:\n\n1. **Snapshot** (`s`) — saves every package name, version, and source to a timestamped JSON file\n2. **Diff** (`d`) — compares your current packages against the last snapshot, showing:\n   - **Added** packages (new installs)\n   - **Removed** packages (uninstalls)\n   - **Upgraded** packages (version changes)\n\nUse this to audit what changed after a `brew upgrade`, track drift across machines, or catch unexpected installs.\n\n\u003c/details\u003e\n\n\u003cdetails\u003e\n\u003csummary\u003e\u003cstrong\u003eData Storage\u003c/strong\u003e\u003c/summary\u003e\n\nAll data lives under `~/.local/share/glazepkg/` (respects `XDG_DATA_HOME`):\n\n| Data | Path | Retention |\n|------|------|-----------|\n| Scan cache | `cache/scan.json` | 10 days (auto-refresh) |\n| Description cache | `cache/descriptions.json` | 24 hours |\n| Update cache | `cache/updates.json` | 7 days |\n| User notes | `notes.json` | Permanent |\n| Snapshots | `snapshots/*.json` | Permanent |\n| Exports | `exports/*.json` or `*.txt` | Permanent |\n\n\u003c/details\u003e\n\n## Contributing\n\nWant to add a package manager or fix a bug? Check out [CONTRIBUTING.md](CONTRIBUTING.md). Each manager is a single Go file — easy to add.\n\n## Built With\n\n- [Bubble Tea](https://github.com/charmbracelet/bubbletea) — TUI framework\n- [Lip Gloss](https://github.com/charmbracelet/lipgloss) — terminal styling\n- [Bubbles](https://github.com/charmbracelet/bubbles) — TUI components\n- [Fuzzy](https://github.com/sahilm/fuzzy) — fuzzy matching\n\n## Star History\n\n\u003ca href=\"https://www.star-history.com/?repos=neur0map%2Fglazepkg\u0026type=date\u0026legend=top-left\"\u003e\n \u003cpicture\u003e\n   \u003csource media=\"(prefers-color-scheme: dark)\" srcset=\"https://api.star-history.com/image?repos=neur0map/glazepkg\u0026type=date\u0026theme=dark\u0026legend=top-left\" /\u003e\n   \u003csource media=\"(prefers-color-scheme: light)\" srcset=\"https://api.star-history.com/image?repos=neur0map/glazepkg\u0026type=date\u0026legend=top-left\" /\u003e\n   \u003cimg alt=\"Star History Chart\" src=\"https://api.star-history.com/image?repos=neur0map/glazepkg\u0026type=date\u0026legend=top-left\" /\u003e\n \u003c/picture\u003e\n\u003c/a\u003e\n\n## License\n\n[GPL-3.0](LICENSE)\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneur0map%2Fglazepkg","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fneur0map%2Fglazepkg","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fneur0map%2Fglazepkg/lists"}