This project spins up cute little linux VMs on Docker which expose a port over a Tailscale network. These containers have the gemini-cli and can be used to vibe code from a remote terminal with an SSH key, like from a phone while committing time theft at your mind-rotting call-center gig.
-
Clone the repository:
git clone <repository-url> cd box-o-vibes
-
Configure Environment: Copy the example environment file and add your Tailscale authentication key.
cp .env.example .env # Edit .env and set TS_AUTHKEY=tskey-auth-bx... -
Add SSH Keys: Add your public SSH key to the default configuration to allow access.
# Replace with your actual public key or file path cat ~/.ssh/id_rsa.pub > config/default/authorized_keys
The vibes script is your main interface for managing the containers.
./vibes [command]./vibes up: Start all vibes (detached mode)../vibes down: Stop all vibes../vibes new <name>: Create a new vibe configuration with a specific name../vibes logs [vibe]: View logs (default: all)../vibes ps: List running vibes.
To create a new isolated environment:
./vibes new my-vibeThis will:
- Create necessary directories in
volumes/my-vibeandconfig/my-vibe. - Append a new service definition to
docker-compose.yml. - Instruct you to add SSH keys to
config/my-vibe/authorized_keys.
After creating, start it with ./vibes up.
To configure vibes to start automatically when you log in to your Mac:
./vibes install-startupThis installs a user-level LaunchAgent that runs ./vibes up on login.
To uninstall:
./vibes uninstall-startupOnce your vibe is up and connected to Tailscale, you can SSH into it using the hostname defined (e.g., box-o-vibes-default).
ssh vibe@box-o-vibes-default