🎁 Get the FREE AI Skills Starter Guide β€” Subscribe β†’
BytesAgainBytesAgain
πŸ¦€ ClawHub

ClawVault

by @g9pedro

Agent memory system with memory graph, context profiles, checkpoint/recover, structured storage, semantic search, observational memory, task tracking, canvas...

Versionv2.5.13
Downloads6,688
Stars⭐ 9
Comments1
TERMINAL
clawhub install clawvault

πŸ“– About This Skill


name: clawvault version: "2.5.11" description: Agent memory system with memory graph, context profiles, checkpoint/recover, structured storage, semantic search, and observational memory. Use when: storing/searching memories, preventing context death, graph-aware context retrieval, repairing broken sessions. Don't use when: general file I/O. author: Versatly repository: https://github.com/Versatly/clawvault homepage: https://clawvault.dev user-invocable: true always: false openclaw: {"emoji":"🐘","requires":{"bins":["clawvault","qmd"]}} requires: {"bins":["clawvault","qmd"],"env_optional":["CLAWVAULT_PATH","OPENCLAW_HOME","OPENCLAW_STATE_DIR","GEMINI_API_KEY"]} install: [{"id":"node","kind":"node","package":"clawvault","bins":["clawvault"],"label":"Install ClawVault CLI (npm)"},{"id":"qmd","kind":"node","package":"github:tobi/qmd","bins":["qmd"],"label":"Install qmd backend (required for query/context workflows)"}] metadata: {"openclaw":{"emoji":"🐘","requires":{"bins":["clawvault","qmd"]},"install":[{"id":"node","kind":"node","package":"clawvault","bins":["clawvault"],"label":"Install ClawVault CLI (npm)"},{"id":"qmd","kind":"node","package":"github:tobi/qmd","bins":["qmd"],"label":"Install qmd backend (required for query/context workflows)"}],"env_optional":["CLAWVAULT_PATH","OPENCLAW_HOME","OPENCLAW_STATE_DIR","GEMINI_API_KEY"],"homepage":"https://clawvault.dev"}}

ClawVault 🐘

An elephant never forgets. Structured memory for OpenClaw agents.

> Built for OpenClaw. Canonical install: npm CLI + hook install + hook enable.

Security & Transparency

