Configuration
Supermemory on Intern is configured by exactly two values: the API key (from your supermemory.ai account) and the container tag (a string you pick to namespace this device's memories). Both go into /root/config/config.json and are mirrored into the OpenClaw plugin config on restart.
Two files, two roles
/root/config/config.json — source of truth
You own this file. The relevant fields:
{
"supermemory_api_key": "sm-...",
"supermemory_container_tag": "intern-livingroom-01"
}
Pick supermemory_container_tag once per device and keep it stable — rotating it orphans the memories under the old tag.
/root/.openclaw/openclaw.json — what OpenClaw actually reads
OpenClaw loads its plugin config from its own JSON. intern-server mirrors the Supermemory block from config.json on every restart:
{
"plugins": {
"entries": {
"openclaw-supermemory": {
"enabled": true,
"config": {
"api_key": "sm-...",
"container_tag": "intern-livingroom-01"
}
}
}
}
}
After editing config.json, kick the sync:
sudo systemctl restart intern
sudo systemctl restart openclaw
intern-server rewrites the OpenClaw plugin block on every restart, so don't edit openclaw.json directly unless you also disable the sync.
Disabling Supermemory entirely
Set the plugin to disabled in openclaw.json and clear the keys in config.json so they don't get re-injected:
// openclaw.json
"openclaw-supermemory": { "enabled": false }
sudo systemctl restart openclaw
With the plugin disabled, OpenClaw will not query or write any memories, and the device will report "supermemory_installed": false on its heartbeat.
Inspecting what's stored
Pull the device's API key out of config and query Supermemory directly:
SM_KEY=$(jq -r .supermemory_api_key /root/config/config.json)
TAG=$(jq -r .supermemory_container_tag /root/config/config.json)
curl -H "Authorization: Bearer $SM_KEY" \
"https://api.supermemory.ai/v1/memories?container_tag=$TAG"
This is the same call OpenClaw makes — you'll see every memory the device has captured.