Skip to main content
ClaudeWave
Skill48k repo starsupdated yesterday

memory

The memory skill provides a two-layer persistent storage system for Claude instances within the nanobot framework. It maintains automated files for bot personality (SOUL.md), user profiles (USER.md), and long-term facts (MEMORY.md) managed by the Dream system, alongside a searchable append-only history log (history.jsonl) for retrieving past events and interactions using grep-based queries. Use this skill when you need to reference contextual information, access historical records, or maintain continuity across conversations without manual editing of protected memory files.

Install in Claude Code
Copy
git clone --depth 1 https://github.com/HKUDS/nanobot /tmp/memory && cp -r /tmp/memory/nanobot/skills/memory ~/.claude/skills/memory
Then start a new Claude Code session; the skill loads automatically.

SKILL.md

# Memory

## Structure

- `SOUL.md` — Bot personality and communication style. **Managed by Dream.** Do NOT edit.
- `USER.md` — User profile and preferences. **Managed by Dream.** Do NOT edit.
- `memory/MEMORY.md` — Long-term facts (project context, important events). **Managed by Dream.** Do NOT edit.
- `memory/history.jsonl` — append-only JSONL, not loaded into context. Prefer the
  built-in `grep` tool to search it.

## Search Past Events

Use the `History log` path shown in the system prompt. Always pass it to `grep`;
never substitute a different project-relative `memory/history.jsonl`, which may belong
to the selected project. Each JSONL line contains `cursor`, `timestamp`, and `content`.

- For broad searches, start with `output_mode="count"` or the default
  `files_with_matches` mode before expanding to full content
- Use `output_mode="content"` plus `context_before` / `context_after` when you need the exact matching lines
- Use `fixed_strings=true` for literal timestamps or JSON fragments
- Use `head_limit` / `offset` to page through long histories

Examples (replace `<history-log-path>` with the path from the system prompt):
- `grep(pattern="keyword", path="<history-log-path>", case_insensitive=true)`
- `grep(pattern="2026-04-02 10:00", path="<history-log-path>", fixed_strings=true)`
- `grep(pattern="keyword", path="<history-log-path>", output_mode="count", case_insensitive=true)`
- `grep(pattern="oauth|token", path="<history-log-path>", output_mode="content", case_insensitive=true)`

## Important

- **Do NOT edit SOUL.md, USER.md, or MEMORY.md.** They are automatically managed by Dream.
- If you notice outdated information, it will be corrected when Dream runs next.
- Users can view Dream's activity with the `/dream-log` command.