{"_id":"@bryanjbelanger/virtualbox-skills","name":"@bryanjbelanger/virtualbox-skills","dist-tags":{"latest":"1.0.0"},"versions":{"1.0.0":{"name":"@bryanjbelanger/virtualbox-skills","version":"1.0.0","description":"VirtualBox management skills suite for Pi agent — complete VM lifecycle, networking, snapshots, guest transfer, and maintenance via VBoxManage.","type":"module","main":"scripts/vbox-catalog.js","bin":{"vbox-catalog":"scripts/vbox-catalog.js"},"pi":{"skills":["skills"]},"keywords":["pi","pi-skill","virtualbox","vboxmanage","vm","hypervisor","devops"],"author":{"name":"Bryan Belanger","email":"bryanbelanger@hotmail.com"},"license":"MIT","gitHead":"85ea889e0b26ce499819f34968cffa576aaf8ef9","_id":"@bryanjbelanger/virtualbox-skills@1.0.0","_nodeVersion":"26.7.0","_npmVersion":"11.19.0","dist":{"integrity":"sha512-jerkgFD3TtuVeYP84X1w8LfR/Z9ZJQmu12ikiLGGLZ6b131SWWX1JdXmGkUjQFSNEycO1f8xYygyo3rO8n6ZCw==","shasum":"7c88cf7f9b5fbf91ba18eadd0e643474a564f01b","tarball":"https://registry.npmjs.org/@bryanjbelanger/virtualbox-skills/-/virtualbox-skills-1.0.0.tgz","fileCount":12,"unpackedSize":36941,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIEXSA7lzKXrBTYJA0RjsuIPKSahLmgFte5gX15s6SXleAiEAh2xZN5yUT11Iqm7ZKXN7pG5IjAG4nLMAbDOyI+KEbJ0="}]},"_npmUser":{"name":"bryanjbelanger","email":"bryanbelanger@hotmail.com"},"directories":{},"maintainers":[{"name":"bryanjbelanger","email":"bryanbelanger@hotmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/virtualbox-skills_1.0.0_1788110006902_0.20407473075235427"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-30T17:13:26.731Z","1.0.0":"2026-08-30T17:13:27.045Z","modified":"2026-08-30T17:13:27.272Z"},"maintainers":[{"name":"bryanjbelanger","email":"bryanbelanger@hotmail.com"}],"description":"VirtualBox management skills suite for Pi agent — complete VM lifecycle, networking, snapshots, guest transfer, and maintenance via VBoxManage.","keywords":["pi","pi-skill","virtualbox","vboxmanage","vm","hypervisor","devops"],"author":{"name":"Bryan Belanger","email":"bryanbelanger@hotmail.com"},"license":"MIT","readme":"# VirtualBox Skills Suite for Pi\n\nA complete, self-contained suite of **Pi Skills** for managing VirtualBox hypervisors, provisioning virtual machines, configuring networking, managing snapshots, transferring appliances, and performing disk maintenance directly via native `VBoxManage` commands.\n\n---\n\n## Included Skills\n\n| Skill | Description | Usage Command |\n| :--- | :--- | :--- |\n| **`vbox-install`** | Install/upgrade VirtualBox & Extension Pack (`brew`, `apt`, `dnf`, `winget`), `vboxusers` group, macOS kext. | `/skill:vbox-install` |\n| **`vbox-vm`** | Provisioning (Catalog, OVA, ISO), CPU/RAM sizing, lifecycle control (`start`, `stop`, `pause`). | `/skill:vbox-vm` |\n| **`vbox-network`** | NAT Networks, Host-Only interfaces, DHCP servers, port forwards, and IP discovery. Uses progressive disclosure — see `references/`. | `/skill:vbox-network` |\n| **`vbox-snapshot`** | Safety pre-change snapshots, snapshot trees, rollbacks, and delta merging. | `/skill:vbox-snapshot` |\n| **`vbox-transfer`** | Full/linked clones, OVA exports/imports, VM relocation, and guest file transfer. | `/skill:vbox-transfer` |\n| **`vbox-maintenance`** | Inventory audits, unregistering stale VMs, removing orphaned VDIs, and compacting disk space. | `/skill:vbox-maintenance` |\n\n---\n\n## Prerequisites\n\n* **VirtualBox 7.x** installed with `VBoxManage` accessible in your PATH.\n* **Node.js v20.6+** (for running the optional image catalog fetcher `scripts/vbox-catalog.js`).\n\n---\n\n## Installation & Usage in Pi\n\n### Option A: Install globally in Pi\nCopy or symlink the package into your global Pi skills folder:\n\n```bash\nmkdir -p ~/.pi/agent/skills/virtualbox\ncp -r skills/* ~/.pi/agent/skills/virtualbox/\n```\n\n### Option B: Install via npm package\nIn any project:\n```bash\nnpm install --save-dev @bryanjbelanger/virtualbox-skills\n```\nAnd add to `.pi/settings.json`:\n```json\n{\n  \"skills\": [\"node_modules/@bryanjbelanger/virtualbox-skills\"]\n}\n```\n\n---\n\n## Progressive Disclosure\n\nSkills are structured so only what a task needs enters the context window:\n\n1. **Always in context** — each skill's `name` + `description` only (~350 chars each).\n2. **Loaded on trigger** — the `SKILL.md` body: a decision table plus the commands that cover the common 80%.\n3. **Loaded only if followed** — `references/*.md`, linked from `SKILL.md` and read only when the task actually hits that path.\n\n`vbox-network` is the worked example:\n\n```text\nskills/vbox-network/\n├── SKILL.md                      # topology decision table + the 80% commands\n└── references/\n    ├── port-forwarding.md        # both rule syntaxes, deletion, UDP/IPv6, collisions\n    ├── host-only-macos.md        # DHCP ranges, bridged, macOS kext approval\n    └── troubleshooting.md        # no internet, host can't reach guest, stale leases\n```\n\nWhen a `SKILL.md` grows past ~150 lines, move the rarely-needed detail into\n`references/` rather than splitting the skill — splitting adds a second\ndescription to the permanent system prompt to save tokens that were never being\nspent.\n\n---\n\n## OS Catalog Helper Script\n\nTo list or download official OS images (Ubuntu, Debian, Fedora, Rocky, Kali, etc.) with automatic checksum verification and Vagrant box extraction:\n\n```bash\n# List catalog images\nnode scripts/vbox-catalog.js catalog\n\n# Fetch an OS image (downloads to ~/VirtualBox VMs/ISOs/)\nnode scripts/vbox-catalog.js fetch ubuntu\n```\n\n---\n\n## License\n\nMIT License\n","readmeFilename":"README.md","_rev":"1-5b6da73d2a8618210e6749e68eeb7dea"}