openclaw skill
No description in the SKILL.md.
Is the openclaw skill safe?
A critical finding: do not install it without reading the flagged line. We read 34 files in the folder on 2026-11-12.
- high
SKILL.md:10Downloads a script and runs it in one step, so what runs is whatever that server sends that day. Common for installers, and still worth a look at the address.
curl -fsSL https://install.cmem.ai/openclaw.sh | bash - high
install.sh:419Downloads a script and runs it in one step, so what runs is whatever that server sends that day. Common for installers, and still worth a look at the address.
if ! curl -fsSL https://bun.sh/install | bash; then - low
SKILL.md:1The name should be 1 to 64 lowercase letters, digits or hyphens.
(missing) - low
SKILL.md:1No description, so an agent cannot tell when to use the skill.
(missing)
Install the openclaw skill
A skill is a folder. Copy it into your agent's skills folder and the agent loads it when the task matches its description. Read the findings above first.
git clone --depth 1 https://github.com/thedotmack/claude-mem.git /tmp/claude-mem mkdir -p ~/.claude/skills cp -r /tmp/claude-mem/openclaw ~/.claude/skills/openclaw
In the Claude apps, zip the folder and upload it from the Skills settings. The folder on GitHub
The instructions your agent would load
SKILL.md as published, without the frontmatter. Read it on GitHub
Claude-Mem OpenClaw Plugin — Setup Guide
This guide walks through setting up the claude-mem plugin on an OpenClaw gateway. By the end, your agents will have persistent memory across sessions via system prompt context injection, and optionally a real-time observation feed streaming to a messaging channel.
Quick Install (Recommended)
Run this one-liner to install everything automatically:
curl -fsSL https://install.cmem.ai/openclaw.sh | bashThe installer handles dependency checks (Bun, uv), plugin installation, memory slot configuration, AI provider setup, worker startup, and optional observation feed configuration — all interactively.
Install with options
Pre-select your AI provider and API key to skip interactive prompts:
curl -fsSL https://install.cmem.ai/openclaw.sh | bash -s -- --provider=gemini --api-key=YOUR_KEYFor fully unattended installation (defaults to Claude Max Plan, skips observation feed):
curl -fsSL https://install.cmem.ai/openclaw.sh | bash -s -- --non-interactiveTo upgrade an existing installation (preserves settings, updates plugin):
curl -fsSL https://install.cmem.ai/openclaw.sh | bash -s -- --upgradeAfter installation, skip to Step 4: Restart the Gateway and Verify to confirm everything is working.
Manual Setup
The steps below are for manual installation if you prefer not to use the automated installer, or need to troubleshoot individual steps.
Step 1: Clone the Claude-Mem Repo
First, clone the claude-mem repository to a location accessible by your OpenClaw gateway. This gives you the worker service source and the plugin code.
cd /opt # or wherever you want to keep it
git clone https://github.com/thedotmack/claude-mem.git
cd claude-mem
npm install
npm run buildYou'll need bun installed for the worker service. If you don't have it:
curl -fsSL https://bun.sh/install | bashStep 2: Get the Worker Running
The claude-mem worker is an HTTP service on port 37777. It stores observations, generates summaries, and serves the context timeline. The plugin talks to it over HTTP — it doesn't matter where the worker is running, just that it's reachable on localhost:37777.
Check if it's already running
If this machine also runs Claude Code with claude-mem installed, the worker may already be running:
curl http://localhost:37777/api/healthGot {"status":"ok"}? The worker is already running. Skip to Step 3.
Got connection refused or no response? The worker isn't running. Continue below.
If Claude Code has claude-mem installed
If claude-mem is installed as a Claude Code plugin (at ~/.claude/plugins/marketplaces/thedotmack/), start the worker from that installation:
cd ~/.claude/plugins/marketplaces/thedotmack
npm run worker:restartVerify:
curl http://localhost:37777/api/healthGot {"status":"ok"}? You're set. Skip to Step 3.
Still not working? Check npm run worker:status for error details, or check that bun is installed and on your PATH.
If there's no Claude Code installation
Run the worker from the cloned repo:
cd /opt/claude-mem # wherever you cloned it
npm run worker:startVerify:
curl http://localhost:37777/api/healthGot {"status":"ok"}? You're set. Move to Step 3.
Still not working? Debug steps:
- Check that bun is installed: bun --version
- Check the worker status: npm run worker:status
- Check if something else is using port 37777: lsof -i :37777
- Check logs: npm run worker:logs (if available)
- Try running it directly to see errors: bun plugin/scripts/worker-service.cjs start
Step 3: Add the Plugin to Your Gateway
Add the claude-mem plugin to your OpenClaw gateway configuration:
{
"plugins": {
"entries": {
"claude-mem": {
"enabled": true,
"hooks": { "allowConversationAccess": true },
"config": {
"project": "my-project",
"syncMemoryFile": true,
"workerPort": 37777
}
}
}
}
}On OpenClaw versions that gate conversation hooks, a plugin installed from outside the bundled set must be allowed to use them. Without hooks.allowConversationAccess, OpenClaw loads claude-mem but blocks beforepromptbuild and agent_end, so no prompts, context or summaries are recorded. The installer sets this for you. Older OpenClaw without the gate, such as 2026.2.9, rejects the hooks key as an unrecognized key, so leave it out there.
Check what OpenClaw registered with openclaw plugins inspect claude-mem --runtime --json: typedHooks should list beforepromptbuild and agent_end, and diagnostics should be empty. (Older OpenClaw has no inspect; use openclaw plugins info claude-mem --json.)
Config fields explained
- project (string, default: "openclaw") — The project name that scopes all observations in the memory database. Use a unique name per gateway/use-case so observations don't mix. For example, if this gateway runs a coding bot, use "coding-bot".
- syncMemoryFile (boolean, default: true) — When enabled, the plugin injects the observation timeline into each agent's system prompt via the beforepromptbuild hook. This gives agents cross-session context without writing to MEMORY.md. Set to false to disable context injection entirely (observations are still recorded).
- syncMemoryFileExclude (string[], default: []) — Agent IDs excluded from automatic context injection. Useful for agents that curate their own memory. Observations are still recorded for excluded agents.
- workerPort (number, default: 37777) — The port where the claude-mem worker service is listening. Only change this if you configured the worker to use a different port.
Step 4: Restart the Gateway and Verify
Restart your OpenClaw gateway so it picks up the new plugin configuration. After restart, check the gateway logs for:
[claude-mem] OpenClaw plugin loaded — v1.0.0 (worker: 127.0.0.1:37777)If you see this, the plugin is loaded. You can also verify by running /claudememstatus in any OpenClaw chat:
Claude-Mem Worker Status
Status: ok
Port: 37777
Active sessions: 0
Observation feed: disconnectedThe observation feed shows disconnected because we haven't configured it yet. That's next.
Step 5: Verify Observations Are Being Recorded
More skills from thedotmack/claude-mem
- AAgent Cost ReportBelievable agent cost report for any period, default the last 7 full days PT, not counting today. Measured tokens from Claude Code transcripts priced at OpenRouter list prices (ESTIMATED), measured provider spend when a sanctioned source exists, note-taker cost separate, Timing-style HTML/PDF plus report.json, line-items.csv, evidence.json.
- AAgent Cost ReportBelievable agent cost report for any period, default the last 7 full days PT, not counting today. Measured tokens from Claude Code transcripts priced at OpenRouter list prices (ESTIMATED), measured provider spend when a sanctioned source exists, note-taker cost separate, Timing-style HTML/PDF plus report.json, line-items.csv, evidence.json.
- AAgent Cost ReportBelievable agent cost report for any period, default the last 7 full days PT, not counting today. Measured tokens from Claude Code transcripts priced at OpenRouter list prices (ESTIMATED), measured provider spend when a sanctioned source exists, note-taker cost separate, Timing-style HTML/PDF plus report.json, line-items.csv, evidence.json.
- AAgent Cost ReportBelievable agent cost report for any period, default the last 7 full days PT, not counting today. Measured tokens from Claude Code transcripts priced at OpenRouter list prices (ESTIMATED), measured provider spend when a sanctioned source exists, note-taker cost separate, Timing-style HTML/PDF plus report.json, line-items.csv, evidence.json.
- AAgent Cost ReportBelievable agent cost report for any period, default the last 7 full days PT, not counting today. Measured tokens from Claude Code transcripts priced at OpenRouter list prices (ESTIMATED), measured provider spend when a sanctioned source exists, note-taker cost separate, Timing-style HTML/PDF plus report.json, line-items.csv, evidence.json.
- AbabysitWatch a pull request or review cycle until it is ready to merge. Use when asked to babysit, monitor, or keep checking PR comments, reviews, and CI until all actionable issues are resolved.
- Abackup-setupSet up, check, or restore local claude-mem database snapshots. Use when the user says "set up backups", "back up my memories", "backup status", or "restore my database".
- AbuildFully automate a coding task with make-plan, do, and babysit.
- Abuild-and-releaseFully automate building and releasing a coding task.
- Accs-alignRun the CCS Align seat's hourly breathing cycle — prove the local claude-mem worker is healthy, pull needle observations through search → timeline → get_observations, land them in a seat-owned middle cache via atomic grab → append → filter exclude-marks → replace, manage exclude marks, and walk house → project → seat rules to detect conflicts (SHADOW_HOUSE, DENY_ALLOW, DRIFT, CLOCK_HEADER) with an append-only rules-report.md. Use when asked to run CCS Align, breathe the alignment seat, refresh the middle cache, exclude or restore an observation, walk rules, check rules conflicts, or check the Worker Watch board.
- AchildhoodBabysit a shipped release after merge, publication, or deployment. Verify published packages, production behavior, installed plugins, and late CI or user reports until the observation window is clean; use babysit for PR readiness before release.
- Aclaude-mem-installUse this when setting up claude-mem on Cursor: local or remote worker, local host-login observer or remote cmem.ai inference.