#hello

153 messages Ā· Page 1 of 1 (latest)

granite fjord
#

i recently purchased a pi5 16g and have ollama running and open claw wont connectt to eachother also telagram wont work

odd condorBOT
granite fjord
#

huh

#

??

alpine cobaltBOT
#

Let me check the installed docs and the repo docs so I can give you something accurate.

#

I found the main gotchas. I’m pulling the exact Telegram troubleshooting bits too so I don’t hand-wave this.

#

yeah, that’s frustrating. Two very common gotchas here:

  1. Ollama

    • OpenClaw should use the native Ollama URL, like http://127.0.0.1:11434
    • Do not use /v1 for normal OpenClaw Ollama setup
    • If you added an explicit models.providers.ollama block, auto-discovery turns off, so you must define models manually
  2. Telegram

    • Telegram does not use openclaw channels login telegram
    • You need channels.telegram.botToken
    • DM pairing is usually on by default, and /start alone does not generate a pairing code

Please paste these outputs in one message:

openclaw --version
#

For Telegram, the minimal shape is basically:

{
  channels: {
    telegram: {
      enabled: true,
      botToken: "REDACTED",
      dmPolicy: "pairing"
    }
  }
}

Once you paste the outputs/config, I can usually spot the issue pretty fast.

#

sorry, I made that more complicated than it needed to be šŸ˜…

On your Pi, run these 3 commands and paste what they print:

openclaw --version
openclaw status
curl http://127.0.0.1:11434/api/tags

And for Telegram, answer this:

  • did you make a bot in BotFather
  • did you put that bot token into OpenClaw config

If you want, I can walk you through it one step at a time.

#

open a terminal on the Raspberry Pi, type this, then send a screenshot of what comes back:

openclaw status

That’s it for now. We’ll do it one step at a time.

granite fjord
#

How do i set this up like with the olamma and hange the api thingy

alpine cobaltBOT
#

yep, the ā€œAPI thingyā€ is probably the Ollama URL.

If OpenClaw and Ollama are on the same Pi, use:

http://127.0.0.1:11434

Important: do not use /v1 at the end.

Easiest setup

On the Pi, run:

export OLLAMA_API_KEY=ollama-local
openclaw onboard
#

Then when OpenClaw asks:

  • provider: Ollama
  • base URL: http://127.0.0.1:11434
  • local or local+cloud: pick what you want

After that, run:

openclaw models list
openclaw status

If you already set it up before, the big fix is usually just:

  • find the Ollama URL in your config
  • change it from something like http://127.0.0.1:11434/v1
granite fjord
#

wait what should i put in for the model

alpine cobaltBOT
#

use the exact name from ollama list.

So on the Pi, run:

ollama list

Then copy one of those names exactly into OpenClaw.

Example rule:

  • in onboarding, enter the raw Ollama name, like whatever-you-see-there
  • later, in OpenClaw commands, it usually becomes ollama/<that-name>

So if ollama list shows nothing, that means you need to download a model first.

#

If you want, paste the output of ollama list here and I’ll tell you which line to use.

granite fjord
#

deepseek-r1:1.5b e0979632db5a 1.1 GB 4 hours ago
\

alpine cobaltBOT
#

yep, use:

deepseek-r1:1.5b

That exact text.

Then later, if OpenClaw asks for the full provider/model name, use:

ollama/deepseek-r1:1.5b

Small heads-up, 1.5b is very small for OpenClaw-style agent tasks, so setup should work, but the model itself may be pretty weak once it’s running.

If you finish onboarding and it still fails, paste openclaw status and I’ll help with the next step.

granite fjord
#

i dont see it in the model list

alpine cobaltBOT
#

if ollama list shows it, but OpenClaw does not, then OpenClaw is not seeing your Ollama server yet.

Try this:

  1. make sure the Ollama URL is
http://127.0.0.1:11434

and not /v1

  1. in the Pi terminal, run:
export OLLAMA_API_KEY=ollama-local
#
openclaw models list
  1. if it still doesn’t show up, run these and paste the output:
openclaw models status
curl http://127.0.0.1:11434/api/tags

Also important, if you manually added a models.providers.ollama config block, OpenClaw stops auto-discovering models unless you define them manually.

So the short version is: for now, keep it simple, use Ollama at 127.0.0.1:11434, no /v1, and let OpenClaw auto-discover it.

granite fjord
#

i dont see eather should i just dwonload a diffrent llm

alpine cobaltBOT
#

no, don’t download a different LLM yet. That probably won’t fix this.

If OpenClaw can’t see any Ollama model, the problem is usually the connection, not the model.

Do this one check on the Pi:

curl http://127.0.0.1:11434/api/tags

Then send a screenshot of the result.

  • if you get a big JSON-looking response, Ollama is running fine
  • if you get an error, OpenClaw can’t reach Ollama yet

That’ll tell us which side is broken.

granite fjord
#

