π Hermit β Lightweight Virtual Machine Environments for Developers

π§ What is Hermit?
Hermit is a fast, developer-friendly CLI for creating and managing Linux-based development environments using Virtual Machines β without plugins, heavy runtimes, or complex provisioning tools.
Hermit focuses on:
- Simplicity over extensibility
- Speed over generality
- Clean developer experience over full-stack abstraction
If you have ever found Vagrant too slow, Docker too containerized, and setting up dev VMs too painful β Hermit is for you.
βοΈ System Requirements
| Requirement |
Version |
| OS |
Windows, macOS, or Linux |
| VirtualBox |
7.1.4 (required) |
| Go (for development) |
1.21+ |
β‘οΈ Download VirtualBox 7.1.4
π₯ Installation
Visit the GitHub Releases page and download the binary for your OS:
π§ macOS / Linux
# Download the latest binary (Select from releases page depending on your system)
curl -Lo hermit https://github.com/Kodo-Robotics/hermit/releases/latest/download/hermit-linux-amd64
# Make it executable
chmod +x hermit
# Move to a directory in your PATH
sudo mv hermit /usr/local/bin/
πͺ Windows
- Download hermit-windows-amd64.exe from the Releases page
- Rename to hermit.exe (optional)
- Add the directory to your PATH
- Run Hermit via terminal:
hermit
β¨ Features
- π§° Full VM lifecycle:
init, up, halt, destroy, status
- π SSH with NAT-based port forwarding
- π Dual-NIC support: always NAT + bridged/host-only
- π§ Human-friendly config via hermit.json
- π¦ Package and share VMs as .box files
- β‘ Blazing fast CLI (built in Go)
π¦ Try the Dev Box (Prebuilt)
Spin up a complete Ubuntu-based dev environment with:
β
VS Code Server (browser on :8080)
β
Python 3, Git, Node.js, Docker
β
SSH (vagrant@localhost:2222)
π₯ Download:
π dev-box-amd64.box (Google Drive)
π dev-box-arm64.box (Google Drive)
π§ Usage:
hermit init dev-box
hermit box add dev-box.box
hermit up
hermit ssh # SSH access
# open http://localhost:8080 for VS Code in browser
π§ Sample hermit.json
{
"vm_name": "dev-box",
"box": "dev-box",
"memory": 2048,
"cpus": 2,
"network": {
"mode": "nat",
"forwarded_ports": [
{ "guest": 22, "host": 2222 },
{ "guest": 8080, "host": 8080 }
]
}
}
β Why Hermit vs. Vagrant?
| Metric / Feature |
Hermit (Go) |
Vagrant (Ruby) |
Improvement with Hermit |
| CLI Language |
Go (native binary) |
Ruby |
β
No runtime required |
| Install Size |
~15 MB |
~350 MB+ |
β
~20Γ smaller |
| CLI Startup Time |
~0.05s |
~2.3s |
β
~45Γ faster |
| VM Boot Time |
~30β45s |
~2β5 minutes |
β
2β4Γ faster |
| Memory Usage |
~500 MB (minimal) |
~800 MB+ |
β
Lower runtime overhead |
| Config Format |
JSON (hermit.json) |
Ruby DSL (Vagrantfile) |
β
Cleaner, language-agnostic |
| Networking (NAT + Bridged) |
Built-in & simple |
Verbose & plugin-sensitive |
β
Easier dual-NIC config |
| Box Packaging |
hermit package |
vagrant package |
β
Smaller, faster |
| Port Forwarding |
JSON-based, automatic |
Requires manual config |
β
Works out of the box |
| Provisioning |
Planned |
Supported |
β Coming soon |
| Target Users |
Developers & local use cases |
DevOps/general provisioning |
π― Focused & developer-friendly |
π Core Commands
| Command |
Description |
hermit init |
Create a new hermit.json |
hermit up |
Start the VM |
hermit halt |
Shut down the VM |
hermit destroy |
Unregister and optionally delete |
hermit ssh |
SSH into the guest |
hermit status |
Show VM state |
hermit package |
Export the current VM to .box |
hermit box add |
Register a downloaded .box |
π¦ Build Your Own .box
hermit up
hermit ssh # install tools, setup env
hermit halt
hermit package --output my-env.box
We welcome ideas, feedback, and contributions:
π GitHub Issues
π License
Apache 2.0 Β© 2025 Kodo-Robotics