{"_id":"@eliekh05/pkgui","_rev":"2-cfedbaede5cb665dfeb3b03497e0a8a4","name":"@eliekh05/pkgui","dist-tags":{"latest":"1.0.6"},"versions":{"1.0.0":{"name":"@eliekh05/pkgui","version":"1.0.0","keywords":["package-manager","xterm","terminal","gui","cli"],"license":"MIT","_id":"@eliekh05/pkgui@1.0.0","maintainers":[{"name":"eliekh05","email":"eliekh05@gmail.com"}],"homepage":"https://github.com/eliekh05/pkgui#readme","bugs":{"url":"https://github.com/eliekh05/pkgui/issues"},"bin":{"pkgui":"bin/pkgui"},"dist":{"shasum":"f04b562defa5d352bef2594522a1ca0270ef4a2b","tarball":"https://registry.npmjs.org/@eliekh05/pkgui/-/pkgui-1.0.0.tgz","fileCount":6,"integrity":"sha512-3dJw4oWrhJGDym2piaKELoXxEWn8dEwwYkmSVnC37JBgDWfv5ioBBz0rnSF+zei3Uwu2AJWwc7JzNV9cErhjbw==","signatures":[{"sig":"MEUCIE9/bZlcr8XpeDKVqv8qt367LSkYzCMQZ989hD57usUtAiEAx8vmOtZ5/XF9zDmAPbnjYnGx3CeJZneWgGSoRTLgiN8=","keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U"}],"unpackedSize":419144},"type":"module","engines":{"node":">=18"},"gitHead":"421306478890888c2a9d5ebf53473b713aaf7c12","scripts":{"dev":"node scripts/dev.mjs","test":"vitest run","build":"vite build","start":"node server.js --open","server":"node server.js --open","preview":"vite preview","prepare:npm":"node scripts/prepare-npm.mjs","prepublishOnly":"npm test && node scripts/prepare-npm.mjs"},"_npmUser":{"name":"eliekh05","email":"eliekh05@gmail.com"},"repository":{"url":"git+https://github.com/eliekh05/pkgui.git","type":"git"},"_npmVersion":"11.17.0","description":"Universal Package Manager GUI — xterm.js powered terminal UI for 40+ package managers","directories":{},"_nodeVersion":"26.3.0","publishConfig":{"access":"public"},"_hasShrinkwrap":false,"devDependencies":{"vite":"^5.0.0","vitest":"^1.0.0","archiver":"^6.0.1","@xterm/xterm":"^6.0.0","@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0"},"_npmOperationalInternal":{"tmp":"tmp/pkgui_1.0.0_1781588924433_0.488969520619561","host":"s3://npm-registry-packages-npm-production"}},"1.0.6":{"name":"@eliekh05/pkgui","version":"1.0.6","description":"Universal Package Manager GUI — xterm.js powered terminal UI for 40+ package managers","type":"module","bin":{"pkgui":"bin/pkgui"},"repository":{"type":"git","url":"git+https://github.com/eliekh05/pkgui.git"},"homepage":"https://github.com/eliekh05/pkgui#readme","bugs":{"url":"https://github.com/eliekh05/pkgui/issues"},"engines":{"node":">=18"},"scripts":{"dev":"node scripts/dev.mjs","build":"vite build","preview":"vite preview","test":"vitest run","server":"node server.js --open","start":"node server.js --open","prepare:npm":"node scripts/prepare-npm.mjs","prepublishOnly":"npm test && node scripts/prepare-npm.mjs"},"keywords":["package-manager","xterm","terminal","gui","cli"],"license":"MIT","publishConfig":{"access":"public"},"devDependencies":{"@xterm/addon-fit":"^0.11.0","@xterm/addon-web-links":"^0.12.0","@xterm/xterm":"^6.0.0","archiver":"^6.0.1","vite":"^5.0.0","vitest":"^1.0.0"},"gitHead":"92b7c6b05dd37f2d42a961b10bbf7ba043a33a98","_id":"@eliekh05/pkgui@1.0.6","_nodeVersion":"24.16.0","_npmVersion":"11.17.0","dist":{"integrity":"sha512-hQ9egRFJoioiSBkK7vnOCEHrLD9osWuZYPjQSuzBKFGc+mDB9nd5UTQDufUF1udIaHmcTlD9qK4AtbYUSgFEdA==","shasum":"af0128f8cdd13c02b5d95de04f8d01d0c8e31056","tarball":"https://registry.npmjs.org/@eliekh05/pkgui/-/pkgui-1.0.6.tgz","fileCount":6,"unpackedSize":419168,"attestations":{"url":"https://registry.npmjs.org/-/npm/v1/attestations/@eliekh05%2fpkgui@1.0.6","provenance":{"predicateType":"https://slsa.dev/provenance/v1"}},"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIHC31Fbamv+s/NB4oxlCn6qMfMSzMRexR6Awja8d7rCXAiEAqMaQRRxr/ZsqniTIRjuGG6zEV00zu1YTlDM9n1JvhLw="}]},"_npmUser":{"name":"GitHub Actions","email":"npm-oidc-no-reply@github.com","trustedPublisher":{"id":"github","oidcConfigId":"oidc:c763d787-014e-46f9-b6f0-ed018f9ab309"}},"directories":{},"maintainers":[{"name":"eliekh05","email":"eliekh05@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/pkgui_1.0.6_1781589134861_0.38889954674035687"},"_hasShrinkwrap":false}},"time":{"created":"2026-06-16T05:48:44.221Z","modified":"2026-06-16T05:52:15.257Z","1.0.0":"2026-06-16T05:48:44.575Z","1.0.6":"2026-06-16T05:52:15.003Z"},"bugs":{"url":"https://github.com/eliekh05/pkgui/issues"},"license":"MIT","homepage":"https://github.com/eliekh05/pkgui#readme","keywords":["package-manager","xterm","terminal","gui","cli"],"repository":{"type":"git","url":"git+https://github.com/eliekh05/pkgui.git"},"description":"Universal Package Manager GUI — xterm.js powered terminal UI for 40+ package managers","maintainers":[{"name":"eliekh05","email":"eliekh05@gmail.com"}],"readme":"# 📦 pkgui\n\n> Universal Package Manager GUI — xterm.js powered terminal UI for 40+ package managers, with OS detection and command builder.\n\n[![CI / CD](https://github.com/eliekh05/pkgui/actions/workflows/ci.yml/badge.svg)](https://github.com/eliekh05/pkgui/actions/workflows/ci.yml)\n[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)\n\n---\n\n## Features\n\n- **xterm.js terminal** — full interactive terminal in the browser\n- **OS detection** — auto-detects Linux, macOS, Windows, BSD and recommends the right managers\n- **40+ package managers** — apt, dnf, pacman, brew, winget, nix, guix, flatpak, snap, pip, npm, cargo, gem, and many more\n- **Command builder** — select a manager, type a package name, get the exact command\n- **Compare view** — see the install command for a package across every manager (`Ctrl+K`)\n- **4 themes** — Dark, Light, Dracula, Nord\n- **Single-file releases** — every GitHub Release ships a standalone zip (`server.js` + UI) you can run with one command\n\n---\n\n## Quick start\n\n### Install from npm\n\n```bash\nnpm install -g @eliekh05/pkgui\npkgui              # opens http://127.0.0.1:7274 with UI + exec server\n```\n\n### Develop from source\n\n```bash\ngit clone https://github.com/eliekh05/pkgui\ncd pkgui\nnpm install\nnpm run dev        # → http://localhost:5173 (starts exec server too)\n```\n\n---\n\n## Package managers\n\n### Linux\n`apt` · `dpkg` · `dnf` · `yum` · `rpm` · `zypper` · `pacman` · `yay` · `apk` · `xbps` · `portage` · `slackpkg` · `equo` · `flatpak` · `snap`\n\n### macOS\n`brew` · `port` (MacPorts)\n\n### Windows\n`winget` · `choco` · `scoop`\n\n### BSD\n`pkg` (FreeBSD) · `pkgsrc` (NetBSD) · `pkg_add` (OpenBSD)\n\n### Cross-platform / Nix\n`nix` · `guix`\n\n### Language\n`pip` · `npm` · `yarn` · `cargo` · `gem` · `composer` · `go` · `nuget` · `conda`\n\n---\n\n## Terminal commands\n\n```\ndetect              Detect OS and suggest managers\nlist [os]           List all managers  (linux / macos / windows / bsd)\nuse <manager>       Select active package manager\ninstall <pkg>       Generate install command\nremove <pkg>        Generate remove command\nupdate              Generate index update command\nupgrade             Generate upgrade-all command\nsearch <query>      Generate search command\ninfo <pkg>          Generate info command\nlistpkgs            Generate list-installed command\nclean               Generate cleanup command\ncompare <pkg>       Compare install command across every manager\ntheme <name>        Switch theme: dark / light / dracula / nord\nclear               Clear terminal\nversion             Show version\n```\n\n**Keyboard shortcuts:** `↑↓` history · `Ctrl+C` cancel · `Ctrl+L` clear · `Ctrl+K` compare modal · `Ctrl+/` focus search\n\n---\n\n## Adding a package manager\n\nEdit `src/managers.js` and add to the `PACKAGE_MANAGERS` array:\n\n```js\n{\n  id: 'mypkg',\n  name: 'MyPkg',\n  fullName: 'My Package Manager',\n  os: ['linux'],          // linux | macos | windows | bsd | cross\n  distros: ['MyDistro'],\n  icon: '📦',\n  color: '#ff0000',\n  commands: {\n    install: (pkg) => `mypkg add ${pkg}`,\n    remove:  (pkg) => `mypkg rm ${pkg}`,\n    update:  ()    => `mypkg sync`,\n    upgrade: ()    => `mypkg up`,\n    search:  (pkg) => `mypkg search ${pkg}`,\n    info:    (pkg) => `mypkg info ${pkg}`,\n    list:    ()    => `mypkg list`,\n    clean:   ()    => `mypkg clean`,\n  },\n  homepage: 'https://mypkg.example.com',\n}\n```\n\nAdd a test in `src/managers.test.js` then open a PR.\n\n---\n\n## CI / CD\n\n| Event | What happens |\n|-------|-------------|\n| Push to `main` | Tests run → SPA builds → **auto-release when there are new commits** |\n| GitHub Release published | **npm publish** ([`@eliekh05/pkgui`](https://www.npmjs.com/package/@eliekh05/pkgui)) via OIDC in `ci.yml` |\n| Pull request | Tests run |\n\n### Creating a release\n\nJust push to `main`. If there are commits since the last release, CI automatically bumps the patch version and publishes a GitHub Release (e.g. `v1.0.0` → `v1.0.1`).\n\n```bash\ngit push origin main\n```\n\nTo release a specific version (minor/major bump), update `version` in `package.json` before pushing.\n\n### npm publishing (maintainers)\n\nUses [npm Trusted Publishing](https://docs.npmjs.com/trusted-publishers/) (OIDC) — no long-lived `NPM_TOKEN` needed.\n\n**One-time setup on [npmjs.com](https://www.npmjs.com):**\n\n1. Publish once manually if the package does not exist yet:\n   ```bash\n   node scripts/prepare-npm.mjs\n   npm login\n   npm publish\n   ```\n2. Go to **@eliekh05/pkgui → Settings → Trusted Publisher → GitHub Actions** and add:\n   - Organization or user: `eliekh05`\n   - Repository: `pkgui`\n   - Workflow filename: `ci.yml`\n   - Environment: *(leave blank)*\n3. Optional: under **Publishing access**, set *Require 2FA and disallow tokens* after verifying CI publish works.\n\nWhen CI creates a GitHub Release, the `publish-npm` job in `ci.yml` publishes via OIDC.\n\nEach release includes:\n- `pkgui-{version}-standalone.zip` — **recommended** — unzip, run `./start` (or `node server.js`) — opens UI with exec server\n- `pkgui-{version}-bundle.html` — HTML only (use standalone zip for command execution)\n- `pkgui-{version}-dist.zip` — full build for self-hosting\n- `pkgui-{version}-source.tar.gz` — source tarball\n\n---\n\n## Scripts\n\n```bash\nnpm run dev      # dev server + local execution backend\nnpm run build    # production build → dist/\nnpm test         # vitest tests\nnpm run server   # bundled UI + exec server (opens http://127.0.0.1:7274)\nnpm start        # same as npm run server\n```\n\n---\n\n## License\n\nMIT — see [LICENSE](LICENSE)\n","readmeFilename":"README.md"}