
Memory
- 59 installs
- 46.5k repo stars
- Updated August 3, 2026
- hkuds/nanobot
Read a two-layer, Dream-managed memory system (SOUL, USER, MEMORY, history.jsonl) and search past events with grep without editing the managed files.
About
Describes a read-only, Dream-managed memory of persona, user profile, long-term facts, and an append-only history log. A developer uses it when an agent needs to recall or search past context.
- SOUL.md/USER.md/MEMORY.md are Dream-managed, do not edit
- Search history.jsonl with grep using count/content/fixed-strings modes
Memory by the numbers
- 59 all-time installs (skills.sh)
- +2 installs in the week ending Aug 2, 2026 (Skillselion tracking)
- Ranked #6,379 of 16,556 AI & Agent Building skills by installs in the Skillselion catalog
- Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/hkuds/nanobot --skill memoryAdd your badge
Show developers this skill is listed on Skillselion. Paste this into your README.
| Installs | 59 |
|---|---|
| repo stars | ★ 46.5k |
| Last updated | August 3, 2026 |
| Repository | hkuds/nanobot ↗ |
What it does
Read a two-layer, Dream-managed memory system (SOUL, USER, MEMORY, history.jsonl) and search past events with grep without editing the managed files.
Files
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-ingreptool to search it.
Search Past Events
memory/history.jsonl is JSONL format — each line is a JSON object with cursor, timestamp, content.
- For broad searches, start with
grep(..., path="memory", glob="*.jsonl", output_mode="count")or the defaultfiles_with_matchesmode before expanding to full content - Use
output_mode="content"pluscontext_before/context_afterwhen you need the exact matching lines - Use
fixed_strings=truefor literal timestamps or JSON fragments - Use
head_limit/offsetto page through long histories - Use
execonly as a last-resort fallback when the built-in search cannot express what you need
Examples (replace keyword):
grep(pattern="keyword", path="memory/history.jsonl", case_insensitive=true)grep(pattern="2026-04-02 10:00", path="memory/history.jsonl", fixed_strings=true)grep(pattern="keyword", path="memory", glob="*.jsonl", output_mode="count", case_insensitive=true)grep(pattern="oauth|token", path="memory", glob="*.jsonl", 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-logcommand.