glazepkg

neur0mapGPL-3.0活跃维护

跨平台命令行面板,把 apt、cargo、homebrew、nix 等各包管理器已安装的软件集中到一处查看,省去逐个命令查询的麻烦。

See all your installed packages in one place. (Official package manage for RyokuArch)

v0.6.10发布于 2026-09-22 21:22 UTC649star27fork同步于 2026-11-07 07:33 UTC

怎么上手

由 README 提炼,执行前请确认
brew install gpk
go install github.com/neur0map/glazepkg/cmd/gpk@latest
硬件要求按 README 说明

README 未说明;仅提及支持 macOS、Linux、Windows,未列出 CPU/GPU 或显存要求

支持 Apple Silicon
下载:源码 zip·GitHub Releases(安装包)本站不镜像安装包

项目说明

由 README 自动翻译提炼

用一个 gpk 命令统一管理 46 种包管理器,跨平台查看、安装、升级和回滚

跨平台命令行面板,把 apt、cargo、homebrew、nix 等各包管理器已安装的软件集中到一处查看,省去逐个命令查询的麻烦。

核心能力

  • 用 pacman/yay 风格短参数统一操作所有包管理器
  • 并行搜索全部包管理器并给出候选版本与拼写建议
  • 支持固定版本、交互选版本和 downgrade 回滚
  • 无需 AUR helper,先展示 PKGBUILD 再用 makepkg 构建
  • 提供 TUI 仪表盘、快照 diff 与 JSON 导出迁移

容易踩的坑

Windows 预编译二进制未签名,可能触发杀毒或 SmartScreen 警告;用包管理器安装的 gpk 需用对应管理器升级,gpk update 只适用于下载版或 go install;某个包管理器 CLI 配置错误会导致 upgrade 持续非零退出,可用 gpk managers skip 排除

内容由模型根据 README 生成,可能不完整或不准确,以官方文档为准。看原文 README

最近发版

5 个版本v0.6.10
  1. v0.6.10最新正式版2026-09-22 · 2026-09-22 21:22 UTC

    What's Changed

    New Contributors

    Full Changelog: https://github.com/neur0map/glazepkg/compare/v0.6.9...v0.6.10

  2. v0.6.92026-09-22 · 2026-09-22 21:19 UTC
    查看更新说明

    What's Changed

    New Contributors

    Full Changelog: https://github.com/neur0map/glazepkg/compare/v0.6.8...v0.6.9

  3. v0.6.82026-08-26 · 2026-08-26 19:53 UTC
    查看更新说明
  4. v0.6.72026-08-16 · 2026-08-16 22:11 UTC
    查看更新说明
  5. v0.6.62026-08-16 · 2026-08-16 21:34 UTC
    查看更新说明

用户点评

