Every “run your own AI agent locally” tutorial I’d tried before either quietly needed a cloud API key by step 3, or broke the second it tried to actually use a tool. So I set out to see if OpenClaw — paired with a fully local Ollama model — could really run without ever touching a paid endpoint.
Here’s exactly How To Run OpenClaw With 100% Local Qwen 3.5 Model For Free.
What you’ll end up with
- Ollama running locally on Windows, serving Qwen 3.5 on your own machine
- OpenClaw installed and connected to that local model
- A working agent that can run terminal commands, write and execute scripts, and search the web — with zero API keys and zero subscription cost
Step 1: Install Ollama
Head to ollama.com/download, grab the Windows installer, and run it.
The installer extracts its files (you’ll watch a progress bar crawl through rocm_v7_1 DLLs — that’s normal, it’s bundling GPU acceleration support), then finishes in a minute or two.
Step 2: Confirm Ollama actually installed
Open PowerShell as Administrator and run:
ollama --version
You should see something like ollama version is 0.33.3. If that comes back, you’re good — move on.
Step 3: Pull the Qwen 3.5 model
Still in PowerShell:
ollama pull qwen3.5
This downloads the model weights to your machine. Depending on your connection and which quantization you land on, this can take a while — let it run. Once it’s done, the model lives entirely on your disk. No calls out to anyone.
Step 4: Try installing OpenClaw (and hit the wall)
Now for OpenClaw itself:
npm install openclaw@latest
Here’s where I got humbled. The install failed outright:
npm error [openclaw] error: this OpenClaw release requires Node >=24.16.0 <25 || >=26.1.0.
npm error [openclaw] detected Node 22.14.0 (exec: C:\Program Files\nodejs\node.exe).
npm error [openclaw] install Node: https://nodejs.org/en/download
npm error [openclaw] upgrade Node, then retry the OpenClaw update.
Error: failed to install openclaw: exit status 1
Turns out OpenClaw is picky about its Node.js version. If you’re on an older Node install (a lot of Windows machines still are), it will refuse to install rather than fail silently later. Annoying in the moment, genuinely appreciated in hindsight.
Step 5: Upgrade Node.js
Go to nodejs.org/en/download and grab the LTS build — at the time of writing that’s v24.21.0, which satisfies OpenClaw’s >=24.16.0 <25 requirement. Download the Windows installer and run it through.

If you’d rather manage multiple Node versions side by side (useful if other tools on your machine need an older Node), install nvm-windows instead and switch versions with nvm use 24.21.0. Either path works — I just did the straight installer for this run.
Once it finishes, verify it took:
node --version
You want to see v24.21.0 (or whatever current 24.x LTS is) staring back at you.
Step 6: Launch OpenClaw through Ollama
With Node sorted, this is now the easy part. Back in PowerShell:
ollama launch openclaw
You’ll see Installing OpenClaw... scroll by while it pulls everything down and wires itself up.
Step 7: Pick your model in the setup wizard
Once installed, OpenClaw drops you into a “Select models for OpenClaw” screen. By default it recommends a bunch of cloud models — glm-5.3-flash:cloud, deepseek-v4-flash:cloud, gemma4:31b-cloud, and so on. Skip all of those; that’s the paid-API path we’re avoiding.
Instead, open the More section and select qwen3.5 — the model you already pulled locally in Step 3. Confirm your selection (it’ll show something like “2 models selected”), and continue.
This is the step that actually matters for staying free: pick the local model, not a :cloud one.
Step 8: Connect the Gateway
OpenClaw runs a local gateway and opens a browser tab to connect to it. You’ll land on a screen that says:
This Gateway expects its token The Gateway at 127.0.0.1:18789 is reachable, but it needs a matching token or password before this browser can connect.

Don’t panic — this is just OpenClaw making sure only you can talk to your own local agent. To get the token, go back to your terminal and run:
openclaw gateway auth-token --show

This prints a long token string.

Copy it, paste it into the Gateway secret field in the browser, and hit Connect.

If your gateway isn’t currently running or no token is configured yet, you can generate one instead with:
openclaw doctor --generate-gateway-token
Once connected, you’re dropped straight into the OpenClaw chat interface — a proper workspace with your model already selected in the bottom bar (qwen3.5:latest).
Step 9: Take it for a spin
At this point OpenClaw greets you with: “Ask me anything; for system things I’ll ask OpenClaw.” Time to actually test whether this thing works.
Test 1 — can it run real commands?
I typed:
openclaw gateway stop
It checked the current gateway status first, proposed the exact PowerShell command it wanted to run (SCHTASKS /END /TN "OpenClaw Gateway Service"), and asked for confirmation before touching anything. I said yes, and it found the scheduled task and stopped it cleanly. No blind execution — it asks before it acts.

Test 2 — can it write and run code locally?
I asked it to:
Write a Python script that renames all .jpg files in this folder to include today's date, then run it
It checked the current date, located the workspace folder, wrote a rename_jpg.py script, and ran it — all without me touching an editor. (Turned out my workspace had no .jpg files to rename, which it correctly reported back instead of pretending it worked.)

Test 3 — can it search the live web?
Search the web for today's top AI news and summarize the top 5 stories
It pulled real, dated headlines and summarized each one in a couple of sentences — running entirely on the local qwen3.5:latest model, agent tagged main, tokens tracked right there in the status bar.

All three of these ran through the local model. No API key box to fill in anywhere in this flow.
The gotcha nobody warns you about: the /v1 endpoint
If you go digging through Ollama’s docs or other tutorials, you’ll see people point OpenAI-compatible tools at Ollama using a base URL that ends in /v1. Don’t copy that here. With OpenClaw, hitting Ollama’s OpenAI-compatible /v1 endpoint will silently break tool calling — the chat will look fine, but function/tool calls just won’t fire, and you won’t get an obvious error telling you why.
Point OpenClaw at Ollama’s native base URL instead (no /v1 suffix), and tool calling behaves correctly. This one setting is the difference between “works” and “looks like it works but quietly doesn’t” — worth double-checking if your agent seems to ignore tool requests.
So — is it actually free?
Yes. Once Qwen 3.5 is pulled and running through Ollama, every request in this workflow — command execution, code generation, web search summarization — runs against your own local model. No token metering, no per-request billing, no cloud vendor in the loop.
The tradeoffs are the honest ones: you need the disk space and hardware to run Qwen 3.5 comfortably, and local models will generally lag frontier cloud models on the hardest reasoning tasks. For day-to-day agentic work — file operations, scripting, research summarization — it held up.
If you hit the Node version error, fix Node first. If tool calls seem to vanish into nothing, check your base URL isn’t pointed at /v1. Past those two landmines, this is a genuinely free local agent setup.
