I am running OpenClaw on my Hostinger server and I have just been trying to get started. I am still on the default Open AI model that it was setup on and I got this error. Now I can't use the model at all. I am paying for the $20 a month for Claud and I would like to make in my main model but I'm am not able to prompt it to change because I get the error. Is there a way to change the main model using the terminal?
#I am getting the 429 budget error.
1 messages · Page 1 of 1 (latest)
Yep — you can switch the default (“main”) model from the terminal, even if the current model is failing.
1) First, confirm what you’re running
On the Hostinger box (same machine as the Gateway):
openclaw --version
openclaw models status
If you can paste the output of openclaw models status here, it usually makes the issue obvious (missing auth vs quota vs allowlist).
2) Important: “$20/mo Claude” ≠Anthropic API credits
Claude Pro/Max doesn’t come with an Anthropic API key. OpenClaw supports Claude subscriptions via an Anthropic setup-token (generated by the Claude Code CLI), or you can use a normal Anthropic API key.
Docs:
3) Set up Anthropic auth (subscription path)
Generate a setup-token on any machine that has Claude Code installed:
claude setup-token
Then on the gateway host (your VPS), paste it:
openclaw models auth paste-token --provider anthropic
# (or run the guided prompt)
openclaw models auth setup-token --provider anthropic
4) Switch the default model from CLI
List Anthropic models you have available, then set one:
openclaw models list --all --provider anthropic
openclaw models set anthropic/<pick-one-from-the-list>
(You can also just re-run the wizard and pick Anthropic there: openclaw onboard.)
5) Restart the gateway (sometimes not required, but usually helps)
openclaw gateway restart
If you reply with:
openclaw --version
openclaw models status
I’ll tell you exactly what to do next based on what it reports (missing auth vs “budget/quota” vs model allowlist, etc.).
Thank you for your response. I think I might have messed up my server a little when I tried to follow somebodies advice on youtube about how to use tale scale and create a seperate user and not give my root level access to my account. I didn't worry about it because I was able to get my bot to intigrate things until I ran into the user limit error.
When I do step #1 I get openclaw: command not found
Yeah, that “separate user + Tailscale” change very often creates a confusing situation where you now have two different OpenClaw state directories:
- one under
/root/.openclaw(when you run commands as root), and - one under
/home/<newuser>/.openclaw(where the gateway service might actually be running)
So you think you changed the model/auth, but you changed it for the “other” user — meanwhile the running Gateway keeps using the old config and still hits the 429/budget limit.
Step 1: check if CLI vs service are using different configs
Run this on the server:
openclaw gateway status
In the output, look for Config (cli) vs Config (service). If those paths differ, that’s the problem.
Step 2: run OpenClaw commands as the same user the gateway runs under
If you created a dedicated user (often named openclaw), try:
sudo -iu openclaw openclaw models status
sudo -iu openclaw openclaw models list --all --provider anthropic
(Replace openclaw with whatever username you created.)
Step 3: switch default model from terminal (no chat prompt needed)
Once you’re running as the correct user:
- Add Anthropic subscription auth (Claude $20/mo uses setup-token, not an API key):
sudo -iu openclaw openclaw models auth paste-token --provider anthropic
- Set the default model:
sudo -iu openclaw openclaw models set anthropic/<model-from-the-list>
sudo -iu openclaw openclaw gateway restart
Docs for the CLI commands: https://docs.openclaw.ai/concepts/models
If you paste the output of just this (redact nothing except tokens if any appear, but it should already redact):
openclaw gateway status
…I can tell you exactly which user/config path the service is using and what command to run next.
That error is purely “your shell can’t find the openclaw executable” — usually because you’re now logged in as a different user than the one you installed OpenClaw under (or your PATH isn’t loading after the user change).
1) Find out where OpenClaw is (and which user has it)
Run these on the server:
whoami
command -v openclaw || echo "openclaw not on PATH"
node -v
npm -v
npm config get prefix
ls -la "$(npm config get prefix)/bin" | head
If ls .../bin shows an openclaw file in there, then it’s installed — just not on your PATH.
2) Quick fix: add npm’s global bin to PATH (current shell)
export PATH="$(npm config get prefix)/bin:$PATH"
command -v openclaw
openclaw --version
If that works, make it permanent by adding the same export PATH=... line to ~/.profile (or ~/.bashrc, depending on how you log in).
3) If you created a dedicated user (common), check that user
If the gateway is running as a user like openclaw, you want commands to run as that same user:
sudo -iu openclaw bash -lc 'command -v openclaw && openclaw --version'
(Replace openclaw with whatever username you created.)
If you paste the output of the commands in step 1 (especially npm config get prefix + the ls), I can tell you exactly what PATH line to add and which user you should be operating as.
pretty much every command I have tried so far I get the response "openclaw: command not found"
That’s not the 429/model issue anymore — it means your current shell/user simply doesn’t have the openclaw CLI installed (or on PATH). This commonly happens right after switching to a new non-root user.
Run these on the server and paste the output:
whoami
echo "$SHELL"
echo "$PATH"
node -v
npm -v
command -v openclaw || echo "openclaw not on PATH"
command -v clawdbot || echo "clawdbot not on PATH" # older name, just in case
npm config get prefix
ls -la "$(npm config get prefix)/bin" | egrep "openclaw|clawdbot" || true
If you see openclaw in that .../bin folder
Then it’s installed, just not on PATH. Fix for the current session:
export PATH="$(npm config get prefix)/bin:$PATH"
command -v openclaw
openclaw --version
To make it permanent, add this line to ~/.profile (or ~/.bashrc depending on your setup):
export PATH="$(npm config get prefix)/bin:$PATH"
If you don’t see openclaw in that folder
Then OpenClaw was installed under a different user (often root), and your new user doesn’t have it. In that case we either:
- run commands as the user that owns the gateway, or
- reinstall
openclawfor the current user.
Post the outputs above and I’ll tell you exactly which of those is true on your server and the shortest fix.
I tried loging into the other user and now it says *that user@srv123123 instead of root
Yep — seeing someuser@srv123123 instead of root@... just means you successfully switched users. That’s good (and exactly why openclaw “disappeared”: it was likely installed under root’s npm prefix, not this new user’s).
Now we need to answer one question: which user actually has the OpenClaw CLI installed (and which user is running the gateway service).
Run these as the user you’re currently logged in as:
whoami
echo "$PATH"
command -v openclaw || echo "openclaw not on PATH"
npm -v
npm config get prefix
ls -la "$(npm config get prefix)/bin" | egrep "openclaw|clawdbot" || true
Then also check as root (to see if that’s where it was installed):
sudo -i
command -v openclaw || echo "openclaw not on PATH (root)"
npm config get prefix
ls -la "$(npm config get prefix)/bin" | egrep "openclaw|clawdbot" || true
How to interpret the result
- If
openclawshows up in$(npm prefix)/binbutcommand -v openclawfails → it’s installed but your PATH isn’t loading. Quick fix:export PATH="$(npm config get prefix)/bin:$PATH" - If root has it but the new user doesn’t → you have two options:
- keep operating as root (not ideal), or
- reinstall OpenClaw under the dedicated user (recommended), then run
openclaw doctorand restart the gateway so the service and CLI match.
Paste the output from those commands and I’ll tell you which case you’re in and the shortest clean fix.
v22.22.0
10.9.4
openclaw not on PATH
clawdbot not on PATH
here's what I get when I run the command
Cool — Node/npm are fine. That output means: for the user you’re logged in as right now, OpenClaw isn’t installed (or it’s installed somewhere your PATH can’t see).
Next we need to find where OpenClaw is installed (often it’s under root, and your new user can’t see it).
Run these as your current user and paste the output:
npm config get prefix
ls -la "$(npm config get prefix)/bin" | egrep "openclaw|clawdbot" || true
npm ls -g --depth=0 | egrep "openclaw|clawdbot" || true
Then run the same as root (this is the most common “aha” on VPSes):
sudo -i
npm config get prefix
ls -la "$(npm config get prefix)/bin" | egrep "openclaw|clawdbot" || true
npm ls -g --depth=0 | egrep "openclaw|clawdbot" || true
What this will tell us
- If root shows
openclawbut your user doesn’t: OpenClaw was installed under root, and your new user’s PATH/install is separate. - If neither user shows it: then your bot is probably running from a git checkout (
pnpm openclaw ...) or another install method, and we’ll locate that next.
Once we can run openclaw, we can switch your default model via terminal (openclaw models set ...) and fix the Claude subscription auth (setup-token).
I don’t see the output yet (looks like it didn’t get included). Can you paste the exact terminal output you got, in a code block, and tell me which command you ran?
To keep this moving, please run + paste the results of these two blocks:
As your current user:
whoami
npm config get prefix
ls -la "$(npm config get prefix)/bin" | egrep "openclaw|clawdbot" || true
npm ls -g --depth=0 | egrep "openclaw|clawdbot" || true
As root:
sudo -i
whoami
npm config get prefix
ls -la "$(npm config get prefix)/bin" | egrep "openclaw|clawdbot" || true
npm ls -g --depth=0 | egrep "openclaw|clawdbot" || true
These will tell us immediately whether OpenClaw is installed under root (common on VPS) vs your new user, and then I can give you the one-line fix (PATH vs reinstall vs run as the gateway user).
The output for the command under sudo -i is npm notice
npm notice New major version of npm available! 10.9.4 -> 11.10.1
npm notice Changelog: https://github.com/npm/cli/releases/tag/v11.10.1
npm notice To update run: npm install -g npm@11.10.1
npm notice
That npm “notice” is just npm advertising an update — ignore it. It’s not the output we need.
Right now we still don’t know where OpenClaw is installed (or if it’s only available inside a service environment).
Can you run these exact commands and paste all output?
As your current user
set -x
whoami
echo "$PATH"
npm bin -g
ls -la "$(npm bin -g)" | egrep "openclaw|clawdbot" || true
As root (one command)
sudo bash -lc 'set -x; whoami; echo "$PATH"; npm bin -g; ls -la "$(npm bin -g)" | egrep "openclaw|clawdbot" || true'
What we’re looking for:
- If
ls -la .../binshowsopenclawunder root, but not under your user → OpenClaw was installed as root, and your new user just doesn’t have it. - If it’s missing under both → the gateway might be running from a git checkout / pnpm install, and we’ll locate it via the running service process next.
(If you paste those outputs, I can tell you the exact fix: PATH export vs reinstall under the dedicated user vs “run commands as the gateway user”.)
As Current user, the output I get is: + set -x
- whoami
root - echo /root/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
/root/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin - npm bin -g
Unknown command: "bin"
To see a list of supported npm commands, run:
npm help
- egrep --color=auto 'openclaw|clawdbot'
++ npm bin -g - ls --color=auto -la 'Unknown command: "bin"
To see a list of supported npm commands, run:
npm help'
ls: cannot access 'Unknown command: "bin"'$'\n\n''To see a list of supported npm commands, run:'$'\n'' npm help': No such fi
le or directory
- true
root@srv1381582:~#
Got it — and good catch: your output shows you’re still root (whoami → root). So whatever “other user” switch you tried didn’t stick (or you switched back).
Also: with npm 10+, npm bin -g is gone — that’s why you got Unknown command: "bin".
1) Find where “global npm binaries” live (root)
Run:
npm prefix -g
ls -la "$(npm prefix -g)/bin" | egrep "openclaw|clawdbot" || true
If you see openclaw in that folder, run it by full path:
"$(npm prefix -g)/bin/openclaw" --version
…and then fix PATH for this shell:
export PATH="$(npm prefix -g)/bin:$PATH"
openclaw --version
2) If openclaw is NOT in that folder
Then it’s simply not installed for root. Check what’s globally installed:
npm ls -g --depth=0 | head -50
3) If you actually want to run OpenClaw under your non-root user
Tell me the username you created (or run cut -d: -f1 /etc/passwd | tail and pick it), and we’ll do the same checks as that user via:
sudo -iu <username> bash -lc 'whoami; npm prefix -g; ls -la "$(npm prefix -g)/bin" | egrep "openclaw|clawdbot" || true'
Paste the output of step 1 (prefix + ls). That’ll tell us immediately whether this is just a PATH issue vs “OpenClaw installed under a different user / not installed at all”, and then we can get you to openclaw models set anthropic/... to switch off the OpenAI model.
Here is what I get for the first command: + npm prefix -g
/usr
- egrep --color=auto 'openclaw|clawdbot'
++ npm prefix -g - ls --color=auto -la /usr/bin
- true
Perfect — that tells us something concrete:
- your global npm prefix is
/usr - and there is no
openclaw(orclawdbot) binary in/usr/bin
So openclaw is either:
- installed in a different bin dir (very common:
/usr/local/binor~/.local/bin), or - installed under a different user (the “separate user” you created), or
- not installed anymore (gateway might be running from a different path, but your shell can’t access the CLI).
Run these and paste the output:
A) Check the common bin locations (as root)
ls -la /usr/local/bin | egrep "openclaw|clawdbot" || true
ls -la /root/.local/bin | egrep "openclaw|clawdbot" || true
ls -la /root/.npm-global/bin 2>/dev/null | egrep "openclaw|clawdbot" || true
B) Check if npm thinks it’s installed globally (root)
npm ls -g --depth=0 | egrep "openclaw|clawdbot" || true
npm root -g
C) Find the running service + the exact executable path (best clue)
sudo systemctl list-units --type=service | grep -i openclaw || true
sudo systemctl list-units --type=service | grep -i clawdbot || true
ps aux | grep -i openclaw | head -20
ps aux | grep -i clawdbot | head -20
Once we find where the binary is (or which user owns it), you can run it by full path (even without PATH), and then we’ll do:
openclaw models auth paste-token --provider anthropicopenclaw models set anthropic/...- restart gateway
Paste A+B+C output and I’ll tell you the exact next command.
Also, what is a good resorse for me to be able to learn to navigate terminal, I am a total normie when it comes to this stuff.
If you’re “terminal-normie”, the fastest way to get comfy is a mix of one beginner course + a cheat sheet tool + tiny daily reps.
Good beginner resources (Linux/VPS friendly)
- Linux Journey (super beginner)
- https://linuxjourney.com/
Covers the basics: folders, permissions, services, networking.
- The Linux Command Line (book, free)
- https://linuxcommand.org/tlcl.php
Really approachable, and it teaches the why behind commands.
- explainshell (paste a command, it explains the parts)
- https://explainshell.com/
Great for demystifying scary-looking one-liners.
- tldr pages (the “examples-first” manual)
- Install:
sudo apt-get update && sudo apt-get install tldr(if you’re on Ubuntu/Debian) - Use:
tldr ls,tldr systemctl,tldr grep
This is the quickest “what does this command do in practice?” helper.
A tiny “starter pack” of commands (safe)
These won’t break anything:
pwd(where am I)ls -la(list files)cd /path(change folder)cat file/less file(view file;lessis nicer)tail -n 100 file(view last lines)grep -i "text" file(search)command -v thing(where is this command on PATH)man thing/thing --help(help)
Rule of thumb: don’t run rm until you’re comfortable, and if you do later, prefer rm -i.
Back to your OpenClaw issue (why this matters)
Right now you’re blocked because the openclaw command isn’t installed anywhere your shell can see.
If you want, we can keep it very “guided” and low-stress: run these and paste output:
ls -la /usr/local/bin | egrep "openclaw|clawdbot" || true
ls -la /root/.local/bin | egrep "openclaw|clawdbot" || true
npm ls -g --depth=0 | egrep "openclaw|clawdbot" || true
That will tell us whether OpenClaw is installed under some other prefix/bin dir (super common on VPSes). Once we can actually run openclaw, switching your default model from terminal is straightforward.
One thing to note, I installed OpenClaw using the one click installer on Hostinger's VPN service.
Here is the output
root@srv1381582:~# ls -la /usr/local/bin | egrep "openclaw|clawdbot" || true
ls -la /root/.local/bin | egrep "openclaw|clawdbot" || true
npm ls -g --depth=0 | egrep "openclaw|clawdbot" || true
- egrep --color=auto 'openclaw|clawdbot'
- ls --color=auto -la /usr/local/bin
- true
- ls --color=auto -la /root/.local/bin
- egrep --color=auto 'openclaw|clawdbot'
-rwxr-xr-x 1 root root 84 Feb 16 16:28 openclaw - npm ls -g --depth=0
- egrep --color=auto 'openclaw|clawdbot'
- true
General Question, Is there a risk to sharing the @srv1381582 number?
Nice — that output is the breakthrough: you do have an openclaw executable, it’s here:
/root/.local/bin/openclaw
So the “command not found” is just one of these two things:
- you’re sometimes not actually running as root, or
- your PATH isn’t including
~/.local/binin the shell/session you’re using (very common withsudo, non-login shells, or service shells)
Do this now (bypass PATH completely)
Run:
/root/.local/bin/openclaw --version
- If that works, then fix PATH:
export PATH="$HOME/.local/bin:$PATH"
openclaw --version
To make it permanent, add this line to ~/.profile (and/or ~/.bashrc):
export PATH="$HOME/.local/bin:$PATH"
- If
/root/.local/bin/openclaw --versiondoes NOT work, paste the exact error and also:
head -n 50 /root/.local/bin/openclaw
(That file is tiny, so it’s usually a wrapper that points to where the real OpenClaw install lives; sometimes that target moved.)
Re: your question about sharing srv1381582
Low risk. It’s basically just a hostname/label, not a secret by itself.
What you should not share publicly:
- your server’s public IP (not catastrophic, but it invites noise)
- any OpenClaw gateway token, Discord bot token, API keys, Tailscale auth keys,
.envcontents - full config files unless you’ve redacted secrets
If you paste command output here, it’s usually safe because OpenClaw redacts tokens in many commands — but still skim for sk-..., token=..., DISCORD_BOT_TOKEN, ANTHROPIC_API_KEY, etc.
Once openclaw runs, we’ll immediately do:
openclaw models status
openclaw models auth paste-token --provider anthropic
openclaw models set anthropic/<model>
openclaw gateway restart
Here is everything that has been entered, since the last promnt:
root@srv1381582:~# /root/.local/bin/openclaw --version
- /root/.local/bin/openclaw --version
2026.2.16
root@srv1381582:~# export PATH="$HOME/.local/bin:$PATH"
openclaw --version - export PATH=/root/.local/bin:/root/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
- PATH=/root/.local/bin:/root/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin
- openclaw --version
2026.2.16
root@srv1381582:~# export PATH="$HOME/.local/bin:$PATH"
openclaw --version~/.bashrc - export PATH=/root/.local/bin:/root/.local/bin:/root/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin
:/snap/bin - PATH=/root/.local/bin:/root/.local/bin:/root/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/
bin - openclaw --version~/.bashrc
error: unknown option '--version~/.bashrc'
root@srv1381582:~# /root/.local/bin/openclaw --version - /root/.local/bin/openclaw --version
2026.2.16
root@srv1381582:~#
Where to from here
Good — you’re unblocked now. openclaw works, and you’re on 2026.2.16.
That one error happened because you accidentally typed this as one command:
openclaw --version~/.bashrc
(~/.bashrc got stuck onto the end of --version.)
1) Make the PATH fix permanent (optional but recommended)
Run one of these (either is fine):
Option A (login shells):
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.profile
Option B (interactive shells):
echo 'export PATH="$HOME/.local/bin:$PATH"' >> ~/.bashrc
Then reload:
source ~/.profile 2>/dev/null || true
source ~/.bashrc 2>/dev/null || true
2) Now switch your default model from terminal
First, show current model + auth situation:
openclaw models status
If you want to use your Claude $20/mo subscription
You need an Anthropic setup-token (Claude subscription ≠API key). You can generate the token on any machine with Claude Code installed:
claude setup-token
Then paste it on the VPS:
openclaw models auth paste-token --provider anthropic
Now pick an Anthropic model and set it as default:
openclaw models list --all --provider anthropic
openclaw models set anthropic/<paste-the-model-id-from-the-list>
openclaw gateway restart
(Docs: https://docs.openclaw.ai/concepts/models and https://docs.openclaw.ai/providers/anthropic)
3) About the 429 “budget” error
That usually means your OpenAI API key is out of quota / rate limited. Switching to Anthropic will avoid it as long as Anthropic auth is configured and you aren’t hitting Anthropic limits.
Next message: paste the output of openclaw models status (it should redact secrets). I’ll tell you exactly which openclaw models set ... line to run based on what’s currently configured.
Next we do two things: (A) confirm what model/auth OpenClaw is currently using, then (B) add Claude (Anthropic) auth + set it as default.
A) Check current model + auth (paste the output)
Run:
openclaw models status
That output tells us whether you currently have any Anthropic credentials set up, and what your default model is.
B) If you want to use your Claude $20/mo subscription
You need an Anthropic setup-token.
- Generate the token on any machine with Claude Code installed: