I wanted to play around with OpenClaw, but didn’t want to install it directly on my computer. I’m running Fedora 42 on this laptop and it comes with a virtualization app called “Boxes” which lets you create virtual machines (VMs) running just about anything you need.
I downloaded the .iso for Ubuntu 25 from the Ubuntu website and installed it onto a fresh VM.
I provisioned the VM with 30GB of hard drive space and 4GB of RAM. I’m pretty sure it can run on less, but I didn’t want to run into resource constraints while playing around.
I checked the OpenClaw
docs
to see how to install it, and it said I should just be able to do an npm install -g openclaw@latest, but when I tried that I
didn’t have nodejs installed, so needed to install that first.
At first I installed the stock nodejs that’s included as a package with Ubuntu
sudo apt install nodejs but that ended up being too old (version 20) to
support OpenClaw (needs 22+), so I uninstalled that and downloaded nodejs
directly from the nodejs website
Download and install nodejs #
I browsed to https://nodejs.org/en/download and followed the docs on that page:
# Download and install nvm:
curl -o- https://raw.githubusercontent.com/nvm-sh/nvm/v0.40.4/install.sh | bash
# in lieu of restarting the shell
\. "$HOME/.nvm/nvm.sh"
# Download and install Node.js:
nvm install 24
# Verify the Node.js version:
node -v # Should print "v24.13.1".
# Verify npm version:
npm -v # Should print "11.8.0".
That went smoothly, so I continued with the OpenClaw installation.
Install OpenClaw #
This time npm install -g openclaw@latest worked.
Run OpenClaw quickstart #
I ran the onboard sub command as specified in the docs:
openclaw onboard --install-daemon
And that ran me through a straightforward installer, which allowed me to pick an LLM provider and optionally install some helpers as well as configure communication channels. It helpfully told me that I needed to install homebrew as apparently many OpenClaw helpers are distributed via homebrew.
I attempted to configure Signal as well, but that didn’t seem to work on the first attempt. I’ll have to debug that later.
After finishing the onboarding, OpenClaw asked me “How do you want to hatch your bot?” I picked TUI (recommended) and then it errored out:
Pairing required. Run `openclaw devices list`, approve your request ID, then
reconnect.
I exited the onboarding and tried to do what was asked:
$ openclaw devices list
๐ฆ OpenClaw 2026.2.21-2 (35a57bc) โ Your inbox, your infra, your rules.
โ
gateway connect failed: Error: pairing required
But that didn’t seem to work. I tried running that a few times, and while I can see that there’s a request “pending” I’m not sure where to go to approve it.
Pending (1)
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโโโโโฌโโโโโโโโโฌโโโโโโโโโ
โ Request โ Device โ Role โ IP โ Age โ Flags โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโผโโโโโโโโโโโโโผโโโโโโโโโผโโโโโโโโโค
โ 1d9bb16c-0492-4c34-bd4e- โ opencl โ operat โ โ just โ repair โ
โ 345ae2fae3bb โ aw-tui โ or โ โ now โ โ
โโโโโโโโโโโโโโโโโโโโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโดโโโโโโโโโโโโโดโโโโโโโโโดโโโโโโโโโ
After poking around for a bit, I saw that there was another command to open the
dashboard openclaw dashboard. I ran that, and for some reason, that worked
even though the TUI wouldn’t.
Run OpenClaw dashboard #
openclaw dashboard
When the dashboard came up I had a nice chat window and I could start talking to my new bot.
Request approval #
I figured out how to approve the TUI request. After you’ve listed them, you need
to copy the Request ID () and then pass that ID to the approve sub command:
$ openclaw devices approve b37ec0e0-a1ba-48ef-b477-0adb3cf012a9
Then openclaw tui should work.
Now what? #
Ok, cool, so now I have OpenClaw up and running in its own VM and I can start playing with it. It named itself Patch, by the way.
Alternatives #
I’ve been seeing a bunch of neat alternatives to OpenClaw lately as well.
Here’s one that runs entirely in the browser, fully sandboxed: https://www.openbrowserclaw.com/ on a VM running inside WASM (technology is amazing).
Here’s one that’s built in Python: https://github.com/openconstruct/freeclaw
And another one in Go: https://github.com/louisho5/picobot
I expect the landscape to change pretty quickly and that in 6 months we’ll be using something totally different.
Reply by Email