The $200/Month Surprise

You set up OpenClaw, connected it to Claude Opus 4.6 or GPT-5.2, and told it to manage your emails, calendar, and cron jobs. It felt like magic. Then the API bill arrived.

OpenClaw users routinely report spending $60+/day — north of $1,800/month — because of a single default: everything routes through your primary model. Every heartbeat, every sub-agent, every "what's on my calendar?" gets processed by your frontier model.

That's the digital equivalent of calling a lawyer every time you need to check the time.

Why Your Bill Is So High

Most OpenClaw users drastically underestimate how many API calls their agent makes behind the scenes. Before fixing it, you need to understand where the tokens actually go.

Heartbeats: The Silent Budget Killer

OpenClaw sends a heartbeat to your primary model every 30 minutes by default — a "check-in" that costs the same per-call as asking it to draft a legal brief. That's 48 heartbeats per day, all running through your premium model. At Opus 4.6 rates ($5/$25 per million tokens), heartbeats alone can cost $30–$60/month depending on context size — for doing essentially nothing.

Sub-Agents: Multiplied Costs

When your main agent spawns sub-agents for parallel tasks — researching multiple things, processing a batch of emails, running skill workflows — each sub-agent initializes with your primary model. A single "check my email and summarize anything important" command might spawn 3–5 sub-agent calls, all at premium rates.

Routine Automation: Premium Prices for Simple Work

Consider a typical OpenClaw day for a power user:

Every one of these tasks is simple. None require frontier reasoning power. Yet by default, they're all billed at frontier rates.


The Price Spread

Here's what each task could cost versus what it does cost on a single premium model (per 1M tokens):

Task Type What It Needs Cost on Opus 4.6 What It Could Cost
Heartbeats Almost nothing $5.00 / $25.00 $0.05 / $0.40 (GPT-5-nano)
Email classification Basic comprehension $5.00 / $25.00 $0.10 / $0.40 (Gemini 2.5 Flash-Lite)
Calendar queries Simple lookup $5.00 / $25.00 $0.15 / $0.60 (GPT-4o mini)
Cron job processing Template execution $5.00 / $25.00 $0.30 / $2.50 (Gemini 2.5 Flash)
Email drafting Moderate writing $5.00 / $25.00 $3.00 / $15.00 (Sonnet 4.5)
Complex reasoning Full intelligence $5.00 / $25.00 $5.00 / $25.00 (Opus 4.6)

The bottom line: you're paying 50–100x more than necessary for 80% of your agent's workload. Community members running multi-model setups report savings of 65–75%, dropping from $200/month to $70 for light users and from $2,750/month to under $1,000 for heavy users.


⚠ Back up first

Before changing model routing, always back up your config. Your agent can do this for you. If anything goes wrong, you can restore it in seconds.

💬 Prompt for your agent
Back up my current OpenClaw config before we make any changes. Save a copy somewhere safe.

Approach 1: Manual Model Switching

The quickest win. Use the /model command in your chat to switch models on the fly:

Chat Commands
# Switch to cheap model for simple stuff
/model flash
What's on my calendar today?

# Switch back for complex work
/model opus
Analyze this contract and flag any problematic clauses

You can set up aliases in your openclaw.json to make this painless. This is the simplest approach but requires you to remember to switch — which defeats the purpose of an autonomous agent.

💬 Prompt for your agent
Set up model aliases so I can quickly switch between models. Add these aliases to my config:
- "opus" → anthropic/claude-opus-4-6
- "sonnet" → anthropic/claude-sonnet-4-5
- "flash" → google/gemini-2.5-flash
- "nano" → openai/gpt-5-nano

Approach 2: Configure Tiered Models

The real fix. OpenClaw lets you assign different models for heartbeats, sub-agents, and your primary agent:

openclaw.json
{
  "agents": {
    "defaults": {
      "model": {
        "primary": "anthropic/claude-opus-4-6",
        "heartbeat": "google/gemini-2.5-flash-lite",
        "subagent": "anthropic/claude-sonnet-4-5"
      }
    }
  }
}

This single change can cut costs dramatically:

💬 Prompt for your agent
Set up tiered model routing in my OpenClaw config:
- Keep my primary model as-is for direct chat
- Switch heartbeats to a cheap model like Gemini 2.5 Flash-Lite or GPT-5-nano
- Switch sub-agents to Claude Sonnet 4.5 or similar mid-tier model
Show me the current config first so we don't break anything.

Approach 3: OpenRouter Auto-Routing

If you want automatic routing without manual configuration, OpenRouter's auto model classifies each prompt and routes simple tasks to cheap models, complex tasks to capable ones:

openclaw.json
{
  "agents": {
    "defaults": {
      "model": {
        "primary": "openrouter/openrouter/auto"
      }
    }
  }
}

You get less control but zero configuration overhead. The trade-off is that you're trusting OpenRouter's classification logic rather than setting your own rules.

💬 Prompt for your agent
Switch my OpenClaw to use OpenRouter's auto-routing model. Set it as the primary model so it handles routing automatically. Make sure OpenRouter is configured as a provider first.

Approach 4: Local Models

For the truly cost-conscious, run a local model via Ollama or LM Studio for heartbeats and simple tasks — reducing those costs to literally zero:

