This skill should be used when the user asks to "set up claude-mem", "pair claude-mem", "connect cmem", "add my cmem key", "set up cloud sync in Cowork", or provides cmem.ai Connect values (sync token, user id, SyncHub URL) for this plugin. Configures the claude-mem-cowork plugin credentials.
Scanned 8/31/2026
Install via CLI
openskills install thedotmack/claude-mem---
name: mem-setup
description: >
This skill should be used when the user asks to "set up claude-mem", "pair
claude-mem", "connect cmem", "add my cmem key", "set up cloud sync in
Cowork", or provides cmem.ai Connect values (sync token, user id, SyncHub
URL) for this plugin. Configures the claude-mem-cowork plugin credentials.
metadata:
version: "0.1.0"
---
# Claude-Mem Setup (Cowork pairing)
Configure this plugin with the user's own cmem.ai credentials so hooks can
capture and inject memory. Anyone can pair — credentials are per-user
configuration, never hardcoded in plugin logic.
## What to collect
From **cmem.ai → Connect**, the user has three values:
1. **sync token** (starts with `cm_`) — used as the bearer API key
2. **user id** (UUID)
3. **SyncHub URL** (a workers.dev or cmem.ai URL)
If the user pastes the whole Connect blurb, extract the three values from it.
If any are missing, ask for the sync token at minimum — the other two are
optional.
## Secret handling — non-negotiable
- Never echo the token back in conversation, put it in a shell argv, or log it.
- Move it only via file writes (Write/Edit tool) and file reads.
## Steps
1. Locate the installed plugin root (this skill's own plugin). Update its
`config.json`: set `apiKey` to the sync token, `userId`, and `syncHubUrl`.
Leave other settings unless the user asks (`inject` toggles). Project naming
is automatic (`cmem_work_*`) and is not configurable.
2. Cowork containers are ephemeral: edits to the installed copy last only for
this session. To make pairing permanent, repackage — zip the plugin
directory as `<plugin-name>.plugin` and send it to the user to re-install
(the cowork-plugin skill's packaging flow). Tell the user this is why.
3. If this machine also has a local claude-mem install (a `~/.claude-mem/`
directory exists), optionally write the same values to
`~/.claude-mem/settings.json` with mode 0600 (`CLAUDE_MEM_CLOUD_SYNC_TOKEN`,
`CLAUDE_MEM_CLOUD_SYNC_USER_ID`, `CLAUDE_MEM_CLOUD_SYNC_HUB_URL` keys — the
same keys the local claude-mem cloud-sync pairing writes) — the hook script
and the local worker both read it.
4. Verify without exposing the secret:
```bash
node "${CLAUDE_PLUGIN_ROOT}/scripts/cmem-hook.mjs" status
```
Report the masked output. A `MISSING` key means the write didn't land;
a 404 on `/api/hooks/context` is expected until the Pro endpoints deploy
(search/injection still work via `/api/mcp`).
## Alternate source
Env vars override everything and need no file edits: `CMEM_API_KEY`,
`CMEM_USER_ID`, `CMEM_SYNC_HUB_URL`, `CMEM_API_BASE`.
No comments yet. Be the first to comment!