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

Set up the Redis object cache with OpenCode

Setting up a Redis object cache with OpenCode means asking it in your terminal to check a site's object cache, test the Redis connection and enable it through xSpeed Hub.

get_object_cache_statustest_object_cacheget_settingsupdate_settingstoggle_object_cacheflush_object_cache

Last updated: October 2026

Example session · OpenCode

You: With xSpeed Hub, set up Redis for shop and test first.

list_sites read-only
→ 4 sites; shop is shop.example.com

get_object_cache_status(site: shop) read-only
→ Drop-in not installed. Backend: Redis configured.

test_object_cache(site: shop) read-only
→ Connected. Probe value written and read back.

OpenCode: Redis answers from the shop server. Enable the object cache on shop?

You: Yes.

toggle_object_cache(site: shop, enabled: true) changes site
→ Drop-in installed. Redis active.

OpenCode: Done. Redis is the object cache for shop.

01

How OpenCode handles this

You are in an OpenCode session in a terminal, with a WordPress site in mind that is slow on database-heavy pages. Type: list my sites, then set up Redis for shop and test first. OpenCode calls list_sites to match the name to a handle, then get_object_cache_status through xSpeed Hub, which reports whether the object-cache.php drop-in is installed, which backend is configured and its stats. It does not prove Redis answers.

So test_object_cache comes next. The site's plugin opens a live connection to Redis and reads and writes a probe value, and a failure returns the server's own error. Only after a pass should OpenCode call toggle_object_cache with enabled set to true, which installs the drop-in. If the test fails, keep the drop-in off, fix the host side and test again. The site would also refuse with Could not enable, since it tests the connection itself when you enable.

OpenCode is a terminal agent with a shell, so in a session on the server it can also look at the Redis service with ordinary commands, or run redis-cli ping. Treat that as a hint and let test_object_cache decide, since it uses the settings the plugin itself uses. What sets OpenCode apart is its permission model: most permissions default to allow, so with no rule of yours toggle_object_cache runs without a prompt and the only pause is the agent asking you in the chat. Hub tools are registered as xspeedhub_ followed by the tool name, and the last matching rule wins.

02

Set up OpenCode once

Already connected? Skip to the prompts. Alternatives and troubleshooting are on the OpenCode 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 config

Put this block in your global config, or in opencode.json at a project root to scope it to that project. OpenCode reads both JSON and JSONC. No other field is needed: when the Hub answers 401, OpenCode starts the OAuth flow and registers itself through dynamic client registration.

~/.config/opencode/opencode.json
{
  "$schema": "https://opencode.ai/config.json",
  "mcp": {
    "xspeedhub": {
      "type": "remote",
      "url": "https://app.xspeedcache.com/xspeed/mcp"
    }
  }
}

3Sign in with opencode mcp auth

Run this once. It opens a browser page on xSpeed Hub where you sign in and approve access. There is no token to paste; OpenCode stores the credentials it receives. Run opencode mcp list to see the server and its auth status, and opencode mcp debug xspeedhub if the connection fails.

Terminal
opencode mcp auth xspeedhub
1 / 3

Full OpenCode 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. OpenCode checks MCP tools against its permission rules under the prefixed name, such as xspeedhub_purge_cache, and most permissions default to allow. With no rule of yours in place, a Hub write tool runs without a prompt. Add rules to change that: "xspeedhub_*": "ask" first, then "xspeedhub_get_*": "allow" and "xspeedhub_list_*": "allow", because the last matching rule wins. A deny rule holds even under opencode --auto, which approves everything that is not denied. The Hub itself has no confirmation step, so these rules and read-only access are the gates. For read-only access, send the connection token with Read-only everywhere on, or sign in as a Viewer member.

03

What do I ask?

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

Prompt for OpenCode
Use xSpeed Hub to list my sites and check the object cache status on shop.
Prompt for OpenCode
This terminal is on the server. Run redis-cli ping, ask xSpeed Hub for test_object_cache on blog, and tell me if they disagree.
Prompt for OpenCode
Using xSpeed Hub, turn the object cache on for shop once the test passes, and read the status back.
04

What happens, step by step

A persistent object cache keeps database query results in Redis or Memcached instead of rebuilding them on every request. Through xSpeed Hub an agent can read the state of the cache, probe the cache server, switch the cache on or off, and flush it. The Hub tells the agent to run the probe first, because the status call alone does not prove the server is reachable.

01

Read the current state

get_object_cache_status reports whether the object-cache.php drop-in is installed, which backend is configured, Redis or Memcached, and its stats. It does not prove the server answers, so a clean status is not a green light.

02

Test the connection first

test_object_cache opens a live connection to the configured server and does a read and write probe with the settings saved on the site. A failure comes back with the server's own reason, such as a wrong password, a refused connection or a permission error. The Hub tells the agent to run this before toggle_object_cache.

03

Fix the connection if the test fails

get_settings reads the object-cache module, with secrets masked. update_settings changes it, for example the host or port. On a managed host that defines these values in wp-config.php, the fields are read-only and a write that tries to change one is refused with the name of the constant. For a host that wants the constants pasted, get_object_cache_status with detail set to snippet returns the wp-config.php block.

04

Turn it on

toggle_object_cache with enabled true makes the site test the connection again, write the connection constants into wp-config.php and install the object-cache.php drop-in. If the test fails, it stops with "Could not enable" and writes nothing. If wp-config.php is not writable, the drop-in goes in and the reply tells you to add the snippet by hand. The Hub tells the agent to briefly confirm intent first.

