{"name":"@deckyard/virtualbox","description":"Oracle VirtualBox 7 through VBoxManage: inventories, VM lifecycle, power, snapshots, clones, OVA import and export, guest control","versions":{"0.1.0":{"version":"0.1.0","kind":"git","url":"https://github.com/deckyard/deck-virtualbox.git","ref":"0.1.0","commit":"8d7718b1b87d17178f31d0d5c59b8f3a0c340f2d","checksum":"","yanked":false,"license":"LGPL-3.0-only","requires":{},"engines":{"jennifer":"\u003e=0.26.0"},"capabilities":["exec"],"keywords":["virtualbox","vboxmanage","vm","virtualization","snapshot"],"description":"Oracle VirtualBox 7 through VBoxManage: inventories, VM lifecycle, power, snapshots, clones, OVA import and export, guest control","publishedAt":"1794610112","repoId":1457146826,"repoOwnerId":346943577,"repoOwner":"deckyard"}},"readme":"# @deckyard/virtualbox\n\n[![test](https://github.com/deckyard/deck-virtualbox/actions/workflows/test.yml/badge.svg)](https://github.com/deckyard/deck-virtualbox/actions/workflows/test.yml)\n[![Documentation](https://img.shields.io/badge/docs-github%20pages-blue)](https://deckyard.github.io/deck-virtualbox/)\n[![release](https://img.shields.io/github/v/release/deckyard/deck-virtualbox)](https://github.com/deckyard/deck-virtualbox/releases/latest)\n\nOracle VirtualBox 7 for [Jennifer](https://jennifer-lang.dev/) programs,\nthrough the `VBoxManage` command line: list machines, disks and networks,\ncreate and delete machines, start and stop them, forward ports, take and\nrestore snapshots, clone, import and export appliances, read the guest's IP,\nand run commands or copy files in the guest. Names and paths are checked\nbefore they reach `VBoxManage`, a guest password never appears on a command\nline, and a command prefix (`ssh`) drives a VirtualBox on another machine.\n\n**[Documentation](https://deckyard.github.io/deck-virtualbox/)**\n\n## Install\n\n```sh\njvc add @deckyard/virtualbox\n```\n\nThis vendors the deck to `vendor/\u003cscope\u003e/virtualbox/`. Without `jvc`, unpack the\n`src/` subtree of a release archive (`\u003cscope\u003e-virtualbox-\u003cversion\u003e.tar.gz`) there.\n\n## Usage\n\n```jennifer\nuse io;\n\nimport \"@deckyard/virtualbox/\" as virtualbox;\n\ndef vb as virtualbox.Host init virtualbox.open(virtualbox.local());\nvirtualbox.importAs($vb, \"debian.ova\", \"build-1\");\nvirtualbox.addForward($vb, \"build-1\", virtualbox.forward(1, \"ssh\", 2222, 22));\nvirtualbox.start($vb, \"build-1\");\nio.printf(\"up at %s\\n\", virtualbox.waitForIp($vb, \"build-1\", 0, 180000));\n```\n\n## Requirements\n\nJennifer 0.26.0 or newer, the default `jennifer` binary (the deck runs\nprograms, capability `exec`; `jennifer-tiny` cannot), and VirtualBox 7.0 or\nnewer with `VBoxManage` on `PATH`, here or on the host a prefix reaches.\nCommands and copies in the guest need the Guest Additions.\n\n## Development\n\n```sh\ntools/check-all.sh                   # the full gate, as CI runs it\njennifer test src/virtualbox_test.j  # the tests, against a fake VBoxManage\ntools/check-docs.sh                  # docs against the code\ntools/pack.sh dist                   # build the release archive\n```\n\n## Licence\n\nLGPL-3.0-only, see [LICENSE](LICENSE). Copyright (C) 2026 mplx \u0026lt;mplx@jennifer-lang.dev\u0026gt;.\n\n`tools/check-headers.sh` checks every source file's SPDX header against\n`deck.toml`.\n"}