openclaw.json
{
  "models": {
    "providers": {
      "ollama": {
        "baseUrl": "http://localhost:11434/v1",
        "apiKey": "ollama-local",
        "api": "openai-completions",
        "models": [{ "id": "glm-4.7-flash", "name": "GLM-4.7 Flash" }]
      }
    }
  },
  "agents": {
    "defaults": {
      "model": {
        "primary": "anthropic/claude-opus-4-6",
        "heartbeat": "ollama/glm-4.7-flash",
        "subagent": "anthropic/claude-sonnet-4-5"
      }
    }
  }
}
A word of caution Local models require decent hardware, and free-tier hosted options often have 150+ request queues that make them unusable for real-time agent workflows. Cheap paid models like Gemini 2.5 Flash-Lite ($0.10/$0.40) or DeepSeek V3.2 cost nearly nothing and are far more reliable.
💬 Prompt for your agent
Help me set up Ollama as a local model provider for background tasks. I want to use a small local model for heartbeats and simple cron jobs to save on API costs. Walk me through the setup.

Matching Models to Everyday Tasks

Here's a practical routing guide based on what OpenClaw users actually do day-to-day:

Tier 1 — Nano / Lite Models $0.05–$0.10 input
GPT-5-nano · GPT-4.1-nano · Gemini 2.5 Flash-Lite · local models
  • Heartbeat check-ins
  • Simple cron triggers ("run this script," "check this URL")
  • Status checks ("is the server up?")
  • File renaming and organization
  • Basic data formatting
  • Wake-word detection and intent routing
Tier 2 — Small / Fast Models $0.15–$0.30 input
GPT-4o mini · GPT-5-mini · Claude Haiku 3 · Gemini 2.5 Flash
  • Email classification (spam vs. important vs. FYI)
  • Calendar summaries and conflict detection
  • Weather and news digests
  • Simple Q&A lookups
  • Notification triage
  • Quick math and unit conversions
  • Smart home commands
Tier 3 — Mid-Tier Models $1.00–$3.00 input
Claude Haiku 4.5 · Claude Sonnet 4.5 · GPT-4.1 · Gemini 2.5 Pro
  • Drafting email replies
  • Summarizing long documents or threads
  • Research tasks with web browsing
  • Code review for simple changes
  • Meeting prep and briefing generation
  • Expense categorization and reporting
Tier 4 — Premium Models $1.25–$5.00 input
Claude Opus 4.5/4.6 · GPT-5/5.1/5.2 · Gemini 3 Pro
  • Complex multi-step reasoning
  • Analyzing contracts or legal documents
  • Novel problem-solving and architecture decisions
  • Multi-file code refactoring
  • Sensitive communications that require nuance
  • Anything where getting it wrong has real consequences

Setting Up Model Fallbacks

One underappreciated advantage of multi-model setups: resilience. If Anthropic's API hits a rate limit or goes down, a single-model setup simply stops working. With fallbacks configured, your agent gracefully degrades:

openclaw.json
{
  "agents": {
    "defaults": {
      "model": {
        "primary": "anthropic/claude-opus-4-6",
        "fallback": [
          "openai/gpt-5.2",
          "google/gemini-3-pro-preview"
        ]
      }
    }
  }
}

This means your agent stays functional even during provider outages — which, if you're relying on OpenClaw for daily email and calendar management, matters a lot more than saving a few dollars.

💬 Prompt for your agent
Add model fallbacks to my config so my agent stays running if one provider goes down. Use my current primary model as the main, and add 1-2 fallbacks from different providers.

Leveraging Provider-Side Savings

Beyond model routing, every major provider offers additional cost levers that stack with your savings:

Prompt Caching

Anthropic's cache reads cost just 10% of base input price. OpenAI offers cached inputs at 90% off for GPT-5 family models. Google provides context caching at similar discounts. Since OpenClaw re-sends system prompts and skill definitions with every call, caching alone can cut your input token costs by 50–80%.

Batch Processing

All three major providers offer ~50% discounts for non-urgent batch work. If your cron jobs don't need instant responses (a nightly email digest, a weekly expense report), batch them.

Smart Context Management

Large context windows increase token usage dramatically. Configure OpenClaw's compaction settings to keep conversation history lean rather than stuffing entire chat histories into every call:

openclaw.json
{
  "compaction": {
    "mode": "safeguard"
  }
}
💬 Prompt for your agent
Review my OpenClaw compaction settings and optimize them for token savings. Check if I'm sending unnecessarily large context windows and suggest improvements.

Real-World Cost Comparison

Here's what a typical "personal productivity" OpenClaw setup looks like before and after optimization:

Daily usage profile 48 heartbeats · 30 email tasks · 10 calendar queries · 5 cron jobs · 15 quick queries · 5 complex tasks
Before — Single Model
$180–$240
per month · everything on Opus 4.6
After — Tiered Routing
~$85
per month · same quality where it matters

The breakdown:

That's a 65% reduction with no degradation in quality for the tasks that actually matter.


When to Keep a Premium Model

There are legitimate reasons not to bother with routing:

For everyone else — especially anyone spending $100+/month — model tiering is the single highest-ROI change you can make to your OpenClaw setup.


The Bottom Line

OpenClaw is powerful precisely because it's always on, always working. But "always on" means "always spending." The default single-model configuration is the biggest hidden cost in most deployments — not because the pricing is unreasonable, but because it applies premium pricing to tasks that don't need premium intelligence.

The fix isn't complicated. Set different models for heartbeats, sub-agents, and your primary agent. Route routine tasks to cheap models. Save your frontier model for the work that actually requires it.

Think of it this way: you wouldn't hire a senior engineer to check whether your server is still running. Don't pay Opus rates for your agent's heartbeat.

💬 Prompt for your agent — get started
Audit my current OpenClaw setup for cost optimization. Show me:
1. What model I'm currently using for everything
2. How many heartbeats and sub-agent calls I'm making
3. A recommended tiered model setup based on my usage
4. Estimated monthly savings

Pricing referenced in this article reflects rates as of February 2026. Check provider pricing pages for current rates: Anthropic, OpenAI, Google.