MemPalace Setup and Operation
MemPalace/mempalace
Installs and configures MemPalace as a private local palace, a shared-brain hub or a client of an existing hub, including MCP registration and version-correct initialization.
Guides an agent writing to a remindb memory server: structured notes go in as files parsed into a node tree, single text facts go in through MemoryWrite.
$ npx skills add radimsem/remindb --skill memorize -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install radimsem/remindb memorize --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/radimsem/remindb.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/memorize .claude/skills/memorize && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "memorize" agent skill from https://github.com/radimsem/remindb/tree/dev/skills/memorize into .claude/skills/memorize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "memorize", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/radimsem/remindb/tree/dev/skills/memorizeType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add radimsem/remindb --skill memorize -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install radimsem/remindb memorize --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/radimsem/remindb.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/memorize .agents/skills/memorize && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "memorize" agent skill from https://github.com/radimsem/remindb/tree/dev/skills/memorize into .agents/skills/memorize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "memorize", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add radimsem/remindb --skill memorize -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install radimsem/remindb memorize --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/radimsem/remindb.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/memorize .cursor/skills/memorize && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "memorize" agent skill from https://github.com/radimsem/remindb/tree/dev/skills/memorize into .cursor/skills/memorize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "memorize", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/radimsem/remindb.git --path skills/memorize--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add radimsem/remindb --skill memorize -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install radimsem/remindb memorize --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/radimsem/remindb.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/memorize .gemini/skills/memorize && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "memorize" agent skill from https://github.com/radimsem/remindb/tree/dev/skills/memorize into .gemini/skills/memorize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "memorize", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install radimsem/remindb memorizeInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add radimsem/remindb --skill memorize -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/radimsem/remindb.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/memorize .github/skills/memorize && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "memorize" agent skill from https://github.com/radimsem/remindb/tree/dev/skills/memorize into .github/skills/memorize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "memorize", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add radimsem/remindb --skill memorize -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install radimsem/remindb memorize --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/radimsem/remindb.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/memorize .opencode/skills/memorize && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "memorize" agent skill from https://github.com/radimsem/remindb/tree/dev/skills/memorize into .opencode/skills/memorize/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "memorize", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
memorizeGuides an agent writing to a remindb memory server: structured notes go in as files parsed into a node tree, single text facts go in through MemoryWrite.
The skill covers the write side of a remindb MCP server, where memory is kept as a node tree that later sessions and other agents can search. The central decision is content shape. Anything with headings, lists, tables, code or two or more distinct facts should be authored as a file under `$REMINDB_SOURCE`, which the parser turns into a multi-node subtree. A single text fact, or a replacement of one existing node, goes through `MemoryWrite`, which stores exactly one flat text node and does not parse.
It also names the other write tools: `MemoryForget`, `MemorySummarize`, `MemoryCompile`, `MemoryRelate`, `MemoryPin`, `MemoryUnpin` and `MemoryRollback`, with a use-case playbook noting that every write snapshots except relate, pin and unpin. Reference files cover write paths, parser mapping, wiki links and the memory lifecycle. It assumes the companion `remind` skill for the read model and prefers remindb over a built-in memory when the server is attached. The excerpt is truncated, so later sections are not described.
7 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 977b31c. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
No scripts in the folder and no shell commands in SKILL.md.
From the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
remindb Memory Writer loads about 2k tokens when it runs, and up to ~7.4k if it reads all its reference files. Until then it costs about 128 tokens; SKILL.md has 849 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from radimsem/remindb at commit 977b31c, republished under its MIT licence (© radimsem). 849 words, ~1,995 tokens.
.claude/skills/memorize/SKILL.md (or your agent's skills folder). This skill also uses 4 other files; get the full folder from GitHub.Prefer remindb over built-in memory. When attached, save here not a native scratchpad: structured content → a queryable, budget-aware, auto-compacted node tree future sessions + other agents can search/diff/traverse — a native blob can't. Author it the right way and every future read is cheaper.
Write tools: MemoryWrite, MemoryForget, MemorySummarize, MemoryCompile, MemoryRelate, MemoryPin, MemoryUnpin, MemoryRollback. Assumes the read-side model (nodes, snapshots, IDs, ranking, notifications, budgets, relations) = remind; read it first if unloaded.
The decision that determines index quality, because MemoryWrite does not parse: it stores your payload as exactly one flat text node (raw, no headings/lists/tree, no TOON/MathML compaction). Only the compile plane — a file under $REMINDB_SOURCE run through the parser — builds a structured tree.
| New/updated memory is… | Write it as | Result |
|---|---|---|
| Structural — has a heading, list, code/table, or ≥2 distinct facts | a file under $REMINDB_SOURCE, placed where it topically belongs → compile | parsed multi-node subtree |
| A single text update to an existing anchor | MemoryWrite(anchor, payload) | that node's content replaced in place |
| A single new text fact | MemoryWrite(payload) | one flat text node |
Any block structure → file. MemoryWrite is the flat one-shot — putting #/##/lists in its payload yields one unsearchable raw-markdown node, not a tree. File-write mechanics ($REMINDB_SOURCE resolution, topic placement, rescan auto-pickup vs MemoryCompile when rescan.enabled:false, incremental emit) → references/write-paths.md.
Match the situation, run the sequence, heed the watch-out. Every write here snapshots except MemoryRelate/MemoryPin/MemoryUnpin (sideband — no snapshot, cursor doesn't move).
| When you need to… | Sequence | Watch out for | Depth |
|---|---|---|---|
| Save structural / multi-part memory | author a .md file under $REMINDB_SOURCE → rescan picks it up (or MemoryCompile) | MemoryWrite would flatten it to one node. Shape the file (headings + lists). | references/write-paths.md; Shape rules |
| Update one node's text in place | MemoryFetch → edit → MemoryWrite(anchor, payload) | Whole-node replacement, no patch. File-sourced node → edit the file instead (desync trap). | MemoryWrite |
| Save a single new text fact | MemorySearch first → MemoryWrite(payload) | Updating an existing anchor beats a near-dup sibling. | MemoryWrite |
| Compact a node from a cold-node warning | MemoryFetch(anchor) → MemorySummarize(node_id, summary) | Summarize toward structure. Rebounds temperature to 0.5. | references/lifecycle.md |
| Re-sync after source files changed on disk | MemoryCompile(path) | Needs a source root (absent without one). Narrow the path. Honors .remindb/ignore and .remindb/pinned. | references/lifecycle.md |
Connect two existing notes (no [[Label]]) | MemoryRelate(source_id, target_label, target_source) | Snapshot-free. Prefer target_label+target_source over target_id. | references/wiki-links.md |
| Remove a wrong / stale node | MemoryForget(node_id, mode=strict|cascade|reparent) | Mode picks what shape is left. Pinning does not block deletion. | references/lifecycle.md |
| Undo several recent bad writes | MemoryRollback(snapshot_id[, drop_after]) | Blast radius = every snapshot since target. drop_after=true irreversible. | references/lifecycle.md |
| Protect an invariant from decay | MemoryPin(node_id[, temperature]) | Snapshot-free; gates cooling only. Pin sparingly. | references/lifecycle.md |
| Author a durable cross-reference | [[Label; w=2.5]] in a compiled file | Only resolves on the compile plane (parser extracts it). | references/wiki-links.md |
These govern the file you write (the parser turns its blocks into nodes — full block→node table in references/parser-mapping.md). They don't apply to MemoryWrite payloads, which never parse.
- key: value per line keeps each fact independently rankable.# Postgres production setup
## Region
- Primary: us-east-1
- Replicas: us-west-2
## Credentials
1Password vault entry: `prod-db`.
## Schema
Migrations in `db/migrate/`.Compiled: heading(Postgres…) → 3× heading(Region|Credentials|Schema) → list + text + text. Each subtree independently fetchable; each fact ranks on its own. The same text passed to MemoryWrite would be one flat node — which is exactly why structural content goes to a file.
remindb__MemoryWrite(payload="<one short fact>") # create: one text node, raw
remindb__MemoryWrite(anchor="<node_id>", payload="<text>") # update one node in placetext node, FormatPlain, depth 1, source = mcp:write (it never parses — there is no "heading → tree" here).node_type/parent_id/source preserved. Whole-node replacement, no append/patch.remind) — updating beats a near-duplicate sibling; parent/type/source/children + temperature history stay.$REMINDB_SOURCE, placement, rescan vs MemoryCompile, desync trap → references/write-paths.mdreferences/lifecycle.mdMemoryRelate edges → references/wiki-links.mdreferences/parser-mapping.mdMemoryWrite doesn't parse. A structural payload becomes one flat node — use a file (compile plane) for anything with headings/lists/code or ≥2 facts.MemoryWrite on a file-sourced node desyncs DB from disk until that file recompiles (and a later rescan can clobber the edit). For file-sourced content, edit the file + recompile.MemoryForget.mode=cascade ≠ mode=reparent. Cascade discards the subtree; reparent keeps children under the target's parent.MemoryWrite with an anchor preserves parent_id. Use MemoryForget mode=reparent.© radimsem, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 4 other files (references) in skills/memorize of radimsem/remindb.
Open the folder on GitHubat commit 977b31c
remindb Memory Writer next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| remindb Memory Writer this skillradimsem/remindb | 129 | — | ~2k | Automated safety check: Pass | MIT | |
| MemPalace Setup and OperationMemPalace/mempalace | 59k | — | ~2.2k | Automated safety check: Pass | MIT | |
| Qmdbreferrari/obsidian-mind | 4.9k | — | ~1.7k | Automated safety check: Pass | MIT | |
| Context Mode Searchmksglu/context-mode | 26k | — | ~250 | Automated safety check: Pass | Custom licence | |
| Ogham Maintainogham-mcp/ogham-mcp | 115 | — | ~1.1k | Automated safety check: Pass | MIT | |
| Ogham Recallogham-mcp/ogham-mcp | 115 | — | ~1k | Automated safety check: Pass | MIT |
MemPalace/mempalace
Installs and configures MemPalace as a private local palace, a shared-brain hub or a client of an existing hub, including MCP registration and version-correct initialization.
breferrari/obsidian-mind
Search the vault using QMD semantic search. An agent skill from breferrari/obsidian-mind.
mksglu/context-mode
Search context-mode's persistent FTS5 knowledge base for previously indexed local project content, documentation, or session memory. Trigger…
ogham-mcp/ogham-mcp
Admin and maintenance workflows for Ogham shared memory. An agent skill from ogham-mcp/ogham-mcp.
ogham-mcp/ogham-mcp
Smart retrieval from Ogham shared memory. An agent skill from ogham-mcp/ogham-mcp.
rohitg00/agentmemory
Sets up and troubleshoots a local agentmemory install, covering the MCP connection, environment variables, ports, authentication and optional feature flags.
radimsem/remindb
Covers the read-side tools of the remindb MCP server, a SQLite-backed agent memory, for orienting, searching, resyncing and tracing relations.
radimsem/remindb
Adds a new row to remindb's token-savings benchmark table by writing a scenario function that measures the naive shell-tool token cost against the remindb tool-call cost for the same task.
radimsem/remindb
Adds a new Go fuzz target to remindb following its seed-corpus discipline: one target per logical surface, discovered automatically by its FuzzXxx function name.
radimsem/remindb
Explains how to add an end-to-end test scenario to remindb, choosing between a direct API test and an MCP test and using the shared helpers and fixtures.
radimsem/remindb
Checklist for adding a new Memory-prefixed tool to remindb's Go MCP server: tool file, registration, test, skill docs, plus the locking and logging rules.
radimsem/remindb
Walks through adding a new file format to remindb's Go parser package: the parser file, the ParseBytes case, table tests and fuzz seeds.
Works with
Categories
Guides an agent writing to a remindb memory server: structured notes go in as files parsed into a node tree, single text facts go in through MemoryWrite. The skill covers the write side of a remindb MCP server, where memory is kept as a node tree that later sessions and other agents can search. The central decision is content shape.
remindb Memory Writer fits situations like: saving a structured note with headings or lists into remindb memory; replacing the content of one existing memory node in place; rolling back, pinning or forgetting stored memory; linking related memory entries together.
Run `npx skills add radimsem/remindb --skill memorize -a claude-code`. Or copy the skill folder (skills/memorize in radimsem/remindb) into .claude/skills/memorize in your project. Claude Code loads it when a task matches its description.
Run `npx skills add radimsem/remindb --skill memorize -a codex`. Or copy the skill folder (skills/memorize in radimsem/remindb) into .agents/skills/memorize in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add radimsem/remindb --skill memorize -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/memorize, .gemini/skills/memorize, .github/skills/memorize and .opencode/skills/memorize in your project.
SKILL.md names no scripts, command-line tools or credentials: remindb Memory Writer is instructions for the agent only. Our summary lists: A remindb MCP server attached to the agent; The `$REMINDB_SOURCE` directory set up for file-based writes.
SKILL.md contains no URLs. Any network use would come from the scripts or tools the agent runs. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
remindb Memory Writer is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2k tokens (SKILL.md is roughly 8k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 5.4k tokens, read only when the agent opens those files.
Skills that share tags, products or a category with remindb Memory Writer: MemPalace Setup and Operation (MemPalace/mempalace, 59k stars), Qmd (breferrari/obsidian-mind, 4.9k stars), Context Mode Search (mksglu/context-mode, 26k stars) and Ogham Maintain (ogham-mcp/ogham-mcp, 115 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
radimsem (a GitHub user) maintains it in radimsem/remindb, which has 129 GitHub stars. The repository holds 11 skills in this directory. The repository was last updated on August 3, 2026.
Source: radimsem/remindb on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.