{"_id":"@agpenton/brewui","_rev":"2-41c80f18f60701532468ed20a00d9276","name":"@agpenton/brewui","dist-tags":{"latest":"0.1.2"},"versions":{"0.1.1":{"name":"@agpenton/brewui","version":"0.1.1","_id":"@agpenton/brewui@0.1.1","maintainers":[{"name":"agpenton","email":"agpenton@gmail.com"}],"bin":{"brewui":"dist/cli.js"},"dist":{"shasum":"b82972663e30f2a1e7e02dd279ea926b52c81831","tarball":"https://registry.npmjs.org/@agpenton/brewui/-/brewui-0.1.1.tgz","fileCount":9,"integrity":"sha512-dAQNvGbRn7yRPAecEJQ9aBNBwhflaj55E/E3fMCXfrKWTuRa76lmylxQk2I+ierBKI4BZoPUL/XoVuqFXUK3Wg==","signatures":[{"sig":"MEQCIHQextyN7uFCy+GLjyspu1aFaWF+jLtYL84RjNHHd64cAiBH+LFT8jx2/Ks/eCSGHKzLvUO67+82fM2t5mps2LYRXw==","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":64098},"type":"module","_from":"file:agpenton-brewui-0.1.1.tgz","engines":{"node":">=20"},"private":false,"scripts":{"dev":"tsx src/cli.ts","test":"vitest run","build":"tsc -p tsconfig.json","start":"node dist/cli.js"},"_npmUser":{"name":"agpenton","email":"agpenton@gmail.com"},"_resolved":"/tmp/122077e821471e64baed9f6ff8824caa/agpenton-brewui-0.1.1.tgz","_integrity":"sha512-dAQNvGbRn7yRPAecEJQ9aBNBwhflaj55E/E3fMCXfrKWTuRa76lmylxQk2I+ierBKI4BZoPUL/XoVuqFXUK3Wg==","_npmVersion":"10.8.2","description":"Terminal UI for Brewfile inventory and package operations","directories":{},"_nodeVersion":"20.20.0","dependencies":{"blessed":"^0.1.81"},"publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"tsx":"^4.19.0","vitest":"^3.2.4","typescript":"^5.9.0","@types/node":"^24.0.0","@types/blessed":"^0.1.25"},"_npmOperationalInternal":{"tmp":"tmp/brewui_0.1.1_1772147789697_0.6781303387197597","host":"s3://npm-registry-packages-npm-production"}},"0.1.2":{"name":"@agpenton/brewui","version":"0.1.2","private":false,"description":"Terminal UI for Brewfile inventory and package operations","type":"module","publishConfig":{"access":"public"},"bin":{"brewui":"dist/cli.js"},"engines":{"node":">=20"},"dependencies":{"blessed":"^0.1.81"},"devDependencies":{"@types/blessed":"^0.1.25","@types/node":"^24.0.0","tsx":"^4.19.0","typescript":"^5.9.0","vitest":"^3.2.4"},"scripts":{"dev":"tsx src/cli.ts","build":"tsc -p tsconfig.json","start":"node dist/cli.js","test":"vitest run"},"_id":"@agpenton/brewui@0.1.2","_integrity":"sha512-XVVOK1kUzoapTOrpcFSTXP5OGkoejPmFjmE66eiUP9EfzM0oTwrmbpvZn5xJTdUWLQ2W00foG80ALwU/fRMsZA==","_resolved":"/tmp/e8982dfa04a9416e144c901274647126/agpenton-brewui-0.1.2.tgz","_from":"file:agpenton-brewui-0.1.2.tgz","_nodeVersion":"20.20.0","_npmVersion":"10.8.2","dist":{"integrity":"sha512-XVVOK1kUzoapTOrpcFSTXP5OGkoejPmFjmE66eiUP9EfzM0oTwrmbpvZn5xJTdUWLQ2W00foG80ALwU/fRMsZA==","shasum":"9b8cc85b209bf4fe3b626b3861a744d200634c2b","tarball":"https://registry.npmjs.org/@agpenton/brewui/-/brewui-0.1.2.tgz","fileCount":9,"unpackedSize":65773,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDfEQnNkysUMZIkXOENd0UHPvicJSiydWo/pUyK9HKXyAiEA/NYUD9Qzvr3IBP+FbghnGbdGzWFBOUIYGmLufcka5Xk="}]},"_npmUser":{"name":"agpenton","email":"agpenton@gmail.com"},"directories":{},"maintainers":[{"name":"agpenton","email":"agpenton@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/brewui_0.1.2_1772223525962_0.6375042444493304"},"_hasShrinkwrap":false}},"time":{"created":"2026-02-26T23:16:29.618Z","modified":"2026-02-27T20:18:46.244Z","0.1.1":"2026-02-26T23:16:29.843Z","0.1.2":"2026-02-27T20:18:46.130Z"},"description":"Terminal UI for Brewfile inventory and package operations","maintainers":[{"name":"agpenton","email":"agpenton@gmail.com"}],"readme":"# brewui\n\nA keyboard-driven TUI for Homebrew bundle inventory and package maintenance.\n\nLayout:\n- Left pane: package list\n- Top-right pane: local package details (from Brewfile parsing/state)\n- Bottom-right pane: source info output (`brew info` / `mas info`)\n\n## Requirements\n\n- macOS\n- Homebrew installed\n- Node.js 20+\n- pnpm\n\n## Quick start\n\n```bash\npnpm install\npnpm dev\n```\n\nGhostty note:\n- `brewui` auto-falls back to `TERM=xterm-256color` when it detects Ghostty to avoid a `blessed` terminfo parsing crash.\n- Manual fallback (if needed): `TERM=xterm-256color pnpm dev`\n\n## Scripts\n\n- `pnpm dev` run TUI in development\n- `pnpm build` compile TypeScript\n- `pnpm start` run compiled app\n- `pnpm test` run tests\n\n## Publishing\n\n- GitHub Actions workflow: `.github/workflows/publish.yml`\n- Triggered on tags matching `v*` (example: `v0.1.1`) or manual run (`workflow_dispatch`)\n- Required repository secret: `NPM_TOKEN` (npm automation token with publish access)\n\n## Keybindings\n\n- `d` dump Brewfile (`brew bundle dump --force`)\n- `r` refresh from Brewfile\n- `j`/`k` or arrows move selection\n- `/` filter list\n- `enter` fetch selected item source info (`brew info` / `mas info`)\n- `x` delete selected package (confirmation required)\n- `c` run `brew cleanup` (confirmation required)\n- `u` run `brew update` + `brew upgrade` for all Homebrew packages (confirmation required)\n- `q` quit\n","readmeFilename":"README.md"}