xSpeed Cache is officially live! Get 50% OFF during Launch Week — Lifetime starts at just $79Lifetime from $79 — 50% OFF, Launch Week! See Plans →

See Plans →
Features
xSpeed Hub Pricing Docs Blog Scan
Appearance
Get Plugin
NC

Tune WordPress cache settings with NanoClaw

Tuning cache settings with NanoClaw means messaging your own self-hosted agent from a chat app to read or change xSpeed settings on your WordPress sites through xSpeed Hub, including one change across every site.

list_sitesget_cache_statuslist_modulesget_settingsupdate_settingstoggle_cacherun_benchmark

Last updated: October 2026

Example session · NanoClaw

You: @Andy maintenance is over. Use xSpeed Hub to turn page caching back on for every site.

list_sites read-only
→ 4 sites: shop, blog, docs, landing

NanoClaw: This will turn page caching on for all 4 sites; any that already have it on stay on. Go ahead?

You: Yes, all four.

toggle_cache(site: all, enabled: true) changes site
→ 3 turned on, 1 blocked: landing has another caching plugin that owns the cache drop-in

NanoClaw: shop, blog and docs are cached again. landing refused because another caching plugin owns its cache drop-in, so xSpeed stays off there until you deactivate that plugin.

01

How NanoClaw handles this

You switched page caching off on every site while a theme update rolled out, and the work is done. You are away from your desk, so you open Telegram, or whichever channel your NanoClaw agent listens on, and message it with its trigger word: maintenance is over, turn caching back on everywhere. The agent calls list_sites through xSpeed Hub to count the sites behind the connection, so it can tell you exactly how many the change will touch before it makes any call that writes.

What comes back is one question in the chat. The Hub tells the agent to confirm once before a write that touches every site, in words such as this will turn caching on for all 4 sites, and after your yes the agent sends a single toggle_cache call with site: "all". The Hub runs the sites one after another with a short pause and returns a row per site. If another caching plugin owns the cache drop-in on one of them, that site declines and returns blocked: true with the reason, and the agent should report a partial result rather than a blanket done. Page caching is only switched with toggle_cache; update_settings refuses that key and handles the finer settings, such as the cache expiry.

What differs in NanoClaw is that you own the whole agent, including what it asks. Whether it prompts before an MCP tool runs depends on how your fork is set up; its documentation gates adding a server behind approval but describes no per-tool prompt for calls. The Hub has no confirmation step of its own either, so the question in the chat is the agent following the Hub's instructions. The firm stop is the connection token the group sends: with Read-only everywhere on, the Hub refuses every write tool.

02

Set up NanoClaw once

Already connected? Skip to the prompts. Alternatives and troubleshooting are on the NanoClaw guide.

1Put your sites in xSpeed Hub

Sign in at app.xspeedcache.com with Google or email; the Hub is free and has no site cap. Then connect each WordPress site from its own dashboard: click Connect Hub in the xSpeed Cache top bar, then Connect via xSpeed Hub. Each site needs the free xSpeed Cache plugin.

2Add xSpeed Hub to your agent group

Copy the connection token from Connect AI in the Hub (only the workspace owner sees it). Then run this on the machine that hosts NanoClaw, with your agent group's ID from ncl groups list. The header goes in as a JSON object, because NanoClaw refuses credentials inside the URL. NanoClaw may ask an admin to approve the change.

Terminal
ncl groups config add-mcp-server --id <group-id> --name xspeedhub \
  --url https://app.xspeedcache.com/xspeed/mcp \
  --headers '{"Authorization":"Bearer <your connection token>"}'

3Restart the group and ask

The new server takes effect after a restart. Then message your agent with its trigger word, @Andy by default, and ask something that names xSpeed Hub.

Terminal
ncl groups restart --id <group-id>
1 / 3

Full NanoClaw setup, sign-in options and FAQ

Before you send a prompt that changes something

Reads change nothing on your sites, though contact_support emails xSpeed support. Writes run once your connection allows them, so your client's approval prompt and a read-only connection (the token's Read-only everywhere switch, or a Viewer sign-in) are the gates that matter. Whether NanoClaw asks you before an MCP tool runs depends on how your fork and its admins are set up; its documentation gates adding a server behind approval but describes no per-tool prompt for calls. xSpeed Hub has no confirmation step of its own, so a write runs as soon as the agent calls it and your connection allows writes. The Hub tells the agent to confirm the target site and to ask once before a write that touches every site, which in NanoClaw shows up as a question in the chat. The firm stop is the token: with Read-only everywhere on, the Hub refuses every write tool. Keep it on for scheduled tasks.

03

What do I ask?

Three prompts written for NanoClaw. More for this job are below.

Prompt for NanoClaw
@Andy use xSpeed Hub to list every site where page caching is off. Change nothing.
Prompt for NanoClaw
@Andy with xSpeed Hub, turn page caching back on for every site, and ask me once first.
Prompt for NanoClaw
@Andy use xSpeed Hub to read the cache expiry on shop and blog and tell me if they differ.
04

What happens, step by step

Every xSpeed feature is a module with its own settings. Through xSpeed Hub an agent can list the modules a site has, read one module's settings, change them with a checked update, and turn page caching on or off. The site validates every write against the module's own schema, so a wrong key or value is refused with a reason instead of being quietly ignored.

01

List the modules

list_modules returns every Free and Pro module available on one site, with its settings schema and status. It tells the agent which module slugs exist, such as minify or gzip, and what each setting accepts.

02

Read the current settings

get_settings takes a module slug and returns its settings. Credential fields come back masked, so an agent cannot read a stored API token or password back in plain text.

03

Change them

