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

Knowledge Management

by @claireaicodes

Organize and classify OpenClaw knowledge entries into local folders by content type (Research, Decision, Insight, Lesson, Pattern, Project, Reference, Tutori...

Versionv2.1.0
Downloads1,920
Installs9
TERMINAL
clawhub install knowledge-management

πŸ“– About This Skill


name: knowledge-management description: Organize and classify OpenClaw knowledge entries into local folders by content type (Research, Decision, Insight, Lesson, Pattern, Project, Reference, Tutorial). homepage: https://github.com/ClaireAICodes/openclaw-skill-knowledge-management metadata: { "openclaw": { "emoji": "πŸ“š", "requires": { "bins": ["km"] } } }

Knowledge Management Skill (Local Storage)

Organize your OpenClaw memory files into a structured local knowledge base. Automatically parses MEMORY.md and daily memory files, classifies entries by content type, and stores each as a timestamped markdown file in the appropriate folder.

Available Tools

Core Commands

  • km sync [options] - Sync memory entries to local files
  • km classify [options] - Parse and classify without storing (JSON output)
  • km summarize [options] - Generate index files for each content type
  • km cleanup [options] - Remove orphaned files
  • km list_types - List all available content types
  • Setup

    No API keys needed! The skill uses two locations:

  • Input Workspace: Where MEMORY.md and memory/ daily files are read from.
  • Output Directory: Where organized folders (Research/, Decision/, etc.) are written.
  • Both are detected automatically:

    Input Workspace (source files)

    1. OPENCLAWORKSPACE environment variable 2. --workspace CLI argument 3. Current working directory (if it contains MEMORY.md) 4. Default: ~/.openclaw/workspace

    Output Directory (organized files)

    1. --output-dir CLI argument (relative to workspace or absolute) 2. Default: /memory/KM

    The skill will create the output directory and all content-type folders automatically.

    If you want to pre-create:

    mkdir -p ~/.openclaw/workspace/memory/KM/{Research,Decision,Insight,Lesson,Pattern,Project,Reference,Tutorial}
    

    Usage Examples

    Default locations (input at workspace root, output in memory/KM)

    # From any directory (workspace auto-detected)
    km sync --days_back 7 --cleanup
    

    Custom input workspace and output directory

    km sync --workspace /custom/input/workspace --output-dir /custom/output/KM --days_back 7
    

    Using environment variables

    export OPENCLAWORKSPACE=/custom/input/workspace
    km sync --output-dir /custom/output/KM --days_back 7
    

    Dry run (preview only)

    km sync --dry_run --days_back 1
    

    Classify entries and export JSON

    km classify --days_back 3 > entries.json
    

    Generate index files (default: output directory)

    km summarize
    

    or specify different location

    km summarize --output_dir ~/some/other/folder

    Preview orphan cleanup

    km cleanup --dry_run
    

    List content types

    km list_types
    

    Storage Structure

    Assuming default configuration:

  • Input workspace: ~/.openclaw/workspace
  • Output directory: ~/.openclaw/workspace/memory/KM
  • ~/.openclaw/workspace/
    β”œβ”€β”€ MEMORY.md                (source file - you edit this)
    β”œβ”€β”€ memory/                  (daily memory files)
    β”‚   β”œβ”€β”€ 2025-02-11.md
    β”‚   β”œβ”€β”€ 2025-02-12.md
    β”‚   └── ...
    └── memory/KM/               (organized output by the skill)
        β”œβ”€β”€ local-sync-state.json
        β”œβ”€β”€ local-sync-log.md
        β”œβ”€β”€ Research/
        β”‚   β”œβ”€β”€ 20260215T1448_Title_Here_HASH.md
        β”‚   └── ...
        β”œβ”€β”€ Decision/
        β”œβ”€β”€ Insight/
        β”œβ”€β”€ Lesson/
        β”œβ”€β”€ Pattern/
        β”œβ”€β”€ Project/
        β”œβ”€β”€ Reference/
        β”œβ”€β”€ Tutorial/
        β”œβ”€β”€ Research_Index.md
        β”œβ”€β”€ Decision_Index.md
        └── ... (other index files)
    

    File Naming

    Format: YYYYMMDDTHHMM_Title_With_Underscores_8CHARHASH.md

    The 8-character content hash suffix prevents filename collisions when titles are identical but content differs.

    File Content (YAML Frontmatter)

    ---
    title: "Protocol Name"
    content_type: "Research"
    domain: "OpenClaw"
    certainty: "Verified"
    impact: "Medium"
    confidence_score: 8
    tags: ["AI", "Automation"]
    source: "MEMORY.md"
    source_file: "MEMORY.md"
    date: "2026-02-11"
    content_hash: "e4b30e75d0f5a662"
    

    Entry body content starts here...

    How It Works

    1. Parses MEMORY.md and recent daily memory/*.md files 2. Classifies each entry (content type, domain, certainty, impact, tags, confidence) 3. Computes content hash for deduplication 4. Checks sync state (memory/local-sync-state.json) to skip already synced entries 5. Writes to appropriate folder with timestamp + hash filename 6. Updates state mapping (hash β†’ filepath) 7. Optional cleanup removes files not in state

    Classification Logic

  • Content Type: Keyword matching (Research, Lesson, Decision, Pattern, Tutorial, Reference, Insight)
  • Domain: Contextual inference (AI Models, OpenClaw, Cost, Trading, etc.)
  • Certainty: Based on language (Verified, Likely, Speculative, Opinion)
  • Impact: Importance indicators (High, Medium, Low, Negligible)
  • Tags: Auto-extracted from predefined keyword map
  • Confidence Score: 1–10 heuristic (source credibility, length, data mentions)
  • Customize by editing the EntryClassifier class in index-local.js.

    State Management

    memory/local-sync-state.json maps content hashes to file paths:

    {
      "e4b30e75d0f5a662": "/path/to/Research/202602151440_Title_e4b30e75.md"
    }
    

    This enables idempotent syncs and fast duplicate detection.

    Do not edit manually unless recovering from corruption.

    Cron Integration

    Automate daily syncs:

    openclaw cron add \
      --name "Daily Knowledge Sync" \
      --cron "0 5 * * *" \
      --tz "Asia/Singapore" \
      --session isolated \
      --message "km sync --days_back 7"
    

    Note: By default, the skill reads MEMORY.md from ~/.openclaw/workspace and writes organized files to ~/.openclaw/workspace/memory/KM. Use --workspace or --output-dir to customize these locations.

    Troubleshooting

    "km: command not found"

  • Run npm link in the skill directory, or add ~/workspace/bin to PATH.
  • No entries found

  • Ensure MEMORY.md uses ## section headers and ### entry titles within recognized sections.
  • Files not created

  • Check write permissions; run with --verbose.
  • Old entries not syncing

  • They may already be in state. Clear memory/KM/local-sync-state.json to force re-sync (caution: may duplicate files).
  • Duplicate files

  • Run km cleanup to remove orphans, then km sync to create missing files.

  • Version: 2.0.0 Changed: 2026-02-15 β€” Switched from Notion to local storage, added hash suffixes for uniqueness. Author: Claire (OpenClaw Agent) License: MIT

    βš™οΈ Configuration

    No API keys needed! The skill uses two locations:

  • Input Workspace: Where MEMORY.md and memory/ daily files are read from.
  • Output Directory: Where organized folders (Research/, Decision/, etc.) are written.
  • Both are detected automatically:

    Input Workspace (source files)

    1. OPENCLAWORKSPACE environment variable 2. --workspace CLI argument 3. Current working directory (if it contains MEMORY.md) 4. Default: ~/.openclaw/workspace

    Output Directory (organized files)

    1. --output-dir CLI argument (relative to workspace or absolute) 2. Default: /memory/KM

    The skill will create the output directory and all content-type folders automatically.

    If you want to pre-create:

    mkdir -p ~/.openclaw/workspace/memory/KM/{Research,Decision,Insight,Lesson,Pattern,Project,Reference,Tutorial}
    

    πŸ“‹ Tips & Best Practices

    "km: command not found"

  • Run npm link in the skill directory, or add ~/workspace/bin to PATH.
  • No entries found

  • Ensure MEMORY.md uses ## section headers and ### entry titles within recognized sections.
  • Files not created

  • Check write permissions; run with --verbose.
  • Old entries not syncing

  • They may already be in state. Clear memory/KM/local-sync-state.json to force re-sync (caution: may duplicate files).
  • Duplicate files

  • Run km cleanup to remove orphans, then km sync to create missing files.

  • Version: 2.0.0 Changed: 2026-02-15 β€” Switched from Notion to local storage, added hash suffixes for uniqueness. Author: Claire (OpenClaw Agent) License: MIT