The official CLI for Hypeman.
brew install onkernel/tap/hypemango install 'github.com/onkernel/hypeman-cli/cmd/hypeman@latest'go run cmd/hypeman/main.go# Pull an image
hypeman pull nginx:alpine
# Boot a new VM (auto-pulls image if needed)
hypeman run --name my-app nginx:alpine
# List running VMs
hypeman ps
# show all VMs
hypeman ps -a
# View logs of your app
# All commands support using VM name, ID, or partial ID
hypeman logs my-app
hypeman logs -f my-app
# Execute a command in a running VM
hypeman exec my-app whoami
# Shell into the VM
hypeman exec -it my-app /bin/sh
# VM lifecycle
# Turn off the VM
hypeman stop my-app
# Boot the VM that was turned off
hypeman start my-app
# Put the VM to sleep (paused)
hypeman standby my-app
# Awaken the VM (resumed)
hypeman restore my-app
# Create a reverse proxy ("ingress") from the host to your VM
hypeman ingress create --name my-ingress my-app --hostname my-nginx-app --port 80 --host-port 8081
# List ingresses
hypeman ingress list
# Curl nginx through your ingress
curl --header "Host: my-nginx-app" http://127.0.0.1:8081
# Delete an ingress
hypeman ingress delete my-ingress
# Delete all VMs
hypeman rm --force --allMore ingress features:
- Automatic certs
- Subdomain-based routing
# Make your VM if not already present
hypeman run --name my-app nginx:alpine
# This requires configuring the Hypeman server with DNS credentials
# Change --hostname to a domain you own
hypeman ingress create --name my-tls-ingress my-app --hostname hello.hypeman-development.com -p 80 --host-port 7443 --tls
# Curl through your TLS-terminating reverse proxy configuration
curl \
--resolve hello.hypeman-development.com:7443:127.0.0.1 \
https://hello.hypeman-development.com:7443
# OR... Ingress also supports subdomain-based routing
hypeman ingress create --name my-tls-subdomain-ingress '{instance}' --hostname '{instance}.hypeman-development.com' -p 80 --host-port 8443 --tls
# Curling through the subdomain-based routing
curl \
--resolve my-app.hypeman-development.com:8443:127.0.0.1 \
https://my-app.hypeman-development.com:8443
# Delete all ingress
hypeman ingress delete --allMore logging features:
- Cloud Hypervisor logs
- Hypeman operational logs
# View Cloud Hypervisor logs for your VM
hypeman logs --source vmm my-app
# View Hypeman logs for your VM
hypeman logs --source hypeman my-appFor details about specific commands, use the --help flag.
The CLI also provides resource-based commands for more advanced usage:
hypeman [resource] [command] [flags]--debug- Enable debug logging (includes HTTP request/response details)--version,-v- Show the CLI version
When developing features in the main hypeman repo, Stainless automatically creates preview branches in stainless-sdks/hypeman-cli with your API changes. You can check out these branches locally to test the CLI changes:
# Checkout preview/<branch> (e.g., if working on "devices" branch in hypeman)
./scripts/checkout-preview devices
# Checkout an exact branch name
./scripts/checkout-preview -b main
./scripts/checkout-preview -b preview/my-featureThe script automatically adds the stainless remote if needed and also updates go.mod to point the hypeman-go SDK dependency to the corresponding preview branch in stainless-sdks/hypeman-go.
Warning: The
go.modandgo.sumchanges fromcheckout-previeware for local testing only. Do not commit these changes.
After checking out a preview branch, you can build and test the CLI:
go build -o hypeman ./cmd/hypeman
./hypeman --helpYou can also point the SDK dependency independently:
# Point hypeman-go to a specific branch
./scripts/use-sdk-preview preview/my-feature
# Point to a specific commit
./scripts/use-sdk-preview abc1234def567