#I am burning open ai credits like water I need help
1 messages · Page 1 of 1 (latest)
Yes — you can switch models, and you can keep multiple models available.
Fast path:
- Run
/modelor/model listin the chat/session to pick a different model without restarting. - If the model isn’t available yet, use
/models addor/models add <provider> <modelId>to add it, then switch with/model. - You can also configure a default primary model + fallbacks, but fallbacks are mainly for failure/cooldown routing, not “always use cheap unless hard”.
Cost-saving pattern I’d recommend: set your default to the cheaper model you’re comfortable with, then manually switch up with /model only for heavy coding/debugging turns. Also check whether heartbeats/crons are using the expensive model — those can quietly burn credits if they’re frequent.
Docs: https://docs.openclaw.ai/concepts/models
For fresh model picks/pricing experience, ask in #old-models — I don’t want to give you stale model advice.
Also: what does openclaw --version show? Version matters a lot for model command behavior.
I don’t get you explain in easy terms and where am I switching via WhatsApp
Yep — easy version:
Think of OpenClaw like a car with gears:
- cheap model = low gear / everyday driving
- expensive model = high gear / hard problems
You switch by sending a command to your OpenClaw bot in WhatsApp as its own message.
In WhatsApp, send:
/model
That should show/select the current model options. You can also send:
/model status
To switch, send either the number/name it shows, for example:
/model 2
or:
/model openai/<model-name>
Important: send the command by itself, not inside a normal sentence.
If the cheaper model is not listed, add it first with:
/models add
Then choose it with /model.
My recommendation: make the cheaper model your normal/default one, and only switch to the expensive OpenAI model when you’re doing something hard. Also run /usage cost if enabled — it helps spot what’s burning credits.
If /model does nothing in WhatsApp, paste your openclaw --version and tell us whether WhatsApp is paired as your main channel or just notifications.
Ok but do I not have to have multiple models installed before I switch
Yes — exactly. You need the models to be available/configured before you can switch to them.
For cloud models like OpenAI, “installed” really means:
- You have provider auth set up — API key / OAuth
- The model is allowed/added in OpenClaw
- Then
/modelcan switch to it
So the flow is:
/models add
Pick/add the cheaper model you want.
Then:
/model
Choose it as the active model.
If you already see multiple models when you run /model, then you don’t need to add anything — just pick one.
If you only see one model, add another first. For WhatsApp, these are just normal messages you send to your OpenClaw chat, one command at a time.
Ok when I set up my open claw it only allowed me to chose one model?
Yep, that’s normal. Setup/onboarding usually makes you choose one default model so OpenClaw has something to start with.
After setup, you can add more.
In your WhatsApp chat with OpenClaw, send:
/models add
That should guide you through adding another model/provider.
Then send:
/model
…and pick which one to use for that session.
So: setup = choose your starting/default model. Later = add more models and switch between them.
For your credit issue, the practical move is: add a cheaper model, switch to it with /model, and only switch back to the expensive OpenAI model for harder tasks.
Can I do this inside the terminal
Yes. Terminal is actually the cleanest way.
Use these on the machine running OpenClaw:
openclaw models status
Shows what model you’re currently using + auth status.
openclaw models list
Shows models already configured.
openclaw models list --all
Shows more models you may be able to configure/use.
To switch the default model:
openclaw models set <provider/model>
Example shape:
openclaw models set openai/some-model-name
I’m saying <provider/model> on purpose because I don’t want to guess the exact OpenAI model names for your install. Run openclaw models list --all --provider openai and copy one from there.
If OpenClaw was installed from source with pnpm, use the same commands but as:
pnpm openclaw models status
pnpm openclaw models list
pnpm openclaw models set <provider/model>
Also how do I do it on terminal I only have one model set
Yes — if terminal only shows one model, do this:
- Check what you have now:
openclaw models status
openclaw models list
- See available OpenAI models:
openclaw models list --all --provider openai
- Pick the exact
provider/modelname from that list, then set it:
openclaw models set openai/<model-from-the-list>
That changes your default model.
If you want to add/use a totally different provider, first set up auth:
openclaw models auth add
Then list/set again:
openclaw models list --all
openclaw models set <provider/model>
If you installed OpenClaw from source and openclaw command doesn’t work, use:
pnpm openclaw models status
pnpm openclaw models list --all --provider openai
pnpm openclaw models set <provider/model>
Tiny warning: models set changes the default globally. /model in WhatsApp switches the current chat/session. So terminal = default setting, WhatsApp = quick per-chat switching.
I already have a model installed how can I add others
You don’t really “install” cloud models one by one. You add/configure them, then choose one.
Terminal flow:
- See what you already have:
openclaw models list
- See models OpenClaw knows about:
openclaw models list --all
For only OpenAI:
openclaw models list --all --provider openai
- Copy the exact model name from the list, then run:
openclaw models set <provider/model>
Example format only:
openclaw models set openai/<model-name-from-list>
That command both adds it to your config and makes it your default model.
If you want to add another provider/account first, run:
openclaw models auth add
Then repeat:
openclaw models list --all
openclaw models set <provider/model>
After that, in WhatsApp you can use /model to switch per chat/session.
What’s the command to find what version I am running
Run:
openclaw --version
If you installed/runs from source with pnpm, use:
pnpm openclaw --version
Paste that output here and we can give version-specific commands.
How do I exit a session
Depends what you mean by “exit”:
If OpenClaw is currently thinking/running, send:
/stop
If you want to end the current chat context and start fresh, send:
/new
or:
/reset
If you’re inside a terminal session/CLI prompt, usually press:
Ctrl+C
So for WhatsApp/OpenClaw chat: use /stop to cancel, /new or /reset to start a clean session.
I am using openclaw 2026 4 26
On 2026.4.26, do it from terminal like this:
- See available model names:
openclaw models list --all --provider openai
- Copy the exact model id you want, then run:
openclaw models set openai/<model-id>
That adds it to your OpenClaw config and makes it the default.
Example shape only:
openclaw models set openai/gpt-whatever-from-your-list
- Confirm:
openclaw models list
openclaw models status
If you want to add a model without switching to it yet, use this instead:
openclaw config set agents.defaults.models '{"openai/<model-id>":{}}' --strict-json --merge
Then later switch with:
openclaw models set openai/<model-id>
If you’re running from source, put pnpm in front:
pnpm openclaw models list --all --provider openai
pnpm openclaw models set openai/<model-id>
It said no models found
That probably means the provider name was wrong for your setup.
If you set up OpenAI through Codex / ChatGPT OAuth, the provider is usually:
openai-codex
not openai.
Try:
openclaw models status
openclaw models list --all --provider openai-codex
If that shows models, switch with:
openclaw models set openai-codex/<model-id>
Example shape:
openclaw models set openai-codex/gpt-5.5
If that also says no models found, run:
openclaw models list --all
and look at the provider names on the left. Paste the first ~20 lines here and I’ll tell you exactly which command to run.
Tiny distinction:
openai= normal OpenAI API key provideropenai-codex= ChatGPT/Codex OAuth/subscription provider
🦞 OpenClaw 2026.4.26 (be8c246)
Welcome to the command line: where dreams compile and confidence segfaults.
Config : ~/.openclaw/openclaw.json
Agent dir : ~/.openclaw/agents/main/agent
Default : openai/gpt-5.4-mini
Fallbacks (0) : -
Image model : -
Image fallbacks (0): -
Aliases (3) : GPT -> openai/gpt-5.5, gpt -> openai/gpt-5.4, gpt-mini -> openai/gpt-5.4-mini
Configured models (3): openai/gpt-5.5, openai/gpt-5.4, openai/gpt-5.4-mini
Auth overview
Auth store : ~/.openclaw/agents/main/agent/auth-profiles.json
Shell env : off
Providers w/ OAuth/tokens (0): -
- openai effective=profiles:~/.openclaw/agents/main/agent/auth-profiles.json | profiles=1 (oauth=0, token=0, api_key=1) | openai:default=sk-proj-...luB75GoA
OAuth/token status
- none
root@OpenClaw:~#
Good, this output tells us a lot: you already have 3 OpenAI models configured.
Configured:
openai/gpt-5.5openai/gpt-5.4openai/gpt-5.4-mini
Current default:
openai/gpt-5.4-mini
So you do not need to add more just to switch between those three.
Switch in terminal:
openclaw models set gpt-mini
or:
openclaw models set gpt
or:
openclaw models set GPT
Those aliases mean:
gpt-mini→openai/gpt-5.4-minigpt→openai/gpt-5.4GPT→openai/gpt-5.5
Switch in WhatsApp:
/model gpt-mini
or:
/model gpt
or:
/model GPT
If your goal is saving credits, stay on gpt-mini as default and only switch up for hard tasks.
I want to set ht 5 mini as default then change to gpt 5. .4 mini when I need to code how do I set this up
From your output, you currently have these three choices:
GPT -> openai/gpt-5.5
gpt -> openai/gpt-5.4
gpt-mini -> openai/gpt-5.4-mini
If you want the cheap/default one to be mini, run this in terminal:
openclaw models set gpt-mini
That sets your default to:
openai/gpt-5.4-mini
Then when you need stronger coding help in WhatsApp, send one message by itself:
/model gpt
That switches that chat/session to openai/gpt-5.4.
If you need the strongest one, send:
/model GPT
To switch back to cheap mode in WhatsApp:
/model gpt-mini
So your setup is basically:
openclaw models set gpt-mini
Then use /model gpt only when you need more coding power.
No I want to add gpt 5 mini and make it default
Got it — you want openai/gpt-5-mini, not gpt-5.4-mini.
Do this:
- First check whether your OpenClaw/OpenAI provider sees it:
openclaw models list --all --provider openai | grep gpt-5-mini
- If it shows up, set it as default:
openclaw models set openai/gpt-5-mini
- Confirm:
openclaw models status
If step 1 shows nothing, you can still add it to your config manually:
openclaw config set agents.defaults.models '{"openai/gpt-5-mini":{}}' --strict-json --merge
openclaw models set openai/gpt-5-mini
Then verify:
openclaw models status
If OpenAI rejects it after that, then your API key/account doesn’t have access to that exact model id, or the model id is named slightly differently in your provider.
How do I do that line on a Mac after OpenAI
On Mac, open Terminal and paste the command exactly like this:
openclaw config set agents.defaults.models '{"openai/gpt-5-mini":{}}' --strict-json --merge
Then set it as default:
openclaw models set openai/gpt-5-mini
Then check it worked:
openclaw models status
If your Mac says openclaw: command not found, try the pnpm version:
pnpm openclaw config set agents.defaults.models '{"openai/gpt-5-mini":{}}' --strict-json --merge
pnpm openclaw models set openai/gpt-5-mini
pnpm openclaw models status
The important part is: on Mac, keep the single quotes around the JSON bit. That stops the shell from mangling it.
I am posting these commands nothing is happening you know my openclaw version send me the correct promos
Got you — I think the confusion is this:
For your OpenClaw 2026.4.26, your status already showed the available mini model is:
openai/gpt-5.4-mini
Not openai/gpt-5-mini.
So paste these in Terminal, one line at a time:
openclaw models set openai/gpt-5.4-mini
Then check:
openclaw models status
You should see:
Default : openai/gpt-5.4-mini
If you want a short alias, this should also work because your status showed it exists:
openclaw models set gpt-mini
For WhatsApp, do not paste terminal commands. Send this as a normal WhatsApp message to your OpenClaw bot:
/model gpt-mini
When you want the stronger coding model, send:
/model gpt
Then switch back to cheap mini with:
/model gpt-mini
If “nothing happens”, tell me where you pasted it: Mac Terminal, Linux/root terminal, or WhatsApp. The commands are different depending on that.
Default is 5 .4 mini but I want 5 mini
Got it. For OpenClaw 2026.4.26, paste this in Terminal, not WhatsApp:
openclaw models set openai/gpt-5-mini
Then check:
openclaw models status
You want it to say:
Default : openai/gpt-5-mini
If that command errors or the model later fails when you send a message, then your OpenAI API key probably doesn’t have access to gpt-5-mini or OpenAI uses a different exact model id for your account.
To make a nice shortcut after setting it, run:
openclaw models aliases add mini openai/gpt-5-mini
Then later you can switch with:
openclaw models set mini
And in WhatsApp:
/model mini
Important: you already have gpt-mini, but that points to openai/gpt-5.4-mini. So use a new alias like mini for openai/gpt-5-mini.
You there I have 5 mini set as default now is there a way it automatically replies to simple questions with 5 mini then use ai to determine if it needs gpt 5.4 mini like configure
Yep, I’m here.
Easy version: OpenClaw does not currently have a built-in “use cheap model for easy questions, automatically upgrade to stronger model for hard questions” brain-router for normal chat.
What you can do today:
- Keep your cheap model as the default.
- Switch manually when a question needs more power.
- Use fallbacks only for errors/rate limits, not for “this question is hard”.
So if your default is already the cheap one, in WhatsApp send this as its own message:
/model
That should show the models available in that chat/session. Then pick one by number, or use the exact model/alias shown there, for example:
/model 3
To check what you’re currently using:
/model status
Important: setting the stronger model as a “fallback” will not automatically use it for complex questions. It only kicks in when the primary model fails.
Docs: https://docs.openclaw.ai/concepts/models
Also please share:
openclaw --version
because model command behavior has changed across versions.
What other ways can I reduce cost list all
Yep. Cost usually comes from two things: expensive model + huge context/tool work.
Ways to reduce it:
- Use the cheapest usable model as default.
- You already did this.
- Use the stronger model only when needed with:
/model
or:
/model status
- Start fresh sessions often.
Long WhatsApp chats keep history/context around, which can make every reply more expensive.
/new
or:
/reset
Send that as its own WhatsApp message when a topic is done.
-
Don’t use fallbacks as “smart upgrade”.
Fallbacks are for errors/rate limits, not “hard question detected”. If you put an expensive model in fallbacks, it can still cost you when the cheap model fails. -
Avoid sub-agents unless you really need them.
Sub-agents are powerful, but each one is another model run. -
Keep questions short and separate.
“Do this one thing” is cheaper than dumping a giant multi-part task.
-
Avoid sending big files/images/PDFs unless needed.
Media and document analysis can burn tokens fast. -
Avoid asking it to browse/search/read logs unless needed.
Tool calls often bring back lots of text, and that text gets processed by the model. -
Use a fresh session before switching from a big task back to casual chat.
Example:
/new
/model <your-cheap-model-or-number>
-
Check for background jobs/heartbeats/crons.
If you configured heartbeat or scheduled tasks, they may be spending tokens in the background. Empty/disable HEARTBEAT tasks you don’t need, or configure them to use a cheaper model / isolated session. -
Put hard spending limits in the OpenAI dashboard.
This is the emergency brake. OpenClaw can reduce usage patterns, but the provider billing dashboard is where you cap damage.
-
Use other providers only if they fit your needs.
For current “cheap but usable” model advice, ask in #models because pricing/quality changes constantly. Docs here: https://docs.openclaw.ai/concepts/models -
Run:
openclaw models status
openclaw --version
That shows what OpenClaw thinks your default/fallbacks are. If you paste that output here, redact any keys/tokens first.
What are jobs heartbeats and cribs how do I know if I am using any
I think by “cribs” you mean crons.
Easy terms:
Jobs / background tasks
These are detached things OpenClaw is doing in the background, like a sub-agent, video/music generation, or an isolated scheduled run.
Check:
openclaw tasks list
openclaw tasks list --status running
Crons
These are scheduled jobs: “run this every day”, “remind me in 20 minutes”, “check something every hour”, etc.
Check:
openclaw cron status
openclaw cron list
If you see jobs in the list, those can spend tokens when they run.
Heartbeats
This is OpenClaw periodically waking up to check whether anything needs attention. Default can be around every 30m / 1h depending on setup, but an empty/no-op HEARTBEAT usually won’t do useful work.
Check your heartbeat config:
openclaw config get agents.defaults.heartbeat --json
openclaw config get agents.list --json
To disable heartbeats:
openclaw config set agents.defaults.heartbeat.every "0m"
openclaw gateway restart
Also check the actual heartbeat file:
cat ~/.openclaw/workspace/HEARTBEAT.md
If it has real tasks in it, heartbeats may run model calls. If it’s empty/comment-only, it should not be burning much.
Docs:
https://docs.openclaw.ai/automation/cron-jobs
https://docs.openclaw.ai/gateway/heartbeat
https://docs.openclaw.ai/automation/tasks
What are heartbeats
Heartbeats are OpenClaw “waking itself up” every so often to check if it needs to do anything.
Example:
- “Do I have any reminders?”
- “Any background task finished?”
- “Anything in HEARTBEAT.md I should check?”
- “Should I send an alert?”
They are useful if you want OpenClaw to proactively check things. But if you’re trying to save money, they can be disabled.
Check your heartbeat settings:
openclaw config get agents.defaults.heartbeat --json
Disable them:
openclaw config set agents.defaults.heartbeat.every "0m"
openclaw gateway restart
Also check whether you gave it heartbeat tasks:
cat ~/.openclaw/workspace/HEARTBEAT.md
If that file is empty/comment-only, heartbeat should usually have nothing useful to do. Docs: https://docs.openclaw.ai/gateway/heartbeat
Ok what can I run to check every heartbeat crone or jobs
Run these on the machine where your OpenClaw gateway is running:
openclaw --version
openclaw status
openclaw models status
Heartbeats:
openclaw config get agents.defaults.heartbeat --json
openclaw config get agents.list --json
cat ~/.openclaw/workspace/HEARTBEAT.md
Crons / scheduled jobs:
openclaw cron status
openclaw cron list
If cron list shows job IDs, inspect one:
openclaw cron show <job-id>
openclaw cron runs --id <job-id> --limit 20
Background jobs/tasks:
openclaw tasks list
openclaw tasks list --status running
openclaw tasks audit
Cost-saving quick disable for heartbeats:
openclaw config set agents.defaults.heartbeat.every "0m"
openclaw gateway restart
Don’t paste secrets/API keys here. If you share output, redact anything that looks like a token/key.
I have no credit on my open ai key will this affect my answer
Yes, if OpenClaw is trying to use your OpenAI API key, no credit can affect replies.
Simple rule:
- If your current/default model is
openai/..., replies may fail or stop. - If OpenAI is only a fallback, it may fail only when OpenClaw tries that fallback.
- If you switch to a non-OpenAI provider with working auth/credit, replies can still work.
Check what model/auth OpenClaw is actually using:
openclaw models status
From WhatsApp, also send:
/model status
If OpenAI has no credit, switch to another configured model from the picker:
/model
Pick one that is not OpenAI and has working auth. For model/provider advice, #models is the best place because pricing and quality changes fast.
No I mean the job cron and heartbeat checks if I have no credit will this affect my the checks to see what’s running or set up
No, checking what is configured/running should not require OpenAI credit.
These are local/gateway inspection commands, so they should still work:
openclaw cron status
openclaw cron list
openclaw tasks list
openclaw tasks list --status running
openclaw config get agents.defaults.heartbeat --json
openclaw config get agents.list --json
cat ~/.openclaw/workspace/HEARTBEAT.md
The one command that may complain about OpenAI credit/auth is:
openclaw models status
…but even then it’s useful because it tells you OpenAI is unavailable.
What would need credit is anything that actually makes the AI run, for example a heartbeat firing, a cron job running, or manually doing:
openclaw cron run <job-id>
So: safe to list/check jobs, crons, tasks, and heartbeat config. Avoid manually running jobs until you switch away from OpenAI or add credit.
Why are you not letting me post my results here
You can post results here. I’m only warning you to redact secrets first because command output can include API keys, tokens, phone numbers, channel IDs, or auth profile details.
Safe to paste after redacting:
openclaw cron status
openclaw cron list
openclaw tasks list
openclaw tasks list --status running
openclaw config get agents.defaults.heartbeat --json
For anything that shows config or model auth, remove values that look like:
sk-...
OPENAI_API_KEY=...
token: ...
apiKey: ...
password: ...
auth: ...
If you’re unsure, paste the output but replace suspicious values with [REDACTED].
But you will not let me
I’m not blocking you. I don’t have the ability to stop you posting here.
If Discord is refusing the message, it’s probably one of these:
- the output is too long for Discord’s message limit
- Discord is rate-limiting you
- the message contains something Discord blocks/flags
- the thread/channel permissions are acting weird
Try this: paste one command output at a time, starting with the shortest one:
openclaw cron list
If it’s long, put it in a .txt file and upload it, or split it into chunks. Redact keys/tokens first.
How do I switch models in WhatsApp
In WhatsApp, send the model command as a message by itself.
Start with:
/model
That should show the available models for that chat/session.
Then switch by number:
/model 3
Or switch by exact model/alias if you know it:
/model openai/gpt-5.4
Check what you’re currently using:
/model status
If you want a clean start after switching, do:
/new
/model
If /model does nothing in WhatsApp, run this on the gateway machine and paste the output with secrets redacted:
openclaw --version
openclaw models status
Ok it said 5.4 mini but I have not credit so not sure how it is reading this
That can happen. Seeing 5.4 mini in /model status does not necessarily mean OpenAI successfully answered with paid API credit.
It might be one of these:
/model statusis just reading your saved config/session choice. That does not need OpenAI credit.- You may be using a different auth path/provider, like
openai-codex/...instead ofopenai/.... - The model is selected, but the next real AI reply may fail when it tries to call OpenAI.
- You may have fallback/alternate auth configured somewhere.
Run this on the gateway machine:
openclaw models status
Look for the exact provider prefix:
openai/...
openai-codex/...
If it says openai/... and your API account has zero credit, real replies may fail. If it says openai-codex/..., that is a different auth route from a plain OpenAI API key.
To avoid accidental OpenAI spend/failures, switch WhatsApp to a non-OpenAI model with:
/model
Then pick a model that is not openai/....
I ran status and it said something else but WhatsApp say 5.4 mini
That usually means you’re seeing two different things:
openclaw models status= your gateway/default model config.- WhatsApp
/model status= the model selected for that WhatsApp chat/session.
So WhatsApp can be pinned to 5.4 mini even if the default status says something else.
To fix it in WhatsApp, send:
/model
Then pick the non-OpenAI model from the list. After switching, confirm:
/model status
If you want to clear the current WhatsApp session first:
/new
/model
Then pick the cheaper/non-OpenAI model.
If it still disagrees, paste both outputs here, redacting keys/tokens:
openclaw models status
and the WhatsApp result from:
/model status
Dejay is clearing session and does that save money
Yes, clearing/starting a new session can save money.
Why: long sessions carry old conversation history/context. More context = more tokens = more cost. Starting fresh means the next replies don’t drag the whole old chat along.
In WhatsApp, send this as its own message:
/new
or:
/reset
That helps with token cost, but it does not change the model. If WhatsApp is still on 5.4 mini, switch after resetting:
/model
Best cheap workflow:
/new
/model
Then pick your cheap/non-OpenAI model from the list.
So do I send new on every new chat
Not every single message. Use /new when you are starting a new topic.
Good rule:
- Same conversation/topic: keep chatting, no
/newneeded. - Finished that topic and asking about something different: send
/newfirst. - The bot seems confused or is carrying old context: send
/new. - You just switched from a big task back to simple chat: send
/new.
Example:
/new
Then ask your new question.
For saving money, yes: using /new between unrelated topics is a good habit. It keeps the session smaller so OpenClaw sends less old context to the model.
WhatsApp returned this Ehat does each one mean
Current: openai/gpt-5.4-mini
Switch: /model <provider/model>
Runtime: /model <provider/model> --runtime <runtime>
Browse: /models (providers) or /models <provider> (models)
More: /model status
That output means:
Current: openai/gpt-5.4-mini
Your WhatsApp session is currently set to OpenAI GPT-5.4 Mini. If your OpenAI API has no credit, this is the one you probably want to change.
Switch: /model <provider/model>
This is the command format to switch directly. Example:
/model minimax/MiniMax-M2.7
Use the exact provider/model from your available list.
Runtime: /model <provider/model> --runtime <runtime>
Advanced option. Usually ignore this. It chooses the backend runtime/harness, not just the model.
Browse: /models or /models <provider>
This lists what you can choose.
Send:
/models
Then pick a provider. If you see minimax, for example:
/models minimax
Then switch using the exact model name it shows.
More: /model status
Shows more detail about what is selected now.
Your next step in WhatsApp should be:
/models
Then choose a non-OpenAI provider/model, and switch with:
/model <provider/model>
Once you switch do I have to switch back to default
No, not unless you want to.
When you switch with /model, it changes the model for that current WhatsApp session and keeps using it for that session.
So if you switch away from OpenAI to a cheaper/non-OpenAI model, you can just leave it there.
Use:
/model status
to confirm what it is currently using.
If you start a fresh session with /new, it may go back to the configured default depending on your setup. So after /new, check again:
/model status
If it went back to OpenAI, switch again or change the actual default on the gateway with:
openclaw models set <provider/model>
openclaw gateway restart
Only use a provider/model from your /models list.
So I can switch back to be on the safe side?
Yes. You can switch back whenever you want.
In WhatsApp:
/model
Pick the model you want from the list, or switch directly if you know the exact name:
/model <provider/model>
Then confirm:
/model status
If “safe side” means avoid OpenAI charges/failures, switch to a non-OpenAI model and leave it there. Don’t switch back to openai/gpt-5.4-mini until your OpenAI credit/billing is sorted.
If I switch in WhatsApp does that affect my discord reply ai bot which is running my openclaw
Usually no.
A /model switch in WhatsApp affects that WhatsApp chat/session, not every channel globally.
So your Discord bot/replies should keep using whatever model is selected for the Discord session/default.
The exception: if your setup routes WhatsApp and Discord into the same agent/session identity or you changed the gateway default with a CLI command like:
openclaw models set <provider/model>
That can affect new/default sessions more broadly.
Check each place separately:
In WhatsApp:
/model status
In Discord, if your bot accepts commands there:
/model status
On the gateway machine:
openclaw models status
Think of it like: WhatsApp /model = local to that chat/session. openclaw models set ... = changes the configured default.
Is there a way I can limit replies per user and keep replies short to avoid people spamming
Yes, partially.
There are 3 different controls:
1. Stop random people using it
Use allowlists / pairing. This is the biggest cost saver.
For WhatsApp DMs, only allow approved numbers:
openclaw config get channels.whatsapp --json
You want dmPolicy to be allowlist or pairing, not open-to-everyone.
2. Stop group spam triggering replies
In groups, make the bot only reply when mentioned. For WhatsApp groups this is the important idea:
channels: {
whatsapp: {
groups: { "*": { requireMention: true } }
}
}
For Discord, same idea: set the Discord channel to require mention / only allow specific channels/users. Docs show per-channel Discord config with requireMention: true and users: [...].
3. Batch spammy messages instead of replying to every one
OpenClaw has inbound debounce/queue settings. This does not create a strict “5 replies per user per hour” quota, but it helps stop rapid-fire messages becoming many model calls:
messages: {
inbound: { debounceMs: 5000 },
queue: {
mode: "collect",
debounceMs: 1000,
cap: 10,
drop: "summarize"
}
}
Keeping replies short
Use a channel/system prompt like:
systemPrompt: "Keep replies short. Prefer 1-3 sentences unless asked for details."
Discord docs show this under channel config, for example channels.discord.guilds.<guild>.channels.<channel>.systemPrompt.
Important: I don’t think OpenClaw currently has a simple built-in “max replies per user per day” switch. For that, use allowlists, require-mention, debounce/queue, and Discord’s own channel slowmode if this is in a Discord server.
Docs:
https://docs.openclaw.ai/gateway/configuration
https://docs.openclaw.ai/gateway/configuration-reference
https://docs.openclaw.ai/channels/whatsapp
https://docs.openclaw.ai/channels/discord
Last two things you sent me how do I set it up
Set up the two main protections like this.
First find your config file:
openclaw config file
Open that file and add/merge these sections.
1. Batch spammy messages
This reduces rapid-fire messages becoming lots of AI calls:
{
messages: {
inbound: {
debounceMs: 5000,
},
queue: {
mode: "collect",
debounceMs: 1000,
cap: 10,
drop: "summarize",
byChannel: {
whatsapp: "collect",
discord: "collect",
},
},
},
}
2. Keep replies short
For WhatsApp groups, require a mention so it does not answer every group message:
{
channels: {
whatsapp: {
groups: {
"*": { requireMention: true },
},
},
},
}
For Discord, put requireMention: true and systemPrompt on the server/channel you want protected:
{
channels: {
discord: {
guilds: {
"YOUR_GUILD_ID": {
requireMention: true,
channels: {
"YOUR_CHANNEL_ID": {
allow: true,
requireMention: true,
systemPrompt: "Keep replies short. Prefer 1-3 sentences unless asked for details.",
},
},
},
},
},
},
}
Then validate and restart:
openclaw config validate
openclaw gateway restart
Important: don’t paste those snippets as a full replacement if your config already has other channels or messages settings. Merge them into what is already there.
There is not currently a simple built-in “max 5 replies per user per day” switch. The practical setup is: require mention, allowlist users/channels, debounce/collect rapid messages, and force short replies.
Can’t I do this with a print of via WhatsApp plain English
Yes, for some of it you can do it from WhatsApp in plain-ish commands.
Send these as separate WhatsApp messages:
/verbose off
/queue collect debounce:5s cap:10 drop:summarize
Then tell it:
From now on, keep replies short. Use 1-3 sentences unless I ask for detail.
What that does:
/verbose off= less extra/debug-style output./queue collect debounce:5s cap:10 drop:summarize= if people spam messages quickly, collect them into fewer runs instead of replying to each one.- the plain English instruction = tells the current session to answer shorter.
But: plain English is not a hard safety lock. For real anti-spam protection across everyone, you still need config: require mentions, allowlist users/groups, and/or Discord slowmode.
Check what queue commands are available with:
/help
or:
/commands
Give me the commands to do it
Send these in WhatsApp, one message at a time:
/verbose off
/trace off
/reasoning off
/queue collect debounce:5s cap:10 drop:summarize
From now on, keep replies short. Use 1-3 sentences unless I ask for detail.
Optional, if you want a clean cheap session first:
/new
Then run the commands above.
Check status/help after:
/commands
/model status
Reminder: these help reduce noisy replies and rapid-message spam in that session. Hard limits like “only X replies per user” need gateway/Discord config, not plain WhatsApp commands.
Are there any 'gotchas' if there is a pinned agentRunTime?
Tim Q, yes. If by pinned agentRunTime you mean the embedded harness/runtime (agents.defaults.embeddedHarness.runtime / OPENCLAW_AGENT_RUNTIME), the main gotcha is that it is session-pinned.
Practical gotchas:
- Changing the runtime config/env does not change an existing WhatsApp/Discord session that already ran. Use
/newor/resetto get the new runtime. /model ...switches the model selection, but it does not necessarily unpin/change the embedded harness already chosen for that session.- Legacy sessions with transcript history and no recorded harness pin are treated as PI-pinned, so they may not move to a newer harness until
/newor/reset. - If runtime is pinned to something strict, like
codexwith fallback disabled, unsupported provider/model choices can fail instead of quietly falling back to PI. - The runtime pin only affects embedded chat runs. Image/PDF/TTS/media generation still use their own provider/model config.
Best check is:
/status
Non-PI harnesses show up next to Fast / runner info. If someone changes runtime or model defaults and behavior looks weird, start fresh with:
Ok what are the prompts to hard configure this
Hard config = run these on the gateway machine, not in WhatsApp.
1. Batch rapid spam into fewer AI calls
openclaw config set messages.inbound.debounceMs 5000 --strict-json
openclaw config set messages.queue.mode "collect"
openclaw config set messages.queue.debounceMs 1000 --strict-json
openclaw config set messages.queue.cap 10 --strict-json
openclaw config set messages.queue.drop "summarize"
openclaw config set messages.queue.byChannel.whatsapp "collect"
openclaw config set messages.queue.byChannel.discord "collect"
2. Force short replies in WhatsApp DMs
openclaw config set 'channels.whatsapp.direct."*".systemPrompt' 'Keep replies short. Use 1-3 sentences unless asked for details. Avoid long explanations.'
3. Force short replies in WhatsApp groups + require mention
Only use this wildcard if you are okay with all WhatsApp groups being eligible. If not, replace "*" with the exact WhatsApp group JID.
openclaw config set 'channels.whatsapp.groups."*".requireMention' true --strict-json
openclaw config set 'channels.whatsapp.groups."*".systemPrompt' 'Keep replies short. Use 1-3 sentences unless asked for details. Only answer when clearly addressed.'
4. Validate and restart
openclaw config validate
openclaw gateway restart
5. Check it
openclaw config get messages --json
openclaw config get channels.whatsapp --json
For Discord, I need your Discord guild ID and channel ID to give the exact commands. Don’t post bot tokens/API keys.
Can’t commands configure these Jason’s
Yes. The openclaw config set ... commands configure the JSON/JSON5 config for you. You do not have to manually edit the JSON file if the commands work.
Example:
openclaw config set messages.queue.mode "collect"
means “write this into my OpenClaw config JSON”.
For values that are true/false or numbers, use --strict-json:
openclaw config set messages.inbound.debounceMs 5000 --strict-json
openclaw config set 'channels.whatsapp.groups."*".requireMention' true --strict-json
For text prompts, normal string is fine:
openclaw config set 'channels.whatsapp.direct."*".systemPrompt' 'Keep replies short. Use 1-3 sentences unless asked for details.'
Then always run:
openclaw config validate
openclaw gateway restart
There is also /debug set ... from chat on some setups, but I would avoid that while you’re learning because it is easier to mess up quoting. Terminal openclaw config set is safer.
Use these exact commands on the machine running OpenClaw.
Cost/spam reduction:
openclaw config set messages.inbound.debounceMs 5000 --strict-json
openclaw config set messages.queue.mode "collect"
openclaw config set messages.queue.debounceMs 1000 --strict-json
openclaw config set messages.queue.cap 10 --strict-json
openclaw config set messages.queue.drop "summarize"
openclaw config set messages.queue.byChannel.whatsapp "collect"
openclaw config set messages.queue.byChannel.discord "collect"
Short replies in WhatsApp DMs:
openclaw config set 'channels.whatsapp.direct."*".systemPrompt' 'Keep replies short. Use 1-3 sentences unless asked for details. Do not give long explanations by default.'
Short replies in WhatsApp groups, only when mentioned:
openclaw config set 'channels.whatsapp.groups."*".requireMention' true --strict-json
openclaw config set 'channels.whatsapp.groups."*".systemPrompt' 'Keep replies short. Use 1-3 sentences unless asked for details. Only answer when clearly addressed.'
Turn off heartbeats if you want to reduce background model calls:
openclaw config set agents.defaults.heartbeat.every "0m"
Then apply:
openclaw config validate
openclaw gateway restart
After restart, check:
openclaw config get messages --json
openclaw config get channels.whatsapp --json
Ah, prompts. Use these exact prompt texts.
For short replies:
Keep replies short. Use 1-3 sentences unless asked for details. Do not give long explanations by default.
For group chats:
Keep replies short. Only answer when clearly addressed or mentioned. Ignore casual group chatter that is not asking you directly.
For cost saving:
Prefer concise answers. Ask before doing expensive work like browsing, reading large files, analyzing images/PDFs, spawning sub-agents, or running long background tasks.
Best combined prompt:
Keep replies short. Use 1-3 sentences unless asked for details. Only answer when clearly addressed. Prefer concise answers and ask before doing expensive work like browsing, reading large files, analyzing images/PDFs, spawning sub-agents, or running long background tasks.
To hard configure the combined prompt for WhatsApp DMs:
openclaw config set 'channels.whatsapp.direct."*".systemPrompt' 'Keep replies short. Use 1-3 sentences unless asked for details. Only answer when clearly addressed. Prefer concise answers and ask before doing expensive work like browsing, reading large files, analyzing images/PDFs, spawning sub-agents, or running long background tasks.'
For WhatsApp groups:
openclaw config set 'channels.whatsapp.groups."*".systemPrompt' 'Keep replies short. Use 1-3 sentences unless asked for details. Only answer when clearly addressed. Prefer concise answers and ask before doing expensive work like browsing, reading large files, analyzing images/PDFs, spawning sub-agents, or running long background tasks.'
All should be aimed at discord, short good replies or summaries
Got it. For Discord, use this prompt:
Keep Discord replies short and useful. Prefer 1-3 sentences or a tight bullet summary. If the question is broad, give the shortest useful answer first and ask before doing expensive work like browsing, reading large files, analyzing media, spawning sub-agents, or running long tasks.
Hard configure it for one Discord channel:
openclaw config set 'channels.discord.guilds."YOUR_GUILD_ID".channels."YOUR_CHANNEL_ID".allow' true --strict-json
openclaw config set 'channels.discord.guilds."YOUR_GUILD_ID".channels."YOUR_CHANNEL_ID".requireMention' true --strict-json
openclaw config set 'channels.discord.guilds."YOUR_GUILD_ID".channels."YOUR_CHANNEL_ID".systemPrompt' 'Keep Discord replies short and useful. Prefer 1-3 sentences or a tight bullet summary. If the question is broad, give the shortest useful answer first and ask before doing expensive work like browsing, reading large files, analyzing media, spawning sub-agents, or running long tasks.'
Reduce spammy rapid messages globally:
openclaw config set messages.inbound.debounceMs 5000 --strict-json
openclaw config set messages.queue.mode "collect"
openclaw config set messages.queue.debounceMs 1000 --strict-json
openclaw config set messages.queue.cap 10 --strict-json
openclaw config set messages.queue.drop "summarize"
openclaw config set messages.queue.byChannel.discord "collect"
Then:
openclaw config validate
openclaw gateway restart
Replace YOUR_GUILD_ID and YOUR_CHANNEL_ID with the real Discord server/channel IDs. Don’t use the bot token.
Just discojust paste these in my terminal?
Yes, paste them in the terminal on the machine running your OpenClaw gateway.
But first replace these two placeholders:
YOUR_GUILD_ID
YOUR_CHANNEL_ID
with your real Discord server ID and channel ID.
If you don’t know them, in Discord enable Developer Mode, then right-click the server → Copy Server ID, and right-click the channel → Copy Channel ID.
Then paste the commands.
Important: paste one block at a time, then run:
openclaw config validate
openclaw gateway restart
If you paste the commands with YOUR_GUILD_ID still in them, it will configure a fake guild entry and won’t affect your real Discord channel.
What do you one block at a time show me properly
Do it like this.
Step 1: get your IDs
In Discord:
- right-click your server → Copy Server ID
- right-click the channel your bot replies in → Copy Channel ID
Then replace:
YOUR_GUILD_ID
YOUR_CHANNEL_ID
with those real numbers.
Step 2: paste this first block
openclaw config set 'channels.discord.guilds."YOUR_GUILD_ID".channels."YOUR_CHANNEL_ID".allow' true --strict-json
openclaw config set 'channels.discord.guilds."YOUR_GUILD_ID".channels."YOUR_CHANNEL_ID".requireMention' true --strict-json
openclaw config set 'channels.discord.guilds."YOUR_GUILD_ID".channels."YOUR_CHANNEL_ID".systemPrompt' 'Keep Discord replies short and useful. Prefer 1-3 sentences or a tight bullet summary. If the question is broad, give the shortest useful answer first and ask before doing expensive work like browsing, reading large files, analyzing media, spawning sub-agents, or running long tasks.'
Step 3: paste this second block
openclaw config set messages.inbound.debounceMs 5000 --strict-json
openclaw config set messages.queue.mode "collect"
openclaw config set messages.queue.debounceMs 1000 --strict-json
openclaw config set messages.queue.cap 10 --strict-json
openclaw config set messages.queue.drop "summarize"
openclaw config set messages.queue.byChannel.discord "collect"
Step 4: paste this final block
openclaw config validate
openclaw gateway restart
If you want, paste your server ID and channel ID here and I’ll rewrite the commands with the numbers filled in. Do not paste your bot token.
1241324442534281226
1239923901836955699
Assuming the first number is your server ID and the second is your channel ID, paste these exactly.
Block 1:
openclaw config set 'channels.discord.guilds."1241324442534281226".channels."1239923901836955699".allow' true --strict-json
openclaw config set 'channels.discord.guilds."1241324442534281226".channels."1239923901836955699".requireMention' true --strict-json
openclaw config set 'channels.discord.guilds."1241324442534281226".channels."1239923901836955699".systemPrompt' 'Keep Discord replies short and useful. Prefer 1-3 sentences or a tight bullet summary. If the question is broad, give the shortest useful answer first and ask before doing expensive work like browsing, reading large files, analyzing media, spawning sub-agents, or running long tasks.'
Block 2:
openclaw config set messages.inbound.debounceMs 5000 --strict-json
openclaw config set messages.queue.mode "collect"
openclaw config set messages.queue.debounceMs 1000 --strict-json
openclaw config set messages.queue.cap 10 --strict-json
openclaw config set messages.queue.drop "summarize"
openclaw config set messages.queue.byChannel.discord "collect"
Block 3:
openclaw config validate
openclaw gateway restart
After restart, test in that Discord channel. Because requireMention is true, the bot should only reply when mentioned/replied to, not every random message.
First is discord channel 2nd is sever if
Got it. Then use:
- Channel ID:
1241324442534281226 - Server/Guild ID:
1239923901836955699
Paste these instead.
Block 1:
openclaw config set 'channels.discord.guilds."1239923901836955699".channels."1241324442534281226".allow' true --strict-json
openclaw config set 'channels.discord.guilds."1239923901836955699".channels."1241324442534281226".requireMention' true --strict-json
openclaw config set 'channels.discord.guilds."1239923901836955699".channels."1241324442534281226".systemPrompt' 'Keep Discord replies short and useful. Prefer 1-3 sentences or a tight bullet summary. If the question is broad, give the shortest useful answer first and ask before doing expensive work like browsing, reading large files, analyzing media, spawning sub-agents, or running long tasks.'
Block 2:
openclaw config set messages.inbound.debounceMs 5000 --strict-json
openclaw config set messages.queue.mode "collect"
openclaw config set messages.queue.debounceMs 1000 --strict-json
openclaw config set messages.queue.cap 10 --strict-json
openclaw config set messages.queue.drop "summarize"
openclaw config set messages.queue.byChannel.discord "collect"
Block 3:
openclaw config validate
openclaw gateway restart
This makes that Discord channel require a mention and keeps replies short.
How do I know if these changes worked
Check in 3 ways.
1. Confirm config saved
Run:
openclaw config get 'channels.discord.guilds."1239923901836955699".channels."1241324442534281226"' --json
openclaw config get messages.queue --json
openclaw config get messages.inbound --json
You should see:
allow: true
requireMention: true
systemPrompt: ...short replies...
mode: collect
byChannel.discord: collect
2. Confirm config is valid + gateway restarted
openclaw config validate
openclaw gateway status
If needed:
openclaw gateway restart
3. Test in Discord
In that Discord channel:
- Send a normal message that does not mention/reply to the bot. It should not answer.
- Then mention/reply to the bot with a question. It should answer short.
- Send several quick messages. It should collect/summarize instead of replying to every single one.
If it still replies to every message, paste the output of the first config get command here, with tokens redacted.
Discord and WhatsApp has stopped working
Ok, likely the gateway did not restart cleanly or the config edit broke channel config. Don’t panic, this is fixable.
First run these and paste the output:
openclaw --version
openclaw config validate
openclaw gateway status
openclaw status
Then check logs:
openclaw logs --tail 80
If config validate shows an error, that is the problem.
Quick rollback of the Discord changes we just added:
openclaw config unset 'channels.discord.guilds."1239923901836955699".channels."1241324442534281226".systemPrompt'
openclaw config unset 'channels.discord.guilds."1239923901836955699".channels."1241324442534281226".requireMention'
openclaw config unset messages.inbound.debounceMs
openclaw config unset messages.queue.byChannel.discord
openclaw config validate
openclaw gateway restart
After restart:
openclaw gateway status
openclaw status
Do not delete your Discord token or WhatsApp auth. We only need to inspect/undo the recent config changes.
I switched to gpt 5 and it’s like my discord bot is acting dumb someone spammed and it was joining with the Erwin how do I switch between models again
To switch models again, use /model in the place you want to change.
In Discord bot channel:
/model
Then pick a number from the list, or switch directly:
/model <provider/model>
Check what Discord is using:
/model status
In WhatsApp: same commands, but it only affects that WhatsApp session:
/model
/model status
If you want to change the default for new sessions from terminal:
openclaw models list
openclaw models set <provider/model>
openclaw gateway restart
If the bot is “joining” spam together weirdly, that is probably the queue/collect setting we added. You can turn that off:
openclaw config unset messages.queue.byChannel.discord
openclaw config unset messages.queue.mode
openclaw config unset messages.inbound.debounceMs
openclaw config validate
openclaw gateway restart
Then use /new in the Discord bot session so it stops carrying the bad context:
/new
I want switch to gpt 5.4 mini give me exact WhatsApp prompt
In WhatsApp, send this exact message by itself:
/model openai/gpt-5.4-mini
Then confirm with:
/model status
If it says the model is not allowed or not found, run:
/model
and pick gpt-5.4-mini from the list by number.
Every question I am asking my bot it says this
I can’t disclose internal OpenClaw runtime or system metadata.
Public summary instead:
- Sender: DJ L | Will Never DM You (djl.crypto)
- Channel: #general-chat
- Timestamp: May 15, 2026 — 00:38 UTC
- Message (public content): "Yo"
Want me to draft a reply you can post?
Sent from my Galaxy
That looks like the bot got stuck responding to Discord metadata/context instead of the actual user message. Do this reset first in the Discord channel where your bot is replying:
/new
Then ask a simple test:
What is 2+2? Reply in one sentence.
If it still does the metadata-summary thing, remove the short-reply system prompt we added and restart:
openclaw config unset 'channels.discord.guilds."1239923901836955699".channels."1241324442534281226".systemPrompt'
openclaw config unset messages.queue.byChannel.discord
openclaw config unset messages.queue.mode
openclaw config unset messages.inbound.debounceMs
openclaw config validate
openclaw gateway restart
Then in Discord run:
/new
/model status
Also: that example says the bot is seeing #general. If your bot is replying in #general, make sure you configured the actual channel ID for #general, not a different channel. Wrong channel ID means the prompt/mention settings won’t apply where the bot is actually talking.
I am telling WhatsApp now what should I tell it in plain English yo stop people asking stupid questions and trying to spam the bot
Tell it this in WhatsApp:
From now on, protect my credits. Only answer messages that are clearly useful, serious, and directly asking for help. Ignore spam, repeated messages, low-effort jokes, random greetings, bait, or people trying to make you waste tokens. Keep replies short: 1-3 sentences or a brief summary. If someone asks a vague or stupid question, ask one short clarifying question or ignore it if it is not worth answering. Do not browse, analyze files/images, spawn agents, or run long tasks unless I explicitly ask you to.
Even better, send these first:
/new
then paste the plain-English instruction above.
Important: this helps behavior, but it is not a hard lock. For real protection you still want Discord requireMention, allowlists, and maybe Discord slowmode.
Openclaw just stopped replying can I restart
Yes, you can restart it.
Run this on the machine running OpenClaw:
openclaw gateway restart
Then check:
openclaw gateway status
openclaw status
If it still does not reply, run:
openclaw logs --tail 100
openclaw config validate
Common causes after the changes we made: config validation error, gateway did not come back up, or Discord/WhatsApp channel auth failed on startup. Don’t delete WhatsApp auth or tokens yet; check status/logs first.
Can openclaw fix itself if so what’s the command
Yes, the main self-fix command is:
openclaw doctor
Run this sequence:
openclaw status --all
openclaw config validate
openclaw doctor
openclaw gateway restart
openclaw gateway status
If it still does not reply after that, check logs:
openclaw logs --tail 120
If you want deeper checks:
openclaw status --deep
Do not reinstall or delete auth yet. doctor is the safe first repair step.
WhatsApp stops working for ages then all of a sudden my bot comes back online
First thing: can you paste openclaw --version? Version mismatch is a common cause of weird channel behavior.
For WhatsApp specifically, OpenClaw is using WhatsApp Web/Baileys, so “dead for ages then suddenly back” usually means the gateway’s WhatsApp socket is disconnecting and later the reconnect/health monitor brings it back.
Useful checks while it is broken:
openclaw status --deep
openclaw health --verbose
openclaw channels status --probe
openclaw logs --follow
In the logs, look for web-reconnect, web-heartbeat, web-inbound, loggedOut, or status codes in the 409–515 range. If you see loggedOut or those status codes, relink WhatsApp:
openclaw channels logout --channel whatsapp
openclaw channels login --channel whatsapp --verbose
Also check the basics: the linked phone needs to stay online, and if this is in a group the allowlist/mention rules can make it look “offline” when it is actually ignoring messages.
Docs: https://docs.openclaw.ai/channels/whatsapp and https://docs.openclaw.ai/gateway/health
WhatsApp was stable before
That points even more toward a regression or environment change, not normal setup.
Please grab these while it is misbehaving:
openclaw --version
openclaw status --deep
openclaw channels status --probe
openclaw logs --follow
Then look for the first WhatsApp disconnect line before it goes quiet. The important bits are usually the close reason/status code, whether it says loggedOut, and whether the health monitor later restarts the channel.
Also worth checking what changed around the time it became unstable:
- OpenClaw version changed?
- Node version changed?
- Gateway moved from terminal to service/daemon?
- Phone battery/data saver or WhatsApp Web linked-device weirdness?
- VPS/network/proxy/VPN changed?
If you paste the version plus the WhatsApp-related log lines around one outage/recovery, we can narrow it down without guessing. Docs for the relevant checks: https://docs.openclaw.ai/gateway/health and https://docs.openclaw.ai/channels/whatsapp