What this skill does:

  • Reads/writes markdown files in your vault directory (CLAWVAULT_PATH or auto-discovered)
  • repair-session reads and modifies OpenClaw session transcripts (~/.openclaw/agents/) β€” creates backups before writing
  • Provides an OpenClaw hook pack (hooks/clawvault/handler.js) with lifecycle events (gateway:startup, gateway:heartbeat, command:new, session:start, compaction:memoryFlush, cron.weekly). Hook is opt-in and must be installed/enabled.
  • observe --compress makes LLM API calls (Gemini Flash by default) to compress session transcripts into observations
  • Environment variables used:

  • CLAWVAULT_PATH β€” vault location (optional, auto-discovered if not set)
  • OPENCLAW_HOME / OPENCLAW_STATE_DIR β€” used by repair-session to find session transcripts
  • GEMINI_API_KEY β€” used by observe for LLM compression (optional, only if using observe features)
  • No cloud sync β€” all data stays local. No network calls except LLM API for observe compression.

    This is a full CLI tool, not instruction-only. It writes files, registers hooks, and runs code.

    Auditability: the published ClawHub skill bundle includes SKILL.md, HOOK.md, and hooks/clawvault/handler.js so users can inspect hook behavior before enabling it.

    Install (Canonical)

    npm install -g clawvault
    openclaw hooks install clawvault
    openclaw hooks enable clawvault

    Verify and reload

    openclaw hooks list --verbose openclaw hooks info clawvault openclaw hooks check

    restart gateway process

    clawhub install clawvault can install skill guidance, but does not replace explicit hook pack installation.

    Recommended Safe Install Flow

    # 1) Review package metadata before install
    npm view clawvault version dist.integrity dist.tarball repository.url

    2) Install CLI + qmd dependency

    npm install -g clawvault@latest npm install -g github:tobi/qmd

    3) Install hook pack, but DO NOT enable yet

    openclaw hooks install clawvault

    4) Review hook source locally before enabling

    node -e "const fs=require('fs');const p='hooks/clawvault/handler.js';console.log(fs.existsSync(p)?p:'hook file not found in current directory')" openclaw hooks info clawvault

    5) Enable only after review

    openclaw hooks enable clawvault openclaw hooks check

    Setup

    # Initialize vault (creates folder structure + templates)
    clawvault init ~/my-vault

    Or set env var to use existing vault

    export CLAWVAULT_PATH=/path/to/memory

    Optional: shell integration (aliases + CLAWVAULT_PATH)

    clawvault shell-init >> ~/.bashrc

    Quick Start for New Agents

    # Start your session (recover + recap + summary)
    clawvault wake

    Capture and checkpoint during work

    clawvault capture "TODO: Review PR tomorrow" clawvault checkpoint --working-on "PR review" --focus "type guards"

    End your session with a handoff

    clawvault sleep "PR review + type guards" --next "respond to CI" --blocked "waiting for CI"

    Health check when something feels off

    clawvault doctor

    Reality Checks Before Use

    # Verify runtime compatibility with current OpenClaw setup
    clawvault compat

    Verify qmd is available

    qmd --version

    Verify OpenClaw CLI is installed in this shell

    openclaw --version

    ClawVault currently depends on qmd for core vault/query flows.

    Current Feature Set

    Memory Graph

    ClawVault builds a typed knowledge graph from wiki-links, tags, and frontmatter:

    # View graph summary
    clawvault graph

    Refresh graph index

    clawvault graph --refresh

    Graph is stored at .clawvault/graph-index.json β€” schema versioned, incremental rebuild.

    Graph-Aware Context Retrieval

    # Default context (semantic + graph neighbors)
    clawvault context "database decision"

    With a profile preset

    clawvault context --profile planning "Q1 roadmap" clawvault context --profile incident "production outage" clawvault context --profile handoff "session end"

    Auto profile (used by OpenClaw hook)

    clawvault context --profile auto "current task"

    Context Profiles

    | Profile | Purpose | |---------|---------| | default | Balanced retrieval | | planning | Broader strategic context | | incident | Recent events, blockers, urgent items | | handoff | Session transition context | | auto | Hook-selected profile based on session intent |

    OpenClaw Compatibility Diagnostics

    # Check hook wiring, event routing, handler safety
    clawvault compat

    Strict mode for CI

    clawvault compat --strict

    Core Commands

    Wake + Sleep (primary)

    clawvault wake
    clawvault sleep "what I was working on" --next "ship v1" --blocked "waiting for API key"
    

    Store memories by type

    # Types: fact, feeling, decision, lesson, commitment, preference, relationship, project
    clawvault remember decision "Use Postgres over SQLite" --content "Need concurrent writes for multi-agent setup"
    clawvault remember lesson "Context death is survivable" --content "Checkpoint before heavy work"
    clawvault remember relationship "Justin Dukes" --content "Client contact at Hale Pet Door"
    

    Quick capture to inbox

    clawvault capture "TODO: Review PR tomorrow"
    

    Search (requires qmd installed)

    # Keyword search (fast)
    clawvault search "client contacts"

    Semantic search (slower, more accurate)

    clawvault vsearch "what did we decide about the database"

    Context Death Resilience

    Wake (start of session)

    clawvault wake
    

    Sleep (end of session)

    clawvault sleep "what I was working on" --next "finish docs" --blocked "waiting for review"
    

    Checkpoint (save state frequently)

    clawvault checkpoint --working-on "PR review" --focus "type guards" --blocked "waiting for CI"
    

    Recover (manual check)

    clawvault recover --clear
    

    Shows: death time, last checkpoint, recent handoff

    Handoff (manual session end)

    clawvault handoff \
      --working-on "ClawVault improvements" \
      --blocked "npm token" \
      --next "publish to npm, create skill" \
      --feeling "productive"
    

    Recap (bootstrap new session)

    clawvault recap
    

    Shows: recent handoffs, active projects, pending commitments, lessons

    Auto-linking

    Wiki-link entity mentions in markdown files:

    # Link all files
    clawvault link --all

    Link single file

    clawvault link memory/2024-01-15.md

    Folder Structure

    vault/
    β”œβ”€β”€ .clawvault/           # Internal state
    β”‚   β”œβ”€β”€ last-checkpoint.json
    β”‚   └── dirty-death.flag
    β”œβ”€β”€ decisions/            # Key choices with reasoning
    β”œβ”€β”€ lessons/              # Insights and patterns
    β”œβ”€β”€ people/               # One file per person
    β”œβ”€β”€ projects/             # Active work tracking
    β”œβ”€β”€ handoffs/             # Session continuity
    β”œβ”€β”€ inbox/                # Quick captures
    └── templates/            # Document templates
    

    Best Practices

    1. Wake at session start β€” clawvault wake restores context 2. Checkpoint every 10-15 min during heavy work 3. Sleep before session end β€” clawvault sleep captures next steps 4. Use types β€” knowing WHAT you're storing helps WHERE to put it 5. Wiki-link liberally β€” [[person-name]] builds your knowledge graph

    Checklist for AGENTS.md

    ## Memory Checklist
    
  • [ ] Run clawvault wake at session start
  • [ ] Checkpoint during heavy work
  • [ ] Capture key decisions/lessons with clawvault remember
  • [ ] Use wiki-links like [[person-name]]
  • [ ] End with clawvault sleep "..." --next "..." --blocked "..."
  • [ ] Run clawvault doctor when something feels off
  • Append this checklist to existing memory instructions. Do not replace your full AGENTS.md behavior unless you intend to.

    Session Transcript Repair (v1.5.0+)

    When the Anthropic API rejects with "unexpected tool_use_id found in tool_result blocks", use:

    # See what's wrong (dry-run)
    clawvault repair-session --dry-run

    Fix it

    clawvault repair-session

    Repair a specific session

    clawvault repair-session --session --agent

    List available sessions

    clawvault repair-session --list

    What it fixes:

  • Orphaned tool_result blocks referencing non-existent tool_use IDs
  • Aborted tool calls with partial JSON
  • Broken parent chain references
  • Backups are created automatically (use --no-backup to skip).

    Troubleshooting

  • qmd not installed β€” install qmd, then confirm with qmd --version
  • No ClawVault found β€” run clawvault init or set CLAWVAULT_PATH
  • CLAWVAULT_PATH missing β€” run clawvault shell-init and add to shell rc
  • Too many orphan links β€” run clawvault link --orphans
  • Inbox backlog warning β€” process or archive inbox items
  • "unexpected tool_use_id" error β€” run clawvault repair-session
  • OpenClaw integration drift β€” run clawvault compat
  • Hook enable fails / hook not found β€” run openclaw hooks install clawvault, then openclaw hooks enable clawvault, restart gateway, and verify via openclaw hooks list --verbose
  • Graph out of date β€” run clawvault graph --refresh
  • Wrong context for task β€” try clawvault context --profile incident or --profile planning
  • Stability Snapshot

  • Typecheck passes (npm run typecheck)
  • Test suite passes (449/449)
  • Cross-platform path handling hardened for Windows in:
  • - qmd URI/document path normalization - WebDAV path safety and filesystem resolution - shell-init output expectations
  • OpenClaw runtime wiring validated by clawvault compat --strict (requires local openclaw binary for full runtime validation)
  • Integration with qmd

    ClawVault uses qmd for search:

    # Install qmd
    bun install -g github:tobi/qmd

    Alternative

    npm install -g github:tobi/qmd

    Add vault as collection

    qmd collection add /path/to/vault --name my-memory --mask "**/*.md"

    Update index

    qmd update && qmd embed

    Environment Variables

  • CLAWVAULT_PATH β€” Default vault path (skips auto-discovery)
  • OPENCLAW_HOME β€” OpenClaw home directory (used by repair-session)
  • OPENCLAW_STATE_DIR β€” OpenClaw state directory (used by repair-session)
  • GEMINI_API_KEY β€” Used by observe for LLM-powered compression (optional)
  • Links

  • npm: https://www.npmjs.com/package/clawvault
  • GitHub: https://github.com/Versatly/clawvault
  • Issues: https://github.com/Versatly/clawvault/issues
  • βš™οΈ Configuration

    # Initialize vault (creates folder structure + templates)
    clawvault init ~/my-vault

    Or set env var to use existing vault

    export CLAWVAULT_PATH=/path/to/memory

    Optional: shell integration (aliases + CLAWVAULT_PATH)

    clawvault shell-init >> ~/.bashrc

    πŸ“‹ Tips & Best Practices

    1. Wake at session start β€” clawvault wake restores context 2. Checkpoint every 10-15 min during heavy work 3. Sleep before session end β€” clawvault sleep captures next steps 4. Use types β€” knowing WHAT you're storing helps WHERE to put it 5. Wiki-link liberally β€” [[person-name]] builds your knowledge graph