update_settings takes the module and a values object of setting keys. The site checks the whole object first. If any key is unknown, any value is outside the schema, or a field is pinned by a constant in wp-config.php, it refuses the write, writes nothing and says which keys and why, sometimes with a "did you mean" hint.

04

Turn page caching on or off

Page caching has its own tool, toggle_cache, because it installs or removes the cache drop-in and the WP_CACHE constant. Asking update_settings to set cache_enabled does not work and is refused. If another caching plugin owns the drop-in, the site declines to enable xSpeed and returns blocked: true with the reason.

05

Check the effect

The result of a settings write is the stored settings. A module can add a warning when a setting is saved but has no effect on this server, for example Brotli on a server without the module for it, and the agent should pass that on. run_benchmark then times cached against uncached to see whether the change helped.

06

Apply to many sites only after reading one

update_settings and toggle_cache accept site: "all" or a list of handles. Each site validates against its own schema and answers in its own row, so a module missing on one site fails that row and the others still apply. Read one site first, then apply.

05

Reference

Discoverlist_modules (read): Free and Pro modules, settings schema, status, per site
Read settingsget_settings (read): argument module; credential fields masked
Change settingsupdate_settings (write): arguments module and values; validated by the site
Bad inputThe whole write is refused and nothing is written; the error names the keys and reasons
Page cache on or offtoggle_cache (write): argument enabled; cache_enabled in update_settings is refused
Blocked by another plugintoggle_cache returns blocked: true with blocked_reason when another plugin owns the cache drop-in
Every site at onceupdate_settings and toggle_cache accept site: "all" or a list of handles, one result per site
Pro modulesA Pro module on a site without an active licence cannot be read or written; the site refuses
Credential fieldsRefused by default over MCP; set them in the xSpeed dashboard, not through the agent
Read-only connectionThe connection token with Read-only everywhere on, or a Viewer member's sign-in: update_settings and toggle_cache are refused; list_modules and get_settings still work. An OAuth sign-in gets the scopes the client asks for, read and write by default, clamped to the member's role
ConfirmationNone on the Hub; the Hub tells the agent to briefly confirm intent for these two, and your client's prompt is the gate
06

Rules worth keeping

  • Read before you write. Ask for list_modules and get_settings first, so the agent changes real keys with valid values instead of guessing.
  • update_settings and toggle_cache change how a live site behaves. They run as soon as your connection allows writes. The Hub tells the agent to briefly confirm intent first, which is guidance to the agent, so your client's approval prompt and a read-only connection (the connection token with Read-only everywhere on, or a Viewer sign-in) are the gates. The switch does not limit an OAuth sign-in.
  • For site: "all", the Hub tells the agent to confirm once with "this will touch all N sites", then make one call. The result is per site, and some sites failing is a partial result to report, not a blanket success or failure.
  • Do not ask an agent to set credentials such as a Cloudflare token or Redis password. The site refuses those writes by default, and they belong in the xSpeed dashboard.
  • If a settings result says a value is saved but inactive on this server, relay that. Do not tell the user the feature is enabled.

Good to know with NanoClaw

The connection token sits in the agent group's container configuration on your host, so anyone who can read that machine or its backups can use it, unless you hold it in NanoClaw's credential gateway. One token serves every site, and a fan-out write through it reaches all of them. The Hub issues one connection token per account, so its Read-only everywhere switch covers scheduled tasks created with ncl tasks create and the groups you message alike: leave it on, and turn it off only while you make a change yourself. The server is added per group, so each group that should change settings needs it and a restart.

07

More prompts for this job

They work in any client connected to xSpeed Hub.

Prompt
Use xSpeed Hub to list the modules on shop and tell me which ones are off.
Prompt
Ask xSpeed Hub for the current minify settings on blog.
Prompt
With xSpeed Hub, turn on HTML minification on blog, then benchmark the cache and tell me if it helped.
Prompt
Use xSpeed Hub to turn page caching off on staging while I debug, and tell me when it is off.
Prompt
Using xSpeed Hub, read the gzip settings on shop first, then enable the same options on every site.
Prompt
Use xSpeed Hub to set the page cache lifespan on docs to 30 days, and if the site refuses it, tell me why.
08

Frequently asked questions

Yes, for update_settings and toggle_cache, which accept every site in one call. The Hub runs them in turn and returns a result per site, so the agent can tell you in the chat which sites changed and which refused, for example a site where another caching plugin owns the drop-in.

Turn on Read-only everywhere for the connection token on the Hub's Connect AI page. The token is what NanoClaw sends, so the Hub then refuses every write tool, whatever your fork does about prompts.

It calls list_modules for the site, which returns every available module with its settings schema and status, then get_settings for the one module it wants to change. The schema says which keys exist and what values each accepts.

The site refuses the whole update and writes nothing. The error names the keys it rejected and why, such as an unknown key, a value outside the allowed range, or a field fixed by a constant in wp-config.php, and it can suggest the nearest valid key.

Use toggle_cache with enabled set to true or false. It installs or removes the cache drop-in and the WP_CACHE constant. Setting cache_enabled through update_settings does not work. If another caching plugin already owns the drop-in, the site will not enable xSpeed and says why.

Yes. update_settings and toggle_cache accept site: "all", and the Hub runs the sites one after another with a one-second pause and returns a result per site. Each site checks the values against its own schema, so a site that lacks the module fails its own row while the others apply.

Not by default. Writing credential fields over MCP is off unless the site owner allows it, and the site refuses the write and names the fields. Set credentials in the xSpeed dashboard. Credential values also come back masked when an agent reads settings.

09

Keep going

Tune cache settings with other agents

More with NanoClaw

Documentation

From the blog

Tune cache settings, from NanoClaw.

xSpeed Hub is free and has no site cap. Connect your sites once and ask from the agent you already use.