Created
January 30, 2026 18:17
-
-
Save theronic/ff7e91b02029a712717653cb687d89d9 to your computer and use it in GitHub Desktop.
OpenClaw Vagrantfile (please comment on issues and I'll fix)
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
| vm_name = File.basename(Dir.getwd) | |
| Vagrant.configure("2") do |config| | |
| config.vm.box = "bento/ubuntu-24.04" | |
| # Sync Documents folder to /agent-workspace | |
| config.vm.synced_folder "~/Documents/agent-workspace", "/agent-workspace", type: "virtualbox" | |
| config.vm.provision "file", source: "~/.claude.json", destination: "/home/vagrant/.claude.json" | |
| config.vm.provision "file", source: "~/.config/gh", destination: "/home/vagrant/.config/gh" | |
| config.vm.provider "virtualbox" do |vb| | |
| vb.memory = "4096" | |
| vb.cpus = 2 | |
| vb.gui = false | |
| vb.name = vm_name | |
| # Fix for VirtualBox 7.2.4 CPU regression | |
| vb.customize ["modifyvm", :id, "--audio", "none"] | |
| vb.customize ["modifyvm", :id, "--usb", "off"] | |
| end | |
| # for Openclaw config link | |
| config.vm.network "forwarded_port", guest: 18789, host: 18789 | |
| # System-level provisioning (runs as root) | |
| config.vm.provision "shell", inline: <<-SHELL | |
| export DEBIAN_FRONTEND=noninteractive | |
| # Install dependencies | |
| apt-get update | |
| apt-get install -y docker.io git unzip curl ca-certificates gnupg fish tmux neovim | |
| # Install GitHub CLI | |
| curl -fsSL https://cli.github.com/packages/githubcli-archive-keyring.gpg | dd of=/usr/share/keyrings/githubcli-archive-keyring.gpg | |
| chmod go+r /usr/share/keyrings/githubcli-archive-keyring.gpg | |
| echo "deb [arch=$(dpkg --print-architecture) signed-by=/usr/share/keyrings/githubcli-archive-keyring.gpg] https://cli.github.com/packages stable main" | tee /etc/apt/sources.list.d/github-cli.list > /dev/null | |
| apt-get update | |
| apt-get install -y gh | |
| # Install Node.js 22 LTS via NodeSource (supports import attributes) | |
| mkdir -p /etc/apt/keyrings | |
| curl -fsSL https://deb.nodesource.com/gpgkey/nodesource-repo.gpg.key | gpg --dearmor -o /etc/apt/keyrings/nodesource.gpg | |
| echo "deb [signed-by=/etc/apt/keyrings/nodesource.gpg] https://deb.nodesource.com/node_22.x nodistro main" | tee /etc/apt/sources.list.d/nodesource.list | |
| apt-get update | |
| apt-get install -y nodejs | |
| # Install pnpm, Claude Code, and Clawdbot globally | |
| npm install -g pnpm @anthropic-ai/claude-code openclaw@latest --no-audit | |
| npx @realmikekelly/claude-sneakpeek quick --name claudesp | |
| usermod -aG docker vagrant | |
| SHELL | |
| # User-level provisioning (runs as vagrant) | |
| config.vm.provision "shell", privileged: false, inline: <<-SHELL | |
| # Fix permissions for copied credentials | |
| chmod 600 "$HOME/.claude.json" 2>/dev/null || true | |
| # chmod 700 "$HOME/.ssh" && chmod 600 "$HOME/.ssh/id_*" 2>/dev/null || true | |
| chmod 700 "$HOME/.config/gh" && chmod 600 "$HOME/.config/gh/"*.yml 2>/dev/null || true | |
| SHELL | |
| end |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment