hermit

command module
v0.1.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: May 27, 2025 License: Apache-2.0 Imports: 1 Imported by: 0

README ΒΆ

🐚 Hermit β€” Lightweight Virtual Machine Environments for Developers

Hermit Logo

Build Go Version Platform


🧠 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
  1. Download hermit-windows-amd64.exe from the Releases page
  2. Rename to hermit.exe (optional)
  3. Add the directory to your PATH
  4. 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

πŸ‘₯ Community

We welcome ideas, feedback, and contributions:

πŸ› GitHub Issues

πŸ“„ License

Apache 2.0 Β© 2025 Kodo-Robotics

Documentation ΒΆ

Overview ΒΆ

Copyright Β© 2025 Kodo Robotics

Directories ΒΆ

Path Synopsis
pkg

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL