{"id":26167516,"url":"https://github.com/michaelbolanos/vbman","last_synced_at":"2026-04-20T08:02:17.422Z","repository":{"id":279863239,"uuid":"940245847","full_name":"michaelbolanos/vbman","owner":"michaelbolanos","description":"a lightweight CLI tool for managing VirtualBox VMs on Linux and macOS. It provides an interactive menu to list, start, and stop VMs with graceful or forced shutdown options—no need for the VirtualBox GUI. Simplify VM operations quickly with bulk commands and a handy one-liner install.","archived":false,"fork":false,"pushed_at":"2025-03-19T15:32:54.000Z","size":90,"stargazers_count":1,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-03-19T16:34:44.882Z","etag":null,"topics":["bash","open-source","virtualbox"],"latest_commit_sha":null,"homepage":"","language":"Shell","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/michaelbolanos.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null}},"created_at":"2025-02-27T21:11:28.000Z","updated_at":"2025-03-19T15:32:57.000Z","dependencies_parsed_at":"2025-02-28T06:19:28.209Z","dependency_job_id":"b0ecc606-0e39-4165-9837-f17e3a109871","html_url":"https://github.com/michaelbolanos/vbman","commit_stats":null,"previous_names":["michaelbolanos/vbman"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/michaelbolanos/vbman","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelbolanos%2Fvbman","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelbolanos%2Fvbman/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelbolanos%2Fvbman/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelbolanos%2Fvbman/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/michaelbolanos","download_url":"https://codeload.github.com/michaelbolanos/vbman/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/michaelbolanos%2Fvbman/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32038455,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-20T00:18:06.643Z","status":"online","status_checked_at":"2026-04-20T02:00:06.527Z","response_time":94,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["bash","open-source","virtualbox"],"created_at":"2025-03-11T17:38:26.180Z","updated_at":"2026-04-20T08:02:17.412Z","avatar_url":"https://github.com/michaelbolanos.png","language":"Shell","funding_links":[],"categories":[],"sub_categories":[],"readme":"# vbman - VirtualBox VM Manager\n\n\u003cimg src=\"https://upload.wikimedia.org/wikipedia/commons/d/d5/Virtualbox_logo.png\" width=\"163\" alt=\"VirtualBox Logo\"\u003e\n\n## Overview\n**vbman** is a lightweight command-line tool for managing VirtualBox virtual machines (VMs) on Linux and macOS. It provides an interactive menu to list, start, and stop VMs with both graceful and force shutdown options. This script simplifies VM management \u0026 testing without the need for the VirtualBox GUI.  \n\n---\n\n## 🎯 Features\n✅ List all available VMs with their status (Running/Stopped)  \n✅ Start VMs in **Headed (GUI)** or **Headless (background)** mode  \n✅ Gracefully shut down VMs using **ACPI Power Button**  \n✅ Force shutdown VMs when necessary  \n✅ Bulk shutdown options for all running VMs  \n✅ Interactive menu for easy management  \n\n---\n\n## 📌 Quick Install \u0026 Run (One-Liner)\n\n**Run this command at the CLI to download \u0026 run vbman**\n\n```bash\nbash \u003c(curl -sSL https://raw.githubusercontent.com/michaelbolanos/vbman/main/vbman.sh)\n```\n\n\u003e No need to manually clone the repository. Just copy, paste, and go.\n\n---\n\n## Prerequisites\nEnsure that VirtualBox and `VBoxManage` are installed on your system:\n```bash\n# Install VirtualBox (Linux)\nsudo apt install virtualbox  # Debian-based\nsudo dnf install virtualbox  # Fedora-based\n\n# Install VirtualBox (macOS, via Homebrew)\nbrew install --cask virtualbox\n```\n\n---\n\n## Installation (Manual)\nClone the repository and make the script executable:\n```bash\ngit clone https://github.com/michaelbolanos/vbman.git\ncd vbman\nchmod +x vbman.sh\n```\n\n---\n\n## Usage\nRun the script to open the interactive menu:\n```bash\n./vbman.sh\n```\n\nAlternatively, run specific commands directly:\n```bash\n# List all VMs\n./vbman.sh list\n\n# Start a specific VM (by name or UUID)\n./vbman.sh start \u003cvm_name_or_uuid\u003e\n\n# Gracefully shut down a VM\n./vbman.sh shutdown \u003cvm_name_or_uuid\u003e\n\n# Force shut down a VM\n./vbman.sh force-shutdown \u003cvm_name_or_uuid\u003e\n```\n\n---\n\n## Example Output\n```\n======================================\n 🎛️ VirtualBox VM Management Script 🎛️\n======================================\n1) List all VMs (Show Status)\n2) Start a VM\n3) Shut down a VM\n4) Force shut down a VM\n5) Shut down ALL running VMs\n6) Force shut down ALL running VMs\n7) Exit\n======================================\nEnter your choice: \n```\n\n---\n\n## History: Iteration from Curl to Bash\nInitially, **vbman** was designed to be executed via a direct `curl` pipe:\n```bash\ncurl -sSL https://raw.githubusercontent.com/michaelbolanos/vbman/main/vbman.sh | bash\n```\nHowever, this method caused **input issues** where the script could not properly capture user choices in the interactive menu. This was due to `bash` reading input directly from the pipe instead of allowing keyboard interaction.\n\n### Iteration Process:\n1. **Direct Pipe Execution (`curl | bash`)** → Caused input issues.\n2. **Writing to a Temporary File First** → Allowed execution but cluttered the system.\n3. **Process Substitution (`bash \u003c(curl ...)`)** → Fixed interactive input while keeping the one-liner simple.\n\n### Final Solution:\nThe final iteration settled on:\n```bash\nbash \u003c(curl -sSL https://raw.githubusercontent.com/michaelbolanos/vbman/main/vbman.sh)\n```\n✅ Ensures full script execution before user input.  \n✅ Maintains simplicity—no need to manually download the script.  \n✅ Works consistently across macOS and Linux environments.\n\n---\n\n## 👤 Author\nCreated by [Michael Bolanos](https://github.com/michaelbolanos)\n\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelbolanos%2Fvbman","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fmichaelbolanos%2Fvbman","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fmichaelbolanos%2Fvbman/lists"}