Throwaway containers where every byte of traffic leaves through a VPN tunnel and an inspecting mitmproxy — your real IP never leaks, and you watch exactly what your tools send.
Ships claude, codex, copilot, agy, gh, wrangler, ollama, plus git, python3, jq — in a shell that vanishes when you close it. Your project folder and a few logins are all that persist.
$curl -fsSL hihi.sh | sh
macOS + Linux · needs Docker, bash, curl · then hihi up
Always on. Holds the OpenVPN tunnel and mitmproxy, and routes everything the other containers send. Supervises both — either one dying is restarted within seconds.
cli
The ephemeral dev shell. Your directory is mounted at ~/project; --docker adds a Docker daemon inside the session, --port publishes one out.
claude
Claude Code with its own VPN in one standalone container — no gateway, no inspection. The fallback that keeps working while the rest is being rebuilt.
browser
Hardened Chromium on a KasmVNC desktop at localhost:8083. Mounts nothing of yours but ./.hihi-dl, where its downloads land.
Commands
up
Self-update, start the gateway — first run writes a config template to fill in
down
Stop the gateway and remove every hihi container
cli
Ephemeral shell or one command [--port N] [--lan] [--docker]
claude
Claude Code + its own VPN, standalone [--vpn LOC/PROTO]
browser
Ephemeral Chromium on localhost [port] [--verbose]
ls
Pick a running session and open a shell in it
status
Gateway state, VPN health, external IPs
logs
Follow the gateway logs
gateway
Control the running gateway status · reconnect · reset · location LOC
update
Report each tool's current → latest, rebuild only what moved [--check] [--only T,T] [--full]
hi is the small-tool dispatcher the sandbox bakes into its cli image, and it installs on your own machine the same way. One folder per tool, one manifest each — adding a tool is adding a folder.
$curl -fsSL hihi.sh/hi | sh
bash, plus whatever each command declares · hi lists everything, dimming what is missing
cf
List and delete Cloudflare Workers and storage, with what still binds them
git
Stage, write the commit message with an AI CLI, push · list/delete/back up GitHub repos