solution config high macos linux windows

OpenClaw only chats and won't use tools after update

Fix OpenClaw when it suddenly stops reading files, patching code, or running commands after a recent update. The most common cause is `tools.profile: messaging` or a narrower tool policy.

By CoClaw Team • • Updated June 8, 2026

Symptoms

  • OpenClaw still responds in chat, but it will not:
    • read local files
    • write or patch files
    • run shell commands
  • You may see replies like:
    • I don't have the read tool available
    • agent has no exec/read/write tools, only message and sessions
    • Create this file manually
  • This often appears right after updating or reinstalling OpenClaw in early March 2026.

Cause

There are two common root causes that feel similar in practice:

  1. Tool policy change: your tool allowlist no longer includes filesystem/runtime tools.
  2. Tool-calling regression / non-tool-capable model: the model can’t (or won’t) call tools reliably, so the agent “only chats” even though tools are enabled.

Some early-March install or onboarding paths left affected machines with:

{
  tools: {
    profile: 'messaging',
  },
}

The messaging profile is narrower than a coding-oriented tool profile, but it does not include the classic filesystem/runtime tools people expect for coding workflows.

That means the agent can still chat and manage sessions, but it may lose read, write, apply_patch, and exec for that specific config/profile.

This exact symptom cluster appears in recent GitHub reports such as:

  • #34810 — agent reduced to “message and sessions” and no longer able to use exec/read/write
  • #36968 — user cannot read a file in the workspace because the read tool is unavailable

June 2026 note: separate tool policy from disabled skill/plugin loading

The OpenClaw v2026.6.1 release highlights clearer stale disabled skills/plugin loading recovery. Do not assume every “only chats” symptom is tools.profile: if logs point at disabled skills/plugins or stale plugin loading, route to plugin/skill recovery and update flow instead of widening tool policy first.

Use /guides/clawhub-usage-guide and /plugins for plugin and skill recovery context, /guides/openclaw-configuration for config precedence, and /guides/updating-and-migration for the update path. The root diagnosis on this page remains tool policy unless your evidence points elsewhere.

Fix

0) Quick check: is this actually a tool-calling regression?

If you see the model printing tool calls as literal text (for example exec({...})) instead of actually running them, you are not debugging tools.profile.

Do this first:

  • Switch to a known tool-capable model (and restart), or
  • Pin/rollback to the last version that worked in your environment.

Related reading:

1) Check your current tools profile

Run:

openclaw config get tools

If you see something like:

{
  "profile": "messaging"
}

that is likely the reason for the chat-only behavior on that install.

2) Restore coding tools for local development

If this is your own machine and you want the classic coding-agent behavior, set:

{
  tools: {
    profile: 'coding',
  },
}

Edit ~/.openclaw/openclaw.json, save, then restart OpenClaw.

3) Or keep messaging and add only what you need

If you want a narrower policy, use:

{
  tools: {
    profile: 'messaging',
    allow: ['group:fs', 'group:runtime'],
  },
}

This restores most file and command workflows without fully broadening tool access.

4) Restart and test

openclaw doctor
openclaw gateway restart
openclaw health

Then test a simple task:

  • read a known file in your workspace
  • run pwd
  • apply a small patch to a harmless file

Verify

The fix is working if OpenClaw can once again:

  • read a file without asking you to paste it manually
  • run a simple command instead of describing it
  • patch a file directly instead of printing code for you to copy

If changing the profile did not fix it

Check these next:

  • tools.deny may still block exec or read
  • an individual agent may override the global profile with agents.list[].tools.profile
  • your gateway may be running from a different state dir or config path than the one you edited

Use:

openclaw config get tools.deny
openclaw gateway status
openclaw status --deep

If tools look enabled but tool runs still don’t happen, check the model/runtime layer:

  • Confirm the resolved model/provider is reachable:
openclaw models status --probe
  • Try switching to a model you already have working (a model ref that passes probe):
openclaw config set agents.defaults.model.primary <provider/model>
openclaw gateway restart
  • If this started immediately after an update, use the updater to pin a known-good version (replace <version> with the last working one):
openclaw update --tag <version>
openclaw gateway restart

Verification & references

  • Reviewed by:CoClaw Code Team
  • Last reviewed:March 14, 2026
  • Verified on: macOS ¡ Linux ¡ Windows
Want to explore more? Browse all solutions or ask in the Community Forum .
Report a problem

Related Resources