{"models":[{"name":"deepseek-r1:1.5b","model":"deepseek-r1:1.5b","modified_at":"2026-04-12T16:20:55.928122792-04:00","size":1117322768,"digest":"e0979632db5a88d1a53884cb2a941772d10ff5d055aabaa6801c4e36f3a6c2d7","details":{"parent_model":"joewarrior9@joesrobit:~ $

alpine cobaltBOT
#

perfect, that means Ollama is working šŸŽ‰

So the problem is on the OpenClaw side, not the model.

Next, in the same terminal, run:

export OLLAMA_API_KEY=ollama-local
openclaw models status

Then send a screenshot of that output.

That will tell us whether OpenClaw can see Ollama now.

granite fjord
#

$ export OLLAMA_API_KEY=ollama-local
openclaw models status

šŸ¦ž OpenClaw 2026.4.11 (769908e) — We ship features faster than Apple ships calculator updates.

Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : huggingface/deepseek-ai/DeepSeek-R1
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (1) : Hugging Face -> huggingface/deepseek-ai/DeepSeek-R1
Configured models (1): huggingface/deepseek-ai/DeepSeek-R1

Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (0): -

  • huggingface effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | huggingface:default=hf_mLkiN...YHDGnDYi
  • ollama effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | ollama:default=marker(ollama-local) | env=ol...al | source=env: OLLAMA_API_KEY

OAuth/token status

  • none
    joewarrior9@joesrobit:~ $ ^C
alpine cobaltBOT
#

nice, this is actually good news.

OpenClaw can see Ollama auth now, but your default model is still Hugging Face:

Default : huggingface/deepseek-ai/DeepSeek-R1

So next, switch the default model to your local Ollama model:

openclaw models set ollama/deepseek-r1:1.5b
openclaw models status

Then paste what it prints.

#

If it still acts weird after that, run:

openclaw gateway restart

We’re close.

granite fjord
#

penclaw models set ollama/deepseek-r1:1.5b
openclaw models status

šŸ¦ž OpenClaw 2026.4.11 (769908e) — If it works, it's automation; if it breaks, it's a "learning opportunity."

Config overwrite: /home/joewarrior9/.openclaw/openclaw.json (sha256 23c01373e548073073a35b5aea13fc0f3c5c65777791463d20de7719938112d2 -> 4e838c6b7366bd3e1d4597acf746f3609f78018f0dd12cc114836cfe20391205, backup=/home/joewarrior9/.openclaw/openclaw.json.bak)
Updated ~/.openclaw/openclaw.json
Default model: ollama/deepseek-r1:1.5b

šŸ¦ž OpenClaw 2026.4.11 (769908e) — Your .env is showing; don't worry, I'll pretend I didn't see it.

Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : ollama/deepseek-r1:1.5b
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (1) : Hugging Face -> huggingface/deepseek-ai/DeepSeek-R1
Configured models (2): huggingface/deepseek-ai/DeepSeek-R1, ollama/deepseek-r1:1.5b

Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (0): -

  • huggingface effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | huggingface:default=hf_mLkiN...YHDGnDYi
  • ollama effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | ollama:default=marker(ollama-local) | env=ol...al | source=env: OLLAMA_API_KEY

OAuth/token status

  • none
alpine cobaltBOT
#

nice, Ollama is set up now šŸŽ‰

Your default model is now:

ollama/deepseek-r1:1.5b

So next, run:

openclaw gateway restart

After that, try OpenClaw again. The Ollama part should be connected now.

Telegram, very short version

#

Telegram needs a bot token from @BotFather. Don’t paste the token here.

You need this in config:

{
  channels: {
    telegram: {
      enabled: true,
      botToken: "YOUR_TOKEN",
      dmPolicy: "pairing"
    }
  }
}

Then:

#
openclaw gateway restart
openclaw pairing list telegram

And DM your bot on Telegram.

If you want, send ā€œtelegram nextā€ and I’ll walk you through the Telegram setup one step at a time.

granite fjord
#

bash: dmPolicy:: command not found
bash: syntax error near unexpected token }' bash: syntax error near unexpected token }'
bash: syntax error near unexpected token `}'

it says all were not found

alpine cobaltBOT
#

ah, yep, that part was my fault, sorry. That JSON was a config example, not something to paste into bash.

Use these exact terminal commands instead, one by one:

openclaw config set channels.telegram.enabled true
openclaw config set channels.telegram.botToken "PASTE_YOUR_BOTFATHER_TOKEN_HERE"
openclaw config set channels.telegram.dmPolicy "pairing"
openclaw gateway restart

Then on Telegram:

  1. open your bot chat
  2. send it a normal message like hello (not just /start)

Then back in the Pi terminal run:

#
openclaw pairing list telegram

If it shows a code, approve it with:

openclaw pairing approve telegram CODE

Don’t paste your Telegram token here.

If you want, do the first command only and tell me what it says.

granite fjord
#

it says no pending telegram pairing requests

alpine cobaltBOT
#

okay, that usually means Telegram never reached OpenClaw.

Most likely causes:

  • wrong bot token
  • wrong bot chat, you messaged a different bot
  • gateway wasn’t restarted after adding the token
  • you sent /start only, instead of a normal message like hello

Next check

On the Pi, run:

openclaw logs --follow

Then, on Telegram, send your bot:

#
hello

If nothing shows up in the logs, the token/bot setup is wrong.
If something shows up, paste it here and I’ll tell you the next step.

So, one test:

  1. run openclaw logs --follow
  2. message the bot hello
  3. send me what appears in the terminal
granite fjord
#

so it aproved but now i keep seeing something went wrong while processing what do i do now

alpine cobaltBOT
#

nice, that means Telegram is connected now šŸŽ‰

The new problem is the processing/model step, not Telegram.

Do this on the Pi:

openclaw gateway restart
openclaw logs --follow

Then send your Telegram bot a simple message like:

hello
#

and paste the error lines that show up in the terminal.

Small heads-up, that deepseek-r1:1.5b model is tiny, so if the logs mention model/tool errors, the model itself may be the problem rather than Telegram. But let’s confirm with the logs first.

granite fjord
#

00:48:20+00:00 info gateway {"subsystem":"gateway"} loading configuration…
00:48:20+00:00 info gateway {"subsystem":"gateway"} resolving authentication…
00:48:21+00:00 info gateway {"subsystem":"gateway"} starting...
00:48:24+00:00 info gateway {"subsystem":"gateway"} starting HTTP server...
00:48:24+00:00 info gateway/canvas {"subsystem":"gateway/canvas"} canvas host mounted at http://127.0.0.1:18789/__openclaw__/canvas/ (root /home/joewarrior9/.openclaw/canvas)
00:48:24+00:00 info gateway {"subsystem":"gateway"} MCP loopback server listening on http://127.0.0.1:37599/mcp
00:48:24+00:00 info gateway/heartbeat {"subsystem":"gateway/heartbeat"} {"intervalMs":1800000} heartbeat: started
00:48:24+00:00 info gateway/health-monitor {"subsystem":"gateway/health-monitor"} started (interval: 300s, startup-grace: 60s, channel-connect-grace: 120s)
00:48:24+00:00 info gateway {"subsystem":"gateway"} agent model: ollama/deepseek-r1:1.5b
00:48:24+00:00 info gateway {"subsystem":"gateway"} ready (6 plugins: acpx, browser, device-pair, phone-control, talk-voice, telegram; 3.4s)
00:48:24+00:00 info gateway {"subsystem":"gateway"} log file: /tmp/openclaw/openclaw-2026-04-12.log
00:48:24+00:00 info gateway {"subsystem":"gateway"} starting channels and sidecars...
00:48:24+00:00 info cron {"module":"cron","storePath":"/home/joewarrior9/.openclaw/cron/jobs.json"} {"enabled":true,"jobs":0,"nextWakeAtMs":null} cron: started

alpine cobaltBOT
#

that part actually looks good. Gateway started, Telegram loaded, and it’s using your Ollama model.

What you pasted is just the startup log, not the error yet.

Do this:

  1. keep openclaw logs --follow running
  2. send your Telegram bot hello
  3. copy the new lines that appear right after that

I need the part after you message the bot, especially anything with:

  • error
  • warn
  • ollama
  • telegram
#

You’re close, we just need the actual failure line now.

granite fjord
#

gateway connect failed: GatewayClientRequestError: pairing required

alpine cobaltBOT
#

I’m checking the exact meaning of that pairing error so I don’t send you in circles.

#

I found the exact pairing doc path. Let me grab the troubleshooting wording so I can give you the right next command.

#

that line is not the Telegram DM pairing. It’s a gateway device pairing error.

To fix that, run:

openclaw devices list

If you see a pending request, approve it:

openclaw devices approve REQUEST_ID

But also, that may still not be the real Telegram processing error. It can just be the log client complaining while trying to connect.

So after approving the device, do this again:

#
openclaw logs --follow

then send your Telegram bot hello, and paste the new lines that appear after that.

So, short version:

  1. openclaw devices list
  2. approve anything pending
  3. run logs again
  4. message the bot
  5. paste the new error lines

We’re hunting the last actual failure now.

granite fjord
#

gateway connect failed: GatewayClientRequestError: pairing required
ā—‡
Direct scope access failed; using local fallback.

alpine cobaltBOT
#

that part is okay. It just means the log command couldn’t connect directly, so it switched to the local log file.

Let’s skip that noise and read the log file directly.

Run this instead:

tail -f "$(ls -t /tmp/openclaw/openclaw-*.log | head -1)"

Then send your Telegram bot:

hello

and paste the new lines that appear after that.

#

We can ignore the ā€œpairing required / local fallbackā€ message for now. The real error should show after you message the bot.

granite fjord
#

theres alot of stuff like Unknown model: ollama/deepseek-r1:1.5b. Ollama requires authentication to be registered as a provider. Set OLLAMA_API_KEY="ollama-local" (any value works) or run "openclaw configure". See: https://docs.openclaw.ai/providers/ollama\"","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{"subsystem":"diagnostic"}","parentNames":["openclaw"],"date":"2026-04-13T00:54:02.001Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///home/joewarrior9/.npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js:330:14","fileName":"subsystem-D2gFnOcq.js","fileNameWithLine":"subsystem-D2gFnOcq.js:330","fileColumn":"14","fileLine":"330","filePath":".npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js","filePathWithLine":".npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js:330","method":"logToFile"}},"time":"2026-04-12T20:54:02.002-04:00"}
{"0":"{"subsystem":"diagnostic"}","1":"lane task error: lane=session:agent:main:telegram:direct:8495810719 durationMs=205 error="FailoverError: Unknown model: ollama/deepseek-r1:1.5b. Ollama requires authentication to be registered as a

alpine cobaltBOT
#

perfect, we found it.

Ollama works. Telegram works.
The remaining problem is just this:

the gateway service does not have Ollama registered permanently

Your earlier export OLLAMA_API_KEY=ollama-local only helped in that one terminal. It did not stick for the running gateway.

Fix

Run:

openclaw configure

Then choose/setup:

#
  • provider: Ollama
  • API key: ollama-local (any value works)
  • base URL: http://127.0.0.1:11434
  • no /v1

Then restart:

openclaw gateway restart

Then test Telegram again.

So the short explanation is:

  • export OLLAMA_API_KEY=... was temporary
  • openclaw configure makes it persistent for OpenClaw
granite fjord
#

what section do i want to configure

alpine cobaltBOT
#

One sec, I’m checking the exact configure section names so I don’t guess.

#

choose model.

That’s the section for fixing the Ollama setup.

So run:

openclaw configure --section model

Then pick/setup:

  • Ollama
  • API key: ollama-local
  • base URL: http://127.0.0.1:11434
  • no /v1
#

After that:

openclaw gateway restart

If you want to fix Telegram after that, Telegram is under channels, but right now you want model first.

granite fjord
#

now im on a big models in /model picker list and it dosnt show

alpine cobaltBOT
#

ah, yep, that means you’re in the wrong screen.

That big model picker is for choosing from models OpenClaw already knows about.
Your Ollama provider is not registered yet, so it won’t show there.

Do this instead

Back out of that screen, then run:

openclaw configure

Not --section model, just plain openclaw configure.

Then look for the part where it asks about:

  • provider
#
  • auth
  • credentials

Pick Ollama, then enter:

  • API key: ollama-local
  • base URL: http://127.0.0.1:11434

Then restart:

openclaw gateway restart

So, short version:
don’t use the big model list yet, first register Ollama itself.

granite fjord
#

ā—† Select sections to configure
│ ā— Workspace (Set workspace + sessions)
│ ā—‹ Model
│ ā—‹ Web tools
│ ā—‹ Gateway
│ ā—‹ Daemon
│ ā—‹ Channels
│ ā—‹ Plugins
│ ā—‹ Skills
│ ā—‹ Health check
│ ā—‹ Continue
ā””

alpine cobaltBOT
#

nice, you’re in the right place now.

For right now, select:

  • Model
  • then Continue

You can leave the others alone for now.

So basically:

  1. move to Model
  2. press space
  3. move to Continue
  4. press enter

If it asks after that, send me the next screen.

granite fjord
#

Model/auth provider
│ ā— Anthropic (Claude CLI + API key)
│ ā—‹ Arcee AI
│ ā—‹ BytePlus
│ ā—‹ Chutes
│ ā—‹ Cloudflare AI Gateway
│ ā—‹ Copilot Proxy
│ ā—‹ Custom Provider
│ ā—‹ DeepSeek
│ ā—‹ Fireworks
│ ā—‹ Gemini CLI OAuth
│ ā—‹ GitHub Copilot
│ ā—‹ Google
│ ā—‹ Hugging Face
│ ā—‹ Kilo Gateway
│ ā—‹ LiteLLM
│ ā—‹ Microsoft Foundry
│ ā—‹ MiniMax
│ ā—‹ Mistral AI
│ ...

alpine cobaltBOT
#

yep, keep going down the list and choose Ollama.

It’s just lower down, not in the part you pasted yet.

So:

  1. arrow down until you see Ollama
  2. select Ollama
  3. press enter

If you want, paste the next screen after you pick it.

granite fjord
#

ā—† Ollama base URL
│ http://127.0.0.1:11434ā–ˆ
ā””

alpine cobaltBOT
#

that’s the right value. Leave it exactly like that and press enter.

Important, don’t add /v1.

granite fjord
#

Ollama mode
│ ā— Cloud + Local (Cloud models + local models)
│ ā—‹ Local
ā””

alpine cobaltBOT
#

choose Local.

That’s the simplest one for your Pi setup.

granite fjord
#

Models in /model picker (multi-select)
│
│ Search:
│ ...
│ ā—» vercel-ai-gateway/cohere/command-a
│ ā—» vercel-ai-gateway/deepseek/deepseek-v3
│ ā—» vercel-ai-gateway/deepseek/deepseek-v3.1-terminus
│ ā—» vercel-ai-gateway/deepseek/deepseek-v3.2
│ ā—» vercel-ai-gateway/deepseek/deepseek-v3.2-thinking
│ ā—» vercel-ai-gateway/deepseek/deepseek-r1
│ ā—» vercel-ai-gateway/deepseek/deepseek-v3.1
│ ā—» vercel-ai-gateway/mistral/devstral-2
│ ā—» vercel-ai-gateway/mistral/devstral-small
│ ā—» vercel-ai-gateway/mistral/devstral-small-2
│ ā—» vercel-ai-gateway/google/gemini-2.0-flash
│ ā—» vercel-ai-gateway/google/gemini-2.0-flash-lite
│ ā—» vercel-ai-gateway/google/gemini-2.5-flash
│ ā—» vercel-ai-gateway/google/gemini-2.5-flash-lite (Gemini 2.5 Flash Lite Ā· ctx

│ 1024k Ā· reasoning Ā· auth missing)
│ ā—» vercel-ai-gateway/google/gemini-2.5-pro

alpine cobaltBOT
#

good, now use the Search box and type:

ollama

Then look for:

ollama/deepseek-r1:1.5b

and select it.

If ollama doesn’t show anything, type:

#
deepseek-r1

and paste what appears.

granite fjord
#

Models in /model picker (multi-select)
│ 2 items selected
Config overwrite: /home/joewarrior9/.openclaw/openclaw.json (sha256 07262999a9d621b531b9ca235e605d96e1a565e1bac6b0f0af308e2993b47f5c -> 1040e2b5fd9549e2ba26ad1a799be21332494232bb363e0a93738f1ff56920e4, backup=/home/joewarrior9/.openclaw/openclaw.json.bak)

alpine cobaltBOT
#

nice, that saved successfully šŸŽ‰

Now run:

openclaw gateway restart
openclaw models status

Then try your Telegram bot again with:

hello

If it still breaks, paste the new openclaw models status output.
But there’s a good chance you just fixed the Ollama registration problem.

granite fjord
#

Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : ollama/deepseek-r1:1.5b
Fallbacks (1) : huggingface/deepseek-ai/DeepSeek-R1
Image model : -
Image fallbacks (0): -
Aliases (1) : Hugging Face -> huggingface/deepseek-ai/DeepSeek-R1
Configured models (2): huggingface/deepseek-ai/DeepSeek-R1, ollama/deepseek-r1:1.5b

Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (0): -

  • huggingface effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | huggingface:default=hf_mLkiN...YHDGnDYi
  • ollama effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | ollama:default=marker(ollama-local) | models.json=OL...EY | source=models.json: ~/.openclaw/agents/main/agent/models.json

OAuth/token status

  • none
    joewarrior9@joesrobit:~ $
alpine cobaltBOT
#

this looks right now. šŸ‘

The important part is:

  • Default : ollama/deepseek-r1:1.5b
  • source=models.json
  • Ollama is registered persistently now

So at this point, try your Telegram bot again and send:

hello

If it works, you’re good.
If it still says ā€œsomething went wrong while processingā€, paste the new log lines after that test.

#

Small heads-up, that 1.5b model may be slow or flaky, but the OpenClaw ↔ Ollama setup itself now looks correct.

granite fjord
#

now its not responding

alpine cobaltBOT
#

okay, two likely possibilities now:

  1. it’s working but very slow
  2. the model is hanging

That deepseek-r1:1.5b model can be pretty rough on a Pi.

Do this one test

Run this and leave it open:

tail -f "$(ls -t /tmp/openclaw/openclaw-*.log | head -1)"

Then message your Telegram bot:

#
hello
  • if new error lines appear, paste them here
  • if nothing appears, Telegram isn’t reaching it
  • if it shows activity but never replies, it’s probably the model

Also, give it up to a minute once, just in case it’s thinking slowly.

If it turns out to be the model, ask in #models for a Pi-friendly Ollama model, that advice changes fast.

granite fjord
#

at file:///home/joewarrior9/.npm-global/lib/node_modules/openclaw/dist/command-queue-JOCs7lw4.js:119:22","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{"subsystem":"llm-slug-generator"}","parentNames":["openclaw"],"date":"2026-04-13T01:08:05.349Z","logLevelId":5,"logLevelName":"ERROR","path":{"fullFilePath":"file:///home/joewarrior9/.npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js:330:14","fileName":"subsystem-D2gFnOcq.js","fileNameWithLine":"subsystem-D2gFnOcq.js:330","fileColumn":"14","fileLine":"330","filePath":".npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js","filePathWithLine":".npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js:330","method":"logToFile"}},"time":"2026-04-12T21:08:05.349-04:00"}
{"0":"{"subsystem":"hooks/session-memory"}","1":"Session context saved to ~/.openclaw/workspace/memory/2026-04-13-0108.md","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"{"subsystem":"hooks/session-memory"}","parentNames":["openclaw"],"date":"2026-04-13T01:08:05.402Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/joewarrior9/.npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js:330:14","fileName":"subsystem-D2gFnOcq.js","fileNameWithLine":"subsystem-D2gFnOcq.js:330","fileColumn":"14","fileLine":"330","filePath":".npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js","filePathWithLine":".npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js:330","method":"logToFile"}},"time":"2026-04-12T21:08:05.403-04:00"}

alpine cobaltBOT
#

I’m checking what that llm-slug-generator error usually means so I can give you the right next step.

#

that log line is not the Telegram setup breaking. It’s from the session-memory slug generator, basically a little helper hook.

The big picture now is:

  • Telegram is connected
  • Ollama is connected
  • the remaining problem is very likely the model itself, not the wiring

And honestly, deepseek-r1:1.5b is probably just too weak/slow here.

My recommendation

At this point, ask in #models for a Pi-friendly Ollama model. Model recommendations change fast, and that channel is the right place for current picks.

If you want the quick summary:

  • your setup is mostly fixed
  • the remaining issue is model performance/capability
#

If you want, I can help you post a short clean question for #models so you don’t have to re-explain everything.

granite fjord
#

sure just give me a new model

alpine cobaltBOT
#

I don’t want to give you a stale/wrong model name from memory.

For current model picks, ask in #models with this exact message:

I’m running OpenClaw on a Raspberry Pi 5 16GB with Ollama.
Telegram + Ollama are connected now, but deepseek-r1:1.5b is too slow / not responding reliably.
What local Ollama model do people recommend for a Pi 5 16GB that works best with OpenClaw?

That’ll get you a much better answer than me guessing.

Docs for the Ollama side are here too:
https://docs.openclaw.ai/providers/ollama

If you get a model name back, paste it here and I’ll help you switch OpenClaw to it.

granite fjord
#

help me set it up comletely again

#

like i downloaded the olama gui from pi apps if that helps

alpine cobaltBOT
#

yep, let’s reset it cleanly from scratch.

Important: only paste the commands below into the terminal.
Do not paste JSON/config examples into bash.

1) Check the basics on the Pi

openclaw --version
ollama list
curl http://127.0.0.1:11434/api/tags
  • ollama list should show at least one model
  • the curl command should print JSON
  • if either fails, stop there and send me the output
#

2) Set up Ollama in OpenClaw

openclaw onboard

When it asks:

  • choose Ollama
  • base URL: http://127.0.0.1:11434
  • do not add /v1
  • mode: Local
  • model: choose the exact name from ollama list

3) Set up Telegram

First, make a bot with @BotFather and copy the token.

#

Then run:

openclaw config set channels.telegram.enabled true
openclaw config set channels.telegram.botToken "PASTE_YOUR_BOTFATHER_TOKEN_HERE"
openclaw config set channels.telegram.dmPolicy "pairing"

4) Restart OpenClaw

openclaw gateway restart
openclaw models status

What you want to see:

  • your default model starts with ollama/
#
  • Ollama shows up in auth/config

5) Pair Telegram

On Telegram:

  • open your bot chat
  • send it a normal message like hello

Then on the Pi:

openclaw pairing list telegram

If you see a code:

#
openclaw pairing approve telegram CODE

6) Test it

Send the bot:

hello

If it still breaks, send me only these 2 things:

openclaw models status
#

yep, that helps a bit.

The GUI itself isn’t what OpenClaw talks to. OpenClaw talks to the Ollama server/API running underneath it.

So the important question is just:

curl http://127.0.0.1:11434/api/tags
  • if that works, the GUI install is fine and OpenClaw can use it
  • if that fails, the GUI may be installed but the Ollama server is not actually running

So even with the Pi Apps GUI, the setup path is still the same:

  • OpenClaw base URL: http://127.0.0.1:11434
  • no /v1
#

If you want, run that one curl command again and paste what it says.

granite fjord
#

but hes not responding to telegram

alpine cobaltBOT
#

okay, let’s narrow it down fast.

On the Pi, run this first:

openclaw pairing list telegram
  • if it shows a code, approve it with:
openclaw pairing approve telegram CODE

If it says no pending requests, then do this:

#
tail -f "$(ls -t /tmp/openclaw/openclaw-*.log | head -1)"

Leave that running, then on Telegram send your bot:

hello

Then tell me which of these happens:

  1. a pairing code appears
  2. new log lines appear
  3. nothing happens at all

That tells us whether the problem is:

#
  • pairing
  • Telegram bot config
  • or the model hanging again
granite fjord
#

new lines apear but there all gray

alpine cobaltBOT
#

gray is fine, that just means they’re probably info logs.

Please paste the last 10 to 20 lines that appear right after you send hello to the bot.

Those lines are what I need.

granite fjord
#

nothing new comes just _meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-14T00:47:41.591Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/joewarrior9/.npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js:159:46","fileName":"subsystem-D2gFnOcq.js","fileNameWithLine":"subsystem-D2gFnOcq.js:159","fileColumn":"46","fileLine":"159","filePath":".npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js","filePathWithLine":".npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js:159","method":"console.log"}},"time":"2026-04-13T20:47:41.594-04:00"}
{"0":"\u001b[38;2;139;127;119mNo pending telegram pairing requests.\u001b[39m","_meta":{"runtime":"node","runtimeVersion":"22.22.2","hostname":"unknown","name":"openclaw","date":"2026-04-14T00:49:28.742Z","logLevelId":3,"logLevelName":"INFO","path":{"fullFilePath":"file:///home/joewarrior9/.npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js:159:46","fileName":"subsystem-D2gFnOcq.js","fileNameWithLine":"subsystem-D2gFnOcq.js:159","fileColumn":"46","fileLine":"159","filePath":".npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js","filePathWithLine":".npm-global/lib/node_modules/openclaw/dist/subsystem-D2gFnOcq.js:159","method":"console.log"}},"time":"2026-04-13T20:49:28.744-04:00"}

alpine cobaltBOT
#

got it, that means Telegram is not reaching OpenClaw at all.

Because if your hello hit the bot, you’d see fresh log lines.

So the issue is now almost certainly one of these:

  • wrong BotFather token
  • messaging the wrong bot
  • Telegram channel config got lost / overwritten
  • gateway wasn’t restarted after the Telegram config

Re-do Telegram cleanly

Run these again on the Pi:

#
openclaw config set channels.telegram.enabled true
openclaw config set channels.telegram.botToken "PASTE_YOUR_BOTFATHER_TOKEN_HERE"
openclaw config set channels.telegram.dmPolicy "pairing"
openclaw gateway restart

Then on Telegram:

  1. open the exact bot created in BotFather
  2. press Start
  3. send hello

Then run:

#
openclaw pairing list telegram

If it still says no pending requests and no new logs appear, then it’s the wrong bot token or wrong bot chat.

So we’re down to the Telegram bot identity now, not Ollama.

granite fjord
#

So now Before responding, I'll run my session startup sequence as required. This involves reading key files to understand my identity and context. I'll proceed silently without narration.

Now, with context loaded:

Hey there. Freshly booted and feeling sharp! šŸš€ What's the plan today? And it won’t reply

alpine cobaltBOT
#

okay, this is actually a useful clue.

That message means:

  • Telegram is working now
  • OpenClaw is reaching a model
  • but the model is leaking internal startup instructions and behaving badly

So the setup is mostly fixed. The remaining problem is the model quality, not Telegram.

Best next move

Option 1, easiest

Switch back to your already-configured Hugging Face model and test again:

#
openclaw models set huggingface/deepseek-ai/DeepSeek-R1
openclaw gateway restart

Then message the bot again.

Option 2, stay local on the Pi

Keep Ollama, but use a different local model.
For the best current Pi-friendly pick, ask in #models. Your current local model is clearly not handling OpenClaw well.

What this confirms

The important part is: the bot is connected now.
It’s just using a bad model for this job.

If you want, I can help you switch back to the Hugging Face one right now.

granite fjord
#

What would be a better one for local

alpine cobaltBOT
#

honestly, on a Pi 5 16GB, I’d avoid reasoning/R1-style local models for OpenClaw. They tend to be slow and weird.

For local, ask in #models for a:

  • Pi-friendly
  • Ollama
  • non-reasoning
  • instruct/chat model

Use this message:

What local Ollama model are people using with OpenClaw on a Raspberry Pi 5 16GB?
My current local model leaks startup/system prompt text and is unreliable.
Looking for a better non-reasoning local model.

If you want the most reliable setup right now, I’d use a cloud model instead of local on the Pi.

odd condorBOT
granite fjord
#

how do i change the apis

alpine cobaltBOT
#

if you mean change which AI provider/API key OpenClaw uses, the easiest way is:

openclaw configure

Then choose:

  • Model if you want to change the AI provider/API key
  • Channels if you want to change the Telegram bot token

Quick rule

  • AI API / model provider = Model
  • Telegram token = Channels

After changing it, run:

#
openclaw gateway restart

If you want to change the default model after that, use:

openclaw models set PROVIDER/MODEL

If you want, tell me which one you mean:

  1. change AI provider/API key
  2. change Telegram token
  3. change default model

and I’ll give you the exact commands.

granite fjord
#

change the provider and model

alpine cobaltBOT
#

got it, do this:

openclaw configure --section model

Then:

  1. pick the new provider
  2. enter that provider’s API key
  3. choose the new default model
  4. save and exit

Then restart OpenClaw:

#
openclaw gateway restart
openclaw models status

That will switch both the provider and the model.

If you want, I can walk you through the next screen once it appears.

granite fjord
#

how do i download gemma 4 and connect it to ollama so i can run cloud and local models at the same time so if the tokens run out on cloud it will go onto locl

alpine cobaltBOT
#

I’m checking the exact Ollama + fallback docs so I give you the clean path, not guesses.

#

yep, you can do that.

1) Download Gemma 4 locally

On the Pi:

ollama pull gemma4

You can confirm it’s there with:

ollama list

2) Set up Ollama for Cloud + Local

#

Run:

openclaw onboard

Then choose:

  • provider: Ollama
  • base URL: http://127.0.0.1:11434
  • mode: Cloud + Local

If you are not signed in to Ollama cloud yet, the wizard should prompt you.
You can also sign in first with:

#
ollama signin

3) Make local Ollama your fallback

After onboarding, set your primary model to the cloud model you want, then add local Gemma 4 as a fallback:

openclaw models set YOUR_CLOUD_MODEL
openclaw models fallbacks add ollama/gemma4
openclaw models fallbacks list

Then restart:

#

If you want, I can help you with the exact fallback command once you tell me which cloud model/provider you want as the primary.

granite fjord
#

how do i launch gemma 4

alpine cobaltBOT
#

on the Pi, to launch it directly in Ollama:

ollama run gemma4

If you haven’t downloaded it yet, do this first:

ollama pull gemma4
ollama run gemma4

If you want OpenClaw to use it, then set:

#
openclaw models set ollama/gemma4
openclaw gateway restart

So:

  • just run Gemma 4 in Ollama → ollama run gemma4
  • make OpenClaw use Gemma 4 → openclaw models set ollama/gemma4
muted frost
#

Hello, please help. previously, i used claude opus 4.6, sure it was all good. but now I am testing on my mac m4 max 64g with mlx gemma4:26b model to run openclaw agent team on discord. ceo manages 5 other agents, i found a few problems, 1. tool calling failure, 2. timeout. 3. i set max token at 8192. i want to have a clear udnerstanding if local models can handle easy programmed tasks. it's fine answering questions like chatbot, but i expereienced lots of failures see it deliver results, always narrating.
Does anyone have similar experience or goal like mine?

alpine cobaltBOT
#

I’m checking the docs for the local-model/tool-calling bits so I can answer cleanly, not just vibes.

#

short answer, yes, this is pretty normal.

What you’re seeing is the line where local models stop feeling like ā€œdrop-in Opus replacementsā€:

  • chat / Q&A: often fine
  • tool calling: shaky
  • multi-agent orchestration: much shakier
  • timeouts / narration instead of acting: very common

A CEO agent managing 5 tool-using agents on Discord is not what I’d call an ā€œeasyā€ local-model workload, even on an M4 Max.

A few concrete points from the docs + what people keep running into:

  1. Use the native Ollama API, not /v1
    • baseUrl: http://127.0.0.1:11434
    • no /v1
    • the OpenAI-compatible path makes tool calling less reliable
#
  1. 8192 max tokens is probably not the main issue

    • the bigger problem is usually tool discipline + latency + model capability
  2. For tool-enabled agents, local models are still hit-or-miss

    • especially with orchestration, retries, and long prompts
    • ā€œalways narratingā€ is a classic sign the model is not following the tool protocol reliably

My honest take:

  • Can local models handle some easy programmed tasks? Yes.
  • Can they reliably replace Opus for a Discord agent team with tools? Usually no, not yet, not consistently.

What I’d recommend:

  • use cloud for the CEO / tool-heavy agents
  • use local for lower-stakes chat, summaries, heartbeat, cheap background tasks
  • if you stay local, use the largest model build you can run, and keep tool scopes tight

Docs:

granite fjord
#

how do i delelete a thing from my list

alpine cobaltBOT
#

depends which list you mean:

If you mean the Ollama model list

(delete a downloaded model)

ollama rm MODEL_NAME

Example:

ollama rm gemma4

If you mean the OpenClaw fallback list

#
openclaw models fallbacks remove provider/model

If you mean the OpenClaw model picker / configured models

that’s usually easiest through:

openclaw configure --section model

If you want, paste the list you’re looking at and I’ll tell you the exact command.

granite fjord
#

how do i update it

alpine cobaltBOT
#

I’m checking the exact update docs so I don’t send you a bad command.

#

if you mean OpenClaw itself, run:

openclaw update

Useful variants:

openclaw update status
openclaw update --dry-run
openclaw update --channel beta

If you mean an Ollama model, update/pull it again with:

granite fjord
#

would a coral tpu excelarator help with proformnce on my pi 5

alpine cobaltBOT
#

probably no, not for Ollama / Gemma / LLM performance.

A Coral TPU helps with certain edge vision / TFLite models, not general text-generation models like the ones OpenClaw uses through Ollama.

So for your Pi 5:

  • Coral TPU → useful for some vision/inference tasks
  • LLM speed in Ollama → basically won’t help

If your goal is better OpenClaw performance, the bigger wins are:

  1. use a smaller / simpler local model
  2. use cloud for tool-heavy work
  3. run Ollama on a stronger machine and point OpenClaw at that

So yeah, for your use case, I wouldn’t buy a Coral TPU expecting OpenClaw to get faster.

granite fjord
#

what are some of the best skills to get

alpine cobaltBOT
#

depends what you want your assistant to actually do, but the most useful skills are usually:

  1. Web/search

    • so it can look things up instead of guessing
  2. Email / calendar / docs

    • huge quality-of-life boost if you use Google stuff a lot
  3. Transcription

    • great for voice notes, recordings, meetings
  4. Home automation

    • if you use Home Assistant, this one gets fun fast
  5. Writing/doc skills

    • really good if you want help drafting specs, notes, docs, plans
#
  1. Health/data skills
    • useful if you already track stuff like sleep/workouts

For OpenClaw specifically, I’d start with:

  • search
  • docs/calendar/email
  • transcription
  • one automation skill you actually care about

Best place to browse new ones:
https://clawhub.ai

If you want, tell me your main use case, like coding, school, home automation, content, business, life admin, and I’ll give you a much better short list.

granite fjord
#

how do i use my local gemma4 and switch openclaw to it

alpine cobaltBOT
#

if Gemma 4 is already local in Ollama, this is the quick path:

openclaw models set ollama/gemma4
openclaw gateway restart
openclaw models status

If you haven’t downloaded it yet, do this first:

ollama pull gemma4
ollama list
openclaw models set ollama/gemma4
openclaw gateway restart
openclaw models status
#

If OpenClaw says it can’t find Ollama, then set up Ollama first with:

openclaw configure --section model

and choose:

  • provider: Ollama
  • base URL: http://127.0.0.1:11434
  • no /v1

Then run the openclaw models set ollama/gemma4 command again.