登录用户的真实使用记录,可按版本和硬件筛选
共 0 条

    还没有人点评。第一个说出真实体验的人最有价值。

    README 原文

    未翻译

    GlazePKG (gpk)

    One command for every package manager you have.

    gpk is yay for your whole machine — install, search, upgrade, and roll back across 46 package managers (plus the apps you installed by hand) with one familiar syntax. Plus a gorgeous TUI to see it all. Zero config, one binary, macOS · Linux · Windows.

    CI Go Release License: GPL-3.0 Downloads Stars

    demo


    One syntax, every manager

    You already juggle brew, pip, cargo, npm, apt, pacman, the AUR — each with its own flags, its own search, its own "what's even installed?". Move to a new machine and you relearn all of it.

    gpk gives you one. The pacman/yay muscle memory you already have, pointed at all 43:

    gpk ffmpeg          # search every manager, pick a source, install — like yay
    gpk -S ripgrep      # install (gpk finds whether it's in pacman, brew, cargo…)
    gpk -Syu            # update everything, everywhere, in one go
    gpk -R nodejs       # remove
    

    Not sure which manager has it? gpk searches them all and shows you — name, version, description. Typo it? It suggests the fix. Want the dashboard instead? Just run gpk.

    What you get

    yay for all 46pacman/yay short flags (-S -Ss -Si -Syu -R -Q) and plain words, across every manager
    Find it anywhereone search across all managers in parallel — versions, descriptions, "did you mean" on typos
    Eye candythemed ::/✓/✗ runs and a true-color TUI worth screenshotting
    Versions, handledpin [email protected], pick interactively, downgrade to roll back, compared across formats
    AUR without a helpersearches the AUR and builds with makepkg — showing you the PKGBUILD first
    Stay in controlhold packages, history + undo, autoremove orphans, clean caches
    Backup & migrateexport your whole setup to JSON, import it on the next machine
    The dashboardrun bare gpk for a searchable, snapshotable, diffable TUI
    Scriptable--json everywhere + stable exit codes — drop it behind a GUI or CI
    Instantscans once, caches for 10 days, opens in milliseconds

    Install

    Homebrew (macOS / Linux)

    brew install gpk
    

    Arch Linux (AUR)

    yay -S gpk-bin
    

    Nix (any Linux, macOS)

    nix run github:neur0map/glazepkg          # try it without installing
    nix profile install github:neur0map/glazepkg
    

    Go

    go install github.com/neur0map/glazepkg/cmd/gpk@latest
    

    Pre-built binaries

    Grab a binary from releases for macOS (ARM/Intel), Linux (x64/ARM), or Windows (x64/ARM).

    Keeping it up to date

    gpk update replaces the binary in place, and is meant for the pre-built downloads above. If a package manager installed gpk, that manager owns the file and gpk will point you at it instead of fighting it:

    Installed withUpgrade with
    Homebrewbrew upgrade gpk
    AURyay -S gpk-bin
    Nixnix profile upgrade gpk
    Scoop / Chocolateyscoop update gpk / choco upgrade gpk
    a release download, go installgpk update

    It's a false alarm. The Windows build isn't signed yet, and antivirus tools often flag fresh, unsigned programs made with Go — the exact same code on macOS and Linux is fine. There's nothing harmful in it (why this happens).

    Ways around it:

    • Skip the download and warning entirely — install with Go:

      go install github.com/neur0map/glazepkg/cmd/gpk@latest
      
    • Confirm the file is the real one. Every release ships a checksums.txt. In PowerShell:

      Get-FileHash .\gpk-windows-amd64.exe -Algorithm SHA256
      

      Check the result matches the line for that file in checksums.txt.

    • Let it run. After checking the file: right-click it → Properties → tick Unblock → OK (or run Unblock-File .\gpk-windows-amd64.exe). If you get a blue "Windows protected your PC" box, click More info → Run anyway.

    • On a work computer? You might not see a "Run anyway" button — that's your IT department blocking unsigned apps, and we can't change that from our side. Ask them to allow it, or use the Go install above.

    git clone https://github.com/neur0map/glazepkg.git
    cd glazepkg && go build ./cmd/gpk
    

    If gpk is not found after installing via go install, add Go's bin directory to your PATH:

    export PATH="$PATH:$HOME/go/bin"
    

    Quick Start

    gpk              Launch TUI
    gpk update       Self-update to latest release
    gpk version      Show current version
    gpk --help       Show keybind reference
    

    Just 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.

    Command line

    gpk isn't only the dashboard. Every action has a typed command, and the pacman/yay short flags work too, so you can drive it from the shell without opening the TUI.

    gpk firefox               # search and pick something to install (like yay)
    gpk -S ffmpeg             # install
    gpk -S ffmpeg --aur       # install, scoped to one manager
    gpk install [email protected]  # install a specific version (or --pick-version to choose)
    gpk versions black        # list installable versions, newest first
    gpk -Ss ripgrep           # search every manager at once
    gpk -Syu                  # update everything
    gpk -R foo                # remove  (-Rns to take orphaned deps too)
    gpk downgrade foo         # roll back to an earlier version
    gpk -Sc                   # clear cached downloads
    gpk autoremove            # remove dependencies nothing needs
    gpk hold linux            # pin a package so upgrades skip it
    gpk undo                  # reverse the last thing gpk did
    gpk managers              # which managers are detected, with package counts
    gpk theme dracula         # switch the color theme (shared with the TUI)
    gpk export -o pkgs.json   # back up everything installed
    gpk import pkgs.json      # restore it on another machine (skips installed)
    gpk -Qi foo               # info    ·  gpk -Q lists everything installed
    gpk why openssl           # what depends on it (is it safe to remove?)
    gpk snapshot              # record what's installed right now
    gpk snapshot diff 2 1     # what changed between two snapshots (or `diff` vs live)
    gpk -Qu --notify          # check for updates and raise a desktop notification
    

    When a package exists in more than one manager, gpk lists them with versions and lets you choose. Mistype a name and it suggests the closest match. Scope any command with --aur, --brew, -m pacman,aur, or leave it off and let gpk find it — or set a standing preference in the config so it never has to ask:

    # ~/.config/glazepkg/config.toml
    [install]
    prefer = ["aur", "brew"]
    
    [search]
    bottom_up = true   # best match printed last, right above your prompt
    
    [managers]
    skip = ["pnpm"]    # leave these alone; see "One manager keeps failing" below
    

    Miss yay's bottom-up search order? Pass --bottomup to search (or -Ss), or set bottom_up = true as above to make it the default — --topdown flips any single run back. Result numbers don't move: 1 is always the best match, so the interactive --install picker means the same thing in either order.

    One manager keeps failing

    A manager whose CLI is misconfigured fails on every run, which makes gpk upgrade exit non-zero forever even when everything else worked. Take it out of the rotation:

    gpk managers skip pnpm      # or: gpk managers unskip pnpm
    

    Skipped managers are left out of every command, still listed by gpk managers so nothing disappears quietly, and still reachable when you name one directly with --manager pnpm. The failure summary prints the exact command, so you never have to look it up.

    Plain wordsShort flags
    gpk install foogpk -S foo
    gpk remove foogpk -R foo
    gpk upgradegpk -Syu
    gpk search foogpk -Ss foo
    gpk listgpk -Q

    Output is colored to match your theme on a terminal and falls back to plain text when piped. Run gpk --help for the full command and flag reference.

    Shell completion

    Tab-completes subcommands, manager names, and your installed packages (for remove, upgrade, info, downgrade, hold).

    gpk completion bash > /etc/bash_completion.d/gpk      # bash
    gpk completion zsh  > ~/.zfunc/_gpk                    # zsh (ensure ~/.zfunc is on $fpath)
    gpk completion fish > ~/.config/fish/completions/gpk.fish
    

    Scripting & backends

    Every read command takes --json (a stable {gpk_version, schema, data} envelope), and install/remove/upgrade/downgrade accept --json to print the resolved plan — manager, version, and the exact command — without running anything. Exit codes are stable (0 ok, 1 error, 2 "no", 3 ambiguous), so gpk drops cleanly behind a GUI or script.

    Snapshots on a schedule

    gpk snapshot writes to the same store the TUI's s uses, so a systemd timer, launchd agent or cron entry can take periodic snapshots and you can diff any two of them later to find what changed inside a time window.

    gpk snapshot --keep 30          # take one, keep only the newest 30
    gpk snapshot list               # newest first, numbered
    gpk snapshot diff 5 2           # compare two saved snapshots
    gpk snapshot diff 5             # compare one against the system right now
    gpk snapshot diff --json        # newest snapshot vs live, as JSON
    

    Pair it with gpk outdated --notify to get a desktop notification when updates land — osascript on macOS, notify-send on Linux, a toast on Windows. gpk still runs and exits; nothing stays resident.

    KeyAction
    j/k, ↑/↓Navigate
    g / GJump to top / bottom
    Ctrl+d / Ctrl+uHalf-page down / up
    PgDn / PgUpPage down / up
    Tab / Shift+TabCycle manager tabs
    fCycle size filter
    /Fuzzy search
    EnterPackage details
    u (detail)Upgrade package
    x (detail)Remove package
    d (detail)View dependencies
    Enter (deps screen)Open the selected dependency's details
    h (detail)Package help/usage
    m (detail)Open man page
    o (detail)Open package page in browser
    e (detail)Edit description
    iSearch + install packages
    mToggle multi-select mode
    Space (multi-select)Toggle package selection
    sSave snapshot
    dDiff against last snapshot
    eExport (JSON or text)
    rForce rescan
    USystem update for the active manager tab
    QView / cancel the operation queue
    ?Help overlay
    qQuit

    Upgrade (u in detail view)

    Open 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.

    Remove (x in detail view)

    Open 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.

    Search + Install (i)

    Press 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.

    Multi-Select (m)

    Press 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.

    All operations work on macOS, Linux, and Windows. Each manager maps to its correct native command automatically.

    ManagerPlatformWhat it scansDescriptions
    brewmacOS/LinuxInstalled formulae and casksbatch via JSON
    pacmanArchExplicit native packagespacman -Qi
    AURArchForeign/AUR packagespacman -Qi
    aptDebian/UbuntuInstalled packagesapt-cache show
    dnfFedora/RHELInstalled packagesdnf info
    snapUbuntu/LinuxSnap packagessnap info
    pipCross-platformTop-level Python packagespip show
    pipxCross-platformIsolated Python CLI tools—
    cargoCross-platformInstalled Rust binaries—
    goCross-platformGo binaries in ~/go/bin—
    npmCross-platformGlobal Node.js packagesnpm info
    pnpmCross-platformGlobal pnpm packagespnpm info
    bunCross-platformGlobal Bun packages—
    flatpakLinuxFlatpak applicationsflatpak info
    MacPortsmacOSInstalled portsport info
    pkgsrcNetBSD/cross-platformInstalled packagespkg_info
    opamCross-platformOCaml packagesopam show
    gemCross-platformRuby gemsgem info
    pkgFreeBSDInstalled packagesinline from scan
    composerCross-platformGlobal PHP packagesinline from JSON
    masmacOSMac App Store apps—
    apkAlpine LinuxInstalled packagesapk info
    nixNixOS/cross-platformNix profile, nix-env, and NixOS system packagesnix-env -qa
    conda/mambaCross-platformConda environments—
    luarocksCross-platformLua rocksluarocks show
    XBPSVoid LinuxInstalled packagesxbps-query
    PortageGentooInstalled ebuilds via qlistemerge -s
    GuixGNU GuixInstalled packagesguix show
    wingetWindowsWindows Package Manager—
    chocolateyWindowsChocolatey packages (v1 + v2)—
    scoopWindowsScoop packages—
    nugetCross-platformNuGet global package cache—
    powershellCross-platformPowerShell modulesvia scan
    mavenCross-platformLocal Maven artifacts in ~/.m2/repository—
    windows-updatesWindowsPending Windows system updates—
    amLinuxAppImage apps via AM/AppManinline from scan
    gvmCross-platformGo toolchains installed via gvm—
    miseCross-platformTools managed by mise—
    quicklispCross-platformCommon Lisp libraries via Quicklisp—
    softwareupdatemacOSPending macOS system updatesinline from scan
    localLinuxApps installed outside any package manager — desktop entries (Zed, Discord, Termius…) and standalone binaries (Claude Code, omp…)from .desktop / path
    aquaCross-platformCLI tools declared in aqua.yaml and the global aqua config—
    binCross-platformPre-compiled binaries installed by bin from GitHub/GitLab/http—
    dotnet-toolCross-platform.NET global tools (dotnet tool install -g)—
    • Managers that aren't installed are silently skipped — no errors, no config needed.
    • Descriptions are fetched in the background and cached for 24 hours.
    • Packages with available updates show a ↑ indicator next to their version (checked every 7 days).
    • Press d in the detail view to see full dependency tree for any package.
    • Press h in the detail view to see the package's --help output.
    • Press e in the detail view to add custom descriptions — these persist across sessions and won't be overwritten.

    GlazePKG can track how your system changes over time:

    1. Snapshot (s) — saves every package name, version, and source to a timestamped JSON file
    2. Diff (d) — compares your current packages against the last snapshot, showing:
      • Added packages (new installs)
      • Removed packages (uninstalls)
      • Upgraded packages (version changes)

    Use this to audit what changed after a brew upgrade, track drift across machines, or catch unexpected installs.

    All data lives under ~/.local/share/glazepkg/ (respects XDG_DATA_HOME):

    DataPathRetention
    Scan cachecache/scan.json10 days (auto-refresh)
    Description cachecache/descriptions.json24 hours
    Update cachecache/updates.json7 days
    User notesnotes.jsonPermanent
    Snapshotssnapshots/*.jsonPermanent
    Exportsexports/*.json or *.txtPermanent

    Contributing

    Want to add a package manager or fix a bug? Check out CONTRIBUTING.md. Each manager is a single Go file — easy to add.

    Built With

    Star History

    License

    GPL-3.0