coiai Logo

This article is an English translation of the original Japanese post. Read the Japanese original →

Steps to Get OpenClaw Running with Ollama

January 31, 2026

Categories: 未分類

Conclusion

To use the currently trendy clawdbot → moltbot → openclaw, I set it up with Ollama, which runs locally, in order to save on API costs.

Cutting to the chase: on my setup (an Intel Mac), generation was so slow it was unworkable, so I ended up going back to the safe, reliable option of using the Anthropic API instead.

Since setting up Ollama took a fair bit of time, I'm leaving the process here as a record anyway.

Environment

How to do it


Installing OpenClaw

I followed the official commands.

https://openclaw.ai

curl -fsSL https://openclaw.ai/install.sh | bash

There are various things you configure during installation, but it doesn't really matter what you pick — you can tweak the JSON afterward to change it.


Installing Ollama and preparing a model

Install it from the official site.

https://ollama.com

After installing, fetch the model you want to use (e.g. llama3.2).

ollama pull llama3.2

Check it with the model list.

ollama list

About the config file (openclaw.json)

OpenClaw's settings are managed through a JSON file.

In my case it ended up looking like this.

Location
~/.openclaw/openclaw.json

{
  "meta": {
    "lastTouchedVersion": "2026.1.29",
    "lastTouchedAt": "2026-01-31T12:53:00.737Z"
  },
  "wizard": {
    "lastRunAt": "2026-01-31T12:53:00.700Z",
    "lastRunVersion": "2026.1.29",
    "lastRunCommand": "configure",
    "lastRunMode": "local"
  },
  "models": {
    "providers": {
      "ollama": {
        "baseUrl": "http://127.0.0.1:11434/v1",
        "apiKey": "ollama-local",
        "api": "openai-completions",
        "models": [
          {
            "id": "llama3.2:1b",
            "name": "llama3.2:1b",
            "api": "openai-completions",
            "reasoning": false,
            "input": [
              "text"
            ],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 128000,
            "maxTokens": 2048
          },
          {
            "id": "llama3.2:latest",
            "name": "llama3.2:latest",
            "api": "openai-completions",
            "reasoning": false,
            "input": [
              "text"
            ],
            "cost": {
              "input": 0,
              "output": 0,
              "cacheRead": 0,
              "cacheWrite": 0
            },
            "contextWindow": 200000,
            "maxTokens": 8192
          }
        ]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "ollama/llama3.2:1b"
      },
      "workspace": "/Users/coiai/.openclaw/workspace",
      "maxConcurrent": 4,
      "subagents": {
        "maxConcurrent": 8
      }
    }
  },
  "messages": {
    "ackReactionScope": "group-mentions"
  },
  "commands": {
    "native": "auto",
    "nativeSkills": "auto"
  },
  "hooks": {
    "internal": {
      "enabled": true,
      "entries": {
        "boot-md": {
          "enabled": true
        }
      }
    }
  },
  "gateway": {
    "port": 18789,
    "mode": "local",
    "bind": "loopback",
    "auth": {
      "mode": "token",
      "token": "03f2cd1addc279014f135ad07e99a30b90e1c985f465d897"
    },
    "tailscale": {
      "mode": "off",
      "resetOnExit": false
    },
    "remote": {
      "token": "03f2cd1addc279014f135ad07e99a30b90e1c985f465d897"
    }
  },
  "skills": {
    "install": {
      "nodeManager": "npm"
    }
  }
}

Starting Ollama

Since OpenClaw calls out to Ollama, keep Ollama running in a separate terminal.

ollama serve

Once it's started, just leave it running


Starting the OpenClaw gateway

In your main terminal, start OpenClaw's gateway.

openclaw gateway --port 18789 --verbose

After that, open the dashboard in your browser.

http://127.0.0.1:18789/

Things I ran into

Here's what I tried while setting this up.

No response comes back

Responses are slow

Responses come out weird (parsed as things like "Twilio API," "JSON," or "session ID")

Text disappears right after sending

Can't connect to the dashboard

Want to redo the configuration