Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.loom.teamecho.ai/llms.txt

Use this file to discover all available pages before exploring further.

Loom includes a first-party OpenClaw plugin (loom-openclaw-plugin/) that integrates Loom as a Context Engine, providing structured long-term memory for OpenClaw.

Quick Start

1. Install & configure Loom

cd Loom
pip install -e .
loom init          # generates configs/loom.yaml and template files
Open configs/loom.yaml and fill in the llm section (or copy .env.example to .env and edit):
# configs/loom.yaml
llm:
  api_key: "your-api-key"
  model: "google/gemini-2.5-flash"            # any OpenAI-compatible model
  base_url: "https://openrouter.ai/api/v1"    # OpenRouter / OpenAI / local endpoint

2. Start the Loom backend

loom serve                   # foreground (Ctrl+C to stop)
# or
loom serve start             # background daemon (recommended)
The server runs at http://localhost:8666 by default. Use loom serve status to verify.

3. Install the plugin

clawhub login
openclaw plugins install loom-claw
For local development from this repository, use:
openclaw plugins install --link /path/to/Loom/loom-openclaw-plugin
If you don’t have OpenClaw yet, see the OpenClaw Install Guide first.

4. Start (or restart) the Gateway

If the Gateway is not running, start it:
openclaw gateway
If the Gateway is already running, restart it to load the new plugin:
openclaw gateway restart

5. Verify

openclaw plugins list --enabled     # plugin should appear
openclaw plugins inspect loom-claw  # detailed plugin info
openclaw gateway status             # Gateway health check
Then open a chat and send /loom status to confirm end-to-end connectivity. The plugin will automatically extract and recall structured memories each turn.

Features

  • Auto-extract and auto-recall — extracts information into structured schemas and injects it into the system prompt each turn
  • Schema-based memory — organizes knowledge into typed domains and fields
  • Multi-schema management — create, switch, backup, and restore independent schema files
  • Template system — bootstrap schemas from built-in, shared, or custom templates; full template CRUD via slash commands
  • Agent tools — 5 registered tools for LLM-driven memory management
  • Slash commands — full /loom command suite for manual memory management

Configuration

Configure in openclaw.json under plugins.entries.loom-claw.config:
OptionDefaultDescription
loomBaseUrlhttp://localhost:8666Loom backend URL
sessionIddefaultLoom session ID
schemaIddefaultShared schema file ID
schemaTemplateInitial template
buildEveryNTurns1Extraction frequency (same as Loom build_every_n_turns)
Example openclaw.json:
{
  "plugins": {
    "entries": {
      "loom-claw": {
        "enabled": true,
        "config": {
          "loomBaseUrl": "http://localhost:8666",
          "sessionId": "default",
          "schemaId": "default",
          "schemaTemplate": "general",
          "buildEveryNTurns": 1
        }
      }
    }
  }
}

Slash Commands

View & Recall
CommandDescription
/loom or /loom statusShow connection status and schema overview
/loom inspectView schema structure with field values
/loom recallRecall all stored memory data
Memory Management
CommandDescription
/loom forget <domain>Delete a specific schema domain
/loom forget --allClear all memory
/loom resetBackup current schema and start fresh
Schema Files
CommandDescription
/loom schemasList all schema files and backups
/loom new [name]Create a new blank schema and switch to it
/loom switch <schema_id>Switch to an existing schema
/loom restore <backup_id>Restore a schema from backup
Template Management
CommandDescription
/loom templatesList all available templates (grouped by source)
/loom templates show <name>Preview template domains and fields
/loom templates use <name>Create a schema from template and switch to it
/loom templates createShow format help for creating custom templates
/loom templates create <definition>Create a custom template (compact text or --json)
/loom templates delete <name>Delete a custom template
/loom templates helpShow template command help
Configuration
CommandDescription
/loom configView current runtime configuration
/loom config buildEveryNTurns <N>Update extraction frequency
/loom helpShow help

Creating Custom Templates via Slash Command

Create templates directly from the chat using the compact text format:
/loom templates create game_character
  character: name, class, level, skills
  story: main_quest, side_quests
  social: friends, guild, reputation
Format:
  • First line: template_name description (name allows letters, numbers, _, -)
  • Following lines: domain_name: field1 | description, field2 | description
Or use JSON format: /loom templates create --json {"_meta":{"name":"..."},...}

Agent Tools

Five tools are registered for the OpenClaw agent:
ToolDescription
loom_inspectInspect schema structure and field values
loom_recallRecall all schema memory data
loom_buildManually trigger information extraction
loom_forgetDelete a domain or clear all memory
loom_updateTrigger schema update from chat history

Context Engine Lifecycle

OpenClaw HookPlugin BehaviorLoom API
bootstrapVerify backend, create session, load templatePOST /api/sessions, GET /api/schemas/recall-all
assembleFetch schema data, inject into system promptGET /api/schemas/recall-all
afterTurnFormat messages, extract infoPOST /api/build
compactDelegate to runtime

Data Flow

User message → OpenClaw agent

           [assemble] → GET /api/schemas/recall-all
                 ↓        → schema data injected into system prompt
           Model generates response

           [afterTurn] → POST /api/build
                           → CM Agent extracts information
                           → Updates schema
                           → Available on next assemble

Data Storage

Loom stores data under the OpenClaw Agent Workspace:
~/.openclaw/workspace/loom/
├── schemas/              # Schema files (shared across sessions)
│   ├── default.json
│   └── backups/
│       └── default_20260314_180736.json
└── sessions/
    └── default.json
Configure paths in configs/loom.yaml:
persistence:
  session_dir: "~/.openclaw/workspace/loom/sessions"
  schemas_dir: "~/.openclaw/workspace/loom/schemas"