05

Check it took

The drop-in loads on the next request, so the agent reads get_object_cache_status again after a page load and runs test_object_cache once more. The status also warns when the cache connects but refuses writes, so a connected cache that stores nothing does not pass as healthy.

06

Flush when stale data survives

flush_object_cache empties the persistent object cache. Use it when old options, transients or query results outlive a page cache purge. It does not touch the page cache; purge_cache does that.

05

Reference

Read toolsget_object_cache_status and test_object_cache, both work on a read-only connection
Write toolstoggle_object_cache (enabled true or false) and flush_object_cache
BackendsRedis or Memcached
Status detailstatus (default) or snippet, the wp-config.php constants block
What status provesDrop-in installed, backend configured, stats. Not that the server is reachable
What the test provesA live connect and a read and write probe on the saved settings, with the server's own error on failure
Enable doesTests the connection, writes connection constants to wp-config.php, installs the object-cache.php drop-in
Disable doesRemoves xSpeed's drop-in and its wp-config.php block; a drop-in owned by another plugin is left alone
Connection timeout1 second by default, set in the object-cache module
Settings moduleobject-cache, for get_settings and update_settings
Every site at onceNone of these tools accept site: "all"; one site per call
ConfirmationNone on the Hub; your client's prompt is the gate
06

Rules worth keeping

  • Test before you toggle. The Hub tells the agent to run test_object_cache first, because a cache server that does not answer slows every request while the page cache still looks healthy.
  • Keep the Redis password out of the chat. get_settings masks it, but the wp-config.php snippet is built from the saved settings and can include a saved password. Set secrets in wp-config.php or in the xSpeed panel.
  • toggle_object_cache and flush_object_cache are write tools. The Hub tells the agent to briefly confirm intent for the object-cache toggles, but that is guidance, not a lock. Your client's approval prompt and a read-only grant are the gates that matter. A read-only grant means the connection token with Read-only everywhere on, or a Viewer member's sign-in; an OAuth sign-in gets the scopes the client asks for, which are read and write by default.
  • If another plugin owns the object-cache.php drop-in, turn its object cache off in that plugin. xSpeed leaves a drop-in it did not install in place when you disable.
  • A flush clears cached data, so the next requests rebuild it from the database and the site is briefly slower. Flush one site, then check it, before you repeat it.

Good to know with OpenCode

OpenCode allows tools by default, so a Hub write runs without a prompt until you add a rule. Set xspeedhub_* to ask first, then allow xspeedhub_get_object_cache_status and xspeedhub_test_object_cache by name, because the last matching rule wins. The pattern xspeedhub_get_* does not cover test_object_cache. A deny rule holds even under opencode --auto. The Hub runs the write as soon as your connection permits it.

07

More prompts for this job

They work in any client connected to xSpeed Hub.

Prompt
Using xSpeed Hub, is a persistent object cache running on shop, and which backend does it use?
Prompt
Use xSpeed Hub to test whether Redis is reachable from shop. Do not change anything.
Prompt
Shop is slow in wp-admin. Use xSpeed Hub to check the object cache before anything else.
Prompt
With xSpeed Hub, test Redis on shop, and if it passes, turn the object cache on.
Prompt
Ask xSpeed Hub for the wp-config.php object cache snippet for docs.
Prompt
Use xSpeed Hub to flush the object cache on blog. Old options survive a page cache purge.
Prompt
With xSpeed Hub, turn the object cache off on shop and confirm the drop-in is gone.
08

Frequently asked questions

Set every tool whose name starts with xspeedhub_ to ask first, then allow the two reads by name, xspeedhub_get_object_cache_status and xspeedhub_test_object_cache, because the last matching rule wins. A deny rule suits any tool you never want an agent to run, such as the flush, and it holds even under --auto. Without rules OpenCode allows the tools by default, and the Hub has no confirmation step, so these rules are the prompt.

If the session runs on the server, it can use ordinary shell commands such as redis-cli ping. Treat the answer as a hint and let test_object_cache decide, because that tool uses the exact connection settings the plugin on the site uses.

Because a cache server that does not answer costs time on every request while the page cache still looks fine. The Hub tells the agent to run test_object_cache first, and the site also tests the connection when you enable and refuses to continue if it fails. The probe is still worth running on its own, since it returns the server's exact reason, such as a wrong password or a refused connection.

The site keeps working. The drop-in is built never to take the site down: it falls back to WordPress's own cache for the length of the request and marks itself as degraded. A request can still wait up to the connection timeout, which is 1 second by default, so the site gets slower. xSpeed reports that state as degraded, and test_object_cache names the fault.

No. These tools connect xSpeed to a Redis or Memcached server that already exists and switch the object cache on or off. Getting a server is a hosting task. xSpeed uses the phpredis extension when it is there and its own built-in client when it is not.

flush_object_cache empties the persistent object cache and nothing else. purge_cache with type object does the same job through the purge tool, and purge_cache with type all also clears the page cache and, when connected, the Cloudflare edge. Use the flush when stale options or transients survive a page cache purge.

Treat it like a secret. The snippet is built from the settings saved on the site, so it can contain the Redis password if one is saved. Paste it into wp-config.php yourself and avoid sharing it in a chat or a ticket.

09

Keep going

Set up Redis object cache with other agents

More with OpenCode

Documentation

From the blog

Set up Redis object cache, from OpenCode.

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