Agent skill

Openloomi Memory

by melandlabs in melandlabs/openloomi

openloomi Memory tools - search and manage the holistic context (people, projects, decisions, knowledge base, chat insights).

Apache-2.0Auto-check passedKnowledge Management

Install Openloomi Memory

skills CLI
$ npx skills add melandlabs/openloomi --skill openloomi-memory -a claude-code

Project install by default; add -g for ~/.claude/skills/.

GitHub CLI
$ gh skill install melandlabs/openloomi openloomi-memory --agent claude-code

Project scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).

Manual copy
$ git clone --depth 1 https://github.com/melandlabs/openloomi.git skills-src && mkdir -p .claude/skills && cp -r skills-src/skills/openloomi-memory .claude/skills/openloomi-memory && rm -rf skills-src

Use ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.

Claude Code skills documentation · loads skills from .claude/skills/

Facts

Skill name
openloomi-memory
GitHub stars
1k
Token cost
~6k tokens
SKILL.md length
1,597 words
Files
2 (incl. scripts)
Skills in repo
23
Repo updated
First seen
Licence
Apache-2.0

At a glance

openloomi Memory tools - search and manage the holistic context (people, projects, decisions, knowledge base, chat insights).

  • Works in 5 steps: Path: ~/.openloomi/data/memory/ (or… → Search Type: Case-insensitive full-text… → Files: Scans .md and .json files… → …
  • Tasks that involve Knowledge bases
  • SKILL.md covers Overview, Authentication, Local Memory Filesystem and API Endpoints, plus 6 more sections
  • Runs JavaScript scripts from its folder; calls node and curl

What it does

Openloomi Memory is an agent skill from melandlabs/openloomi. openloomi Memory tools - search and manage the holistic context (people, projects, decisions, knowledge base, chat insights). Triggers: memory search, knowledge base, search documents, list insights, who is John, what did we decide about X, tiered memory, knowledge graph, people/projects/decisions, search-all, conversation memory

Its SKILL.md is about 6k tokens, which your agent loads only when the skill is triggered. The skill folder holds 2 other files, including scripts.

It sits in Knowledge Management, covering Knowledge bases and Knowledge graphs. The repository describes itself as: OpenLoomi is an open-source AI coworker. It connects your work tools, understands what you’re working on, and tells you what needs your attention, why it matters, and what to do… The licence is Apache-2.0.

When your agent uses it

  • Tasks that involve Knowledge bases
  • Tasks that involve Knowledge graphs

Example prompts

  • “/openloomi-memory”

Requirements

  • Pre-approved tools (allowed-tools): Bash(node $SKILL_DIR/scripts/openloomi-memory.cjs *)

Workflow steps

5 steps, taken from the first numbered list in SKILL.md.

  1. Path: ~/.openloomi/data/memory/ (or subdirectory if specified)
  2. Search Type: Case-insensitive full-text search
  3. Files: Scans .md and .json files recursively (max depth 5)
  4. Matching: Each line is searched; returns first match per file
  5. Output: File path, line number, and line preview (first 200 chars)

What it can do on your machine

Read from SKILL.md and the folder at commit 2aca101. It shows what the files ask for, not the result of running them.

  • Tool permissions

    Pre-approves these tools, so the agent can use them without asking each time:

    • Bash(node $SKILL_DIR/scripts/openloomi-memory.cjs *)

    From allowed-tools in the SKILL.md frontmatter.

  • Runs code

    Ships 1 file in scripts/ (JavaScript), which the agent can run.

    Shell commands in SKILL.md call:

    • node
    • curl

    From the folder's file list and the shell code blocks in SKILL.md.

  • Network

    Links to these hosts (documentation or services it may open):

    • openloomi.ai

    From URLs in SKILL.md, links to its own repository left out.

  • Credentials

    Names no API keys, tokens, secrets or passwords.

    From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.

Context cost

Openloomi Memory loads about 6k tokens when it runs. Until then it costs about 87 tokens; SKILL.md has 1,597 words of instructions outside code blocks.

Always · name and description, kept in context so the agent knows when to use it
~87
When it runs · the whole SKILL.md, loaded when a task matches
~6k

Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.

Safety

Auto-check passed

The automated check found no risky patterns in SKILL.md.

Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.

SKILL.md

The full file from melandlabs/openloomi at commit 2aca101, republished under its Apache-2.0 licence (© melandlabs). 1,597 words, ~5,997 tokens.

Download SKILL.mdSave it as .claude/skills/openloomi-memory/SKILL.md (or your agent's skills folder). This skill also uses 1 other file; get the full folder from GitHub.
name
openloomi-memory
description
openloomi Memory tools - search and manage the holistic context (people, projects, decisions, knowledge base, chat insights). Triggers: memory search, knowledge base, search documents, list insights, who is John, what did we decide about X, tiered memory, knowledge graph, people/projects/decisions, search-all, conversation memory
allowed-tools
Bash(node $SKILL_DIR/scripts/openloomi-memory.cjs *)
metadata.version
0.9.0

Note: If OpenLoomi readiness is unknown, use openloomi-setup first. If OpenLoomi Desktop is not installed, follow Getting Started.

OpenLoomi Memory Skill

OpenLoomi Memory is the long-lived context layer of OpenLoomi — a tiered, locally-stored knowledge graph that grows on its own from your Connectors, chats, and Screen Capture. Memory is what makes Chat grounded and what Loop reads before it produces a Decision. It is always on your machine (local-first), always visible, and always auditable — see Memory for the full model.

This skill exposes three searchable surfaces over that context:

SurfaceWhat it isWhere it lives
Memory filesPeople, projects, notes, strategy — your hand-edited knowledge graph~/.openloomi/data/memory/
Knowledge BaseDocuments you uploaded (PDF, DOCX, TXT, MD, slides, sheets, images) chunked + embedded via RAGopenloomi server
InsightsAI-extracted records (decisions, action items, preferences, relationships, events) derived from chats and source messages, with usage analytics + automatic maintenanceopenloomi server

Use search-all whenever the user asks a general memory question — it covers all three surfaces in one call.


Overview

Tiered model. OpenLoomi Memory spans four tiers that OpenLoomi reasons across simultaneously:

  • Raw information — original messages, files, transcripts synced from your Connectors and Screen Capture.
  • Insights — extracted entities, decisions, key events from chats and source messages. Each insight carries usage analytics (view frequency, sources, value score) and a maintenance cycle (daily analytics refresh, weekly compaction) that surfaces the most relevant records and prevents context decay.
  • Contextual memory — recent conversation state, screen captures, and short-term references for the current task.
  • Knowledge-base memory — the long-term people / projects / decisions / preferences graph that survives months of activity.

Together these let Chat ground answers in both immediate context and deep history at once. Loop reads the relevant slice before producing each Decision; the result of every approved Action is written back into Memory so the next judgement has sharper context.

How it works with Connectors. Memory is auto-built from the platforms you've authorized. Connectors handle the OAuth / app-credential / QR / interactive flows — see openloomi-connectors for the native 7 messaging apps and the Composio OAuth layer (1000+ apps including Slack, Discord, X, Gmail, Outlook, Google Calendar/Drive/Docs, GitHub, Notion, Linear, HubSpot, LinkedIn, Jira, Asana). Once connected, Memory continuously syncs raw messages, meetings, emails, tweets, calendar events, voice calls, and any notes or screen captures you've made.


Authentication

The CLI auto-reads your token from ~/.openloomi/token (base64 encoded JWT).


Local Memory Filesystem

Overview

Memory files are stored locally at ~/.openloomi/data/memory/ and searched via direct filesystem access. This is a read-only operation that performs case-insensitive text search across .md and .json files.

Directory Structure
~/.openloomi/data/memory/
├── chats/           # Chat conversation exports
├── channels/         # Channel memory exports e.g., weixin, telegram, etc.
├── people/          # Person profiles
├── projects/       # Project notes
├── notes/          # General notes
└── strategy/       # Strategy documents
Write Operations

Memory files are plain markdown or JSON stored locally. You can add or delete files directly.

Adding a memory file:

bash
node $SKILL_DIR/scripts/openloomi-memory.cjs add-memory "Content to remember" --file=filename.md --directory=notes
  • --file (optional): Filename. If not provided, auto-generated from first line of content.
  • --directory (optional): Subdirectory under ~/.openloomi/data/memory/. Created if doesn't exist.

Deleting a memory file:

bash
node $SKILL_DIR/scripts/openloomi-memory.cjs delete-memory filename.md --directory=notes
How search-memory Works
  1. Path: ~/.openloomi/data/memory/ (or subdirectory if specified)
  2. Search Type: Case-insensitive full-text search
  3. Files: Scans .md and .json files recursively (max depth 5)
  4. Matching: Each line is searched; returns first match per file
  5. Output: File path, line number, and line preview (first 200 chars)
Example Output
json
{
  "results": [
    {
      "file": "people/boss.md",
      "line": 42,
      "preview": "My boss John mentioned the deadline is next Friday"
    },
    {
      "file": "projects/app/notes.md",
      "line": 10,
      "preview": "Boss wants the app launched by end of month"
    }
  ],
  "total": 2
}

API Endpoints

Knowledge Base (RAG)
POST /api/rag/search - Search Documents

Semantic search of uploaded documents using embeddings.

bash
curl -X POST http://localhost:3414/api/rag/search \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"query": "project plan", "limit": 5}'

Parameters:

  • query (string, required) - Search query
  • limit (number, default 5) - Max results to return

Response:

json
{
  "results": [
    {
      "id": "doc_xxx",
      "title": "Project Document",
      "content": "...",
      "score": 0.95
    }
  ]
}

GET /api/rag/documents - List Documents

List all documents in the knowledge base.

bash
curl http://localhost:3414/api/rag/documents?limit=50 \
  -H "Authorization: Bearer $TOKEN"

Parameters:

  • limit (number, default 50) - Max results to return

Response:

json
{
  "documents": [
    {
      "id": "doc_xxx",
      "name": "document.pdf",
      "type": "pdf",
      "size": 102400,
      "createdAt": "2024-01-01T00:00:00Z"
    }
  ],
  "total": 10
}

GET /api/rag/documents/[id] - Get Document

Get a single document by ID.

bash
curl http://localhost:3414/api/rag/documents/doc_xxx \
  -H "Authorization: Bearer $TOKEN"

Response:

json
{
  "id": "doc_xxx",
  "name": "Project Document.pdf",
  "type": "pdf",
  "size": 102400,
  "content": "Document text content...",
  "createdAt": "2024-01-01T00:00:00Z",
  "updatedAt": "2024-01-01T00:00:00Z"
}

Insights

Insights are structured information extracted from chat history, such as key decisions, action items, and relationship notes. Each insight belongs to one or more groups (channels/platforms) like gmail, telegram, whatsapp, slack, discord, linkedin, twitter, etc.

GET /api/insights - List Insights

List all insights from a time period.

bash
curl "http://localhost:3414/api/insights?days=7&limit=50" \
  -H "Authorization: Bearer $TOKEN"

Parameters:

  • days (number, default 7) - Look back period in days
  • limit (number, default 50) - Max results to return

Insight Structure: Each insight contains a groups field—an array of channel identifiers indicating which platform(s) the insight came from:

json
{
  "id": "insight_xxx",
  "chatId": "chat_xxx",
  "type": "decision",
  "content": "John sent an email about the project deadline",
  "groups": ["gmail"],
  "people": ["John"],
  "time": "2024-01-01T00:00:00Z",
  "createdAt": "2024-01-01T00:00:00Z"
}

Insight Types:

TypeDescription
decisionKey decisions made
action_itemTasks or follow-ups
noteGeneral notes
preferenceUser preferences
relationshipNotes about people
eventImportant events

Common Channel Groups:

ChannelGroup ValueDescription
Gmail"gmail"Google Mail messages
Outlook"outlook"Microsoft Outlook emails
Telegram"telegram"Telegram chats
WhatsApp"whatsapp"WhatsApp messages
Slack"slack"Slack messages
Discord"discord"Discord messages
LinkedIn"linkedin"LinkedIn messages
Twitter/X"twitter"Twitter posts
WeChat"weixin"WeChat messages
RSS"rss"RSS feed items

POST /api/insights - Create Insight

Create a new insight manually.

bash
curl -X POST http://localhost:3414/api/insights \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"type": "preference", "content": "I prefer Americano coffee", "groups": ["whatsapp"]}'

Parameters:

  • type (string, required) - Insight type (decision, action_item, note, preference, relationship, event)
  • content (string, required) - The insight text
  • groups (array, optional) - Channel groups to associate with
  • people (array, optional) - People mentioned in the insight

Response:

json
{
  "id": "insight_xxx",
  "type": "preference",
  "content": "I prefer Americano coffee",
  "groups": ["whatsapp"],
  "createdAt": "2024-01-01T00:00:00Z"
}

PUT /api/insights/[id] - Update Insight

Partial update an existing insight. Arrays (details, timeline, insights) are appended to, not replaced.

bash
curl -X PUT http://localhost:3414/api/insights/insight_xxx \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{
    "updates": {
      "description": "Updated description",
      "details": [{"content": "User mentioned new preference", "person": "User"}],
      "timeline": [{"summary": "Progress update", "label": "Update"}]
    }
  }'

Update Fields:

  • title - New title
  • description - New description
  • importance - Important, General, Not Important
  • urgency - As soon as possible, Within 24 hours, Not urgent, General
  • details - Array of detail objects (appended to existing)
  • timeline - Array of timeline events (appended to existing)
  • myTasks - Array of task objects
  • groups - Array of group tags (replaced)
  • categories - Array of categories (replaced)
  • people - Array of people names (replaced)

Response:

json
{
  "message": "Insight updated successfully",
  "id": "insight_xxx"
}

GET /api/insights/[id]?fetch=true - Get Insight

Get a single insight by ID, including associated chat.

bash
curl "http://localhost:3414/api/insights/insight_xxx?fetch=true" \
  -H "Authorization: Bearer $TOKEN"

Response:

json
{
  "id": "insight_xxx",
  "chatId": "chat_xxx",
  "type": "decision",
  "content": "User decided to start new project next month",
  "chat": {
    "id": "chat_xxx",
    "title": "Chat with John",
    "messages": [...]
  },
  "createdAt": "2024-01-01T00:00:00Z"
}

DELETE /api/insights/[id] - Delete Insight

Delete a specific insight.

bash
curl -X DELETE http://localhost:3414/api/insights/insight_xxx \
  -H "Authorization: Bearer $TOKEN"

Response:

json
{
  "success": true
}

GET /api/chat-insights?chatId=xxx - Get Chat Insights

Get all insights for a specific chat.

bash
curl "http://localhost:3414/api/chat-insights?chatId=chat_xxx" \
  -H "Authorization: Bearer $TOKEN"

Insight Usage Analytics & Maintenance

openloomi tracks insight usage and performs periodic maintenance to preserve retrieval quality, avoiding context decay.

Usage Tracking

Each insight view is recorded with:

  • Access timestamp
  • Access source (list, detail, search, favorite)
  • Cumulative access counts (7-day / 30-day / total)

Data is stored in the insightWeights table:

  • accessCountTotal - Total access count
  • accessCount7d - Access count in last 7 days
  • accessCount30d - Access count in last 30 days
  • lastAccessedAt - Last access timestamp
Show full SKILL.md (627 more words)Show less
Analysis Dimensions

Each insight is scored on trend and value:

MetricWeightDescription
Frequency45%Based on 7-day / 30-day access frequency
Freshness25%Last access time
Relevance20%Importance (70%) + Urgency (30%)
Favorites10%Whether the insight is favorited

Trend Indicators:

  • rising - Access frequency increasing
  • falling - Access frequency decreasing
  • stable - Frequency stable
Periodic Maintenance

System automatically runs two maintenance tasks:

TaskFrequencyPurpose
Daily analytics refresh24 hoursRefresh access stats, recalculate trends and scores
Weekly compaction7 daysMerge similar insights, prune low-value content

Retention Policy:

  • delete: 90 days no access + low score + not high importance → soft delete, hard delete after 180 days
  • archive: 30 days no access + low score OR falling trend + low score → archived
GET /api/insights/analytics - Get Insight Usage Analytics
bash
curl "http://localhost:3414/api/insights/analytics" \
  -H "Authorization: Bearer $TOKEN"

Response:

json
{
  "generatedAt": "2024-01-15T10:30:00Z",
  "summary": {
    "totalInsights": 150,
    "activeInsights": 45,
    "dormantInsights": 105,
    "totalAccesses30d": 230,
    "averageValueScore": 42,
    "risingInsights": 12,
    "fallingInsights": 8,
    "stableInsights": 25
  },
  "topInsights": [...],
  "bottomInsights": [...],
  "relationships": [...],
  "insights": [
    {
      "id": "insight_xxx",
      "title": "User decided to start new project",
      "description": "",
      "taskLabel": "",
      "platform": "gmail",
      "account": "user@gmail.com",
      "importance": "general",
      "urgency": "not_urgent",
      "isFavorited": false,
      "isArchived": false,
      "createdAt": "2024-01-01T00:00:00Z",
      "updatedAt": "2024-01-10T00:00:00Z",
      "time": "2024-01-01T00:00:00Z",
      "accessCountTotal": 15,
      "accessCount7d": 3,
      "accessCount30d": 8,
      "lastAccessedAt": "2024-01-15T10:30:00Z",
      "trend": "rising",
      "recent7dAccessCount": 3,
      "previous7dAccessCount": 1,
      "valueScore": 58,
      "recommendation": {
        "action": "keep",
        "reason": "Usage, freshness, or relevance still supports keeping it active."
      }
    }
  ]
}

POST /api/insights/[id]/view - Record Insight View
bash
curl -X POST "http://localhost:3414/api/insights/insight_xxx/view" \
  -H "Authorization: Bearer $TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"viewSource": "search"}'

Parameters:

  • viewSource (string) - Source type: list, detail, search, favorite

Response:

json
{
  "ok": true
}

CLI Script

Quick Start
bash
# Search ALL memory sources at once (recommended for comprehensive search)
node $SKILL_DIR/scripts/openloomi-memory.cjs search-all "query"

# Search local memory files (full-text, case-insensitive)
node $SKILL_DIR/scripts/openloomi-memory.cjs search-memory "boss"

# Search local memory files in specific subdirectory
node $SKILL_DIR/scripts/openloomi-memory.cjs search-memory "project" --directory=projects

# Search knowledge base (RAG, semantic search)
node $SKILL_DIR/scripts/openloomi-memory.cjs search-knowledge "project plan"

# List knowledge base documents
node $SKILL_DIR/scripts/openloomi-memory.cjs list-documents

# Get document content
node $SKILL_DIR/scripts/openloomi-memory.cjs get-document doc_xxx

# List recent insights (last 7 days)
node $SKILL_DIR/scripts/openloomi-memory.cjs list-insights --days=7

# List insights from a specific channel (e.g., Gmail, Telegram, WhatsApp)
node $SKILL_DIR/scripts/openloomi-memory.cjs list-insights --channel=gmail --days=7
node $SKILL_DIR/scripts/openloomi-memory.cjs list-insights --channel=telegram --days=30
node $SKILL_DIR/scripts/openloomi-memory.cjs list-insights --channel=whatsapp

# Filter insights by keyword (supports multiple keywords - OR logic)
node $SKILL_DIR/scripts/openloomi-memory.cjs list-insights --keyword=screen --keyword=linkedin --days=30

# Get single insight
node $SKILL_DIR/scripts/openloomi-memory.cjs get-insight insight_xxx

# Create a new insight
node $SKILL_DIR/scripts/openloomi-memory.cjs add-insight --title="Coffee preference" --description="I prefer Americano coffee" --importance=General

# Update an insight (partial update with array append)
node $SKILL_DIR/scripts/openloomi-memory.cjs update-insight insight_xxx --description="Updated description" --detail="User mentioned new preference"

# Delete insight
node $SKILL_DIR/scripts/openloomi-memory.cjs delete-insight insight_xxx

# Add a memory file
node $SKILL_DIR/scripts/openloomi-memory.cjs add-memory "My boss John likes Monday project discussions" --file=people/boss.md

# Delete a memory file
node $SKILL_DIR/scripts/openloomi-memory.cjs delete-memory people/boss.md
Command Reference
CommandDescriptionTarget
search-allSearch all memory sources simultaneouslyLocal files + Knowledge base + Insights
search-memoryFull-text search in local .md/.json files~/.openloomi/data/memory/
search-knowledgeSemantic search via embeddingsopenloomi server (RAG)
list-documentsList uploaded documentsKnowledge base
get-documentGet document content by IDKnowledge base
list-insightsList extracted insights (supports --channel filter)Insights API
get-insightGet single insight by IDInsights API
delete-insightDelete an insightInsights API
add-insightCreate a new insight (title, description, importance, urgency, groups, people)Insights API
update-insightUpdate an insight (partial update with array append logic)Insights API
add-memoryAdd a memory file (auto-generates filename from content)Local filesystem
delete-memoryDelete a memory fileLocal filesystem

AI Agent Workflow

Triggered when the user asks about memory, knowledge, or past information:

  1. Memory file search - "search my memory", "find what I said about..."
  2. Knowledge base search - "search uploaded documents", "find in knowledge base"
  3. Insights management - "list insights", "delete an insight"
  4. Channel insights - "what messages on Gmail?", "show me Telegram chats", "any WhatsApp messages?"
  5. Comprehensive search - "search everything", "find in all my memory", "build relationship graph"

Execution Flow:

  1. Identify intent - determine if user wants comprehensive search or specific source
  2. Prefer search-all - for general memory queries, always use search-all first to get comprehensive results across all sources
  3. Execute in parallel - when specific sources are needed, run multiple searches simultaneously:
    • search-memory for local files
    • search-knowledge for uploaded documents
    • list-insights for extracted insights
  4. For channel queries - use list-insights with --channel parameter:
    • "gmail" - Email messages via Gmail
    • "outlook" - Email messages via Outlook
    • "telegram" - Telegram chats
    • "whatsapp" - WhatsApp messages
    • "slack" - Slack messages
    • "discord" - Discord messages
    • "linkedin" - LinkedIn messages
    • "twitter" - Twitter/X posts
    • "weixin" - WeChat messages
    • "rss" - RSS feed items
  5. Format output - aggregate and present results in user's language

Best Practice for Comprehensive Queries:

bash
# When user asks about relationships, people, or general memory:
node $SKILL_DIR/scripts/openloomi-memory.cjs search-all "person/project/topic"

# Then optionally get details from specific sources
node $SKILL_DIR/scripts/openloomi-memory.cjs search-memory "person" --directory=people
node $SKILL_DIR/scripts/openloomi-memory.cjs list-insights --days=30 --keyword=<keyword>

Channel-Based Message Queries:

bash
# User asks "what emails did I receive?" or "show me Gmail messages"
node $SKILL_DIR/scripts/openloomi-memory.cjs list-insights --channel=gmail --days=7

# User asks "any Telegram messages about project X"?
node $SKILL_DIR/scripts/openloomi-memory.cjs list-insights --channel=telegram --days=30

# User asks "recent WhatsApp messages"?
node $SKILL_DIR/scripts/openloomi-memory.cjs list-insights --channel=whatsapp

Living Connections (Hebbian Potentiation)

Living Connections track relationships between insights that strengthen when they're accessed together. This implements Hebbian learning: "insights that fire together, wire together."

Commands
bash
# Get related insights - "users who viewed X also viewed Y"
node $SKILL_DIR/scripts/openloomi-memory.cjs get-related-insights <insightId>

# Get related insights with filters
node $SKILL_DIR/scripts/openloomi-memory.cjs get-related-insights insight_xxx --limit=10 --minStrength=0.3

# Get connection statistics
node $SKILL_DIR/scripts/openloomi-memory.cjs get-connection-stats <insightId>
How It Works
  1. When you view an insight, connections to other insights viewed within 5 minutes are strengthened
  2. Connection strength decays over time using Ebbinghaus-style forgetting curve
  3. Strong connections (strength > 0.5) are considered "living" - actively referenced
Response Format
json
{
  "insightId": "insight_xxx",
  "connections": [...],
  "relatedInsights": [
    {
      "insightId": "insight_yyy",
      "strength": 0.72,
      "coAccessCount": 5
    }
  ],
  "total": 5
}

Temporal Queries (Time-Travel)

Temporal validity enables "time-travel" queries - seeing what insights were relevant at a specific point in time.

Commands
bash
# Get insights valid at a specific point in time (time-travel query)
node $SKILL_DIR/scripts/openloomi-memory.cjs get-insights-as-of 2026-01-01

# Get currently valid insights (no expiration or future expiration)
node $SKILL_DIR/scripts/openloomi-memory.cjs get-current-insights

# Get insights overlapping a time interval
node $SKILL_DIR/scripts/openloomi-memory.cjs get-insights-in-interval 2026-01-01 2026-06-01
Use Cases
  • "What did I know about Project X on March 1st?"
  • "What insights were valid during my vacation last July?"
  • "Show me only currently relevant insights (hide expired ones)"

Entity Registry

Entity Registry tracks people, groups, concepts, projects, and companies as first-class entities with disambiguation support.

Commands
bash
# List all entities of a specific type
node $SKILL_DIR/scripts/openloomi-memory.cjs list-entities --type=person

# Search entities by name
node $SKILL_DIR/scripts/openloomi-memory.cjs list-entities --search=John

# Get entity details with linked insights
node $SKILL_DIR/scripts/openloomi-memory.cjs get-entity <entityId> --insights
Entity Types
TypeDescription
personPeople (contacts, colleagues, friends)
groupGroups (teams, organizations)
conceptAbstract concepts (ideas, methodologies)
projectProjects (initiatives, deliverables)
companyCompanies (clients, vendors, employers)

Search with Connections

Combined search that returns matching insights along with their Living Connections, providing a richer context.

bash
# Search insights and include related insights
node $SKILL_DIR/scripts/openloomi-memory.cjs search-with-connections "project deadline"

# With custom limit
node $SKILL_DIR/scripts/openloomi-memory.cjs search-with-connections "project deadline" --limit=5

© melandlabs, Apache-2.0. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file

Files

SKILL.md and 1 other file (scripts) in skills/openloomi-memory of melandlabs/openloomi.

  • SKILL.md
  • scripts/openloomi-memory.cjs

Open the folder on GitHubat commit 2aca101

Compare with similar skills

Openloomi Memory next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.

Openloomi Memory compared with similar skills
SkillStarsUsed inTokensAuto-checkLicenceRepo updated
Openloomi Memory this skillmelandlabs/openloomi1k—~6kAutomated safety check: PassApache-2.0
LLM Wiki Knowledge GraphEgonex-AI/Understand-Anything86k—~1.5kAutomated safety check: PassMIT
My WikiNimaChu/my-wiki124—~674Automated safety check: PassMIT
HypatiaMarchLiu/hypatia239—~7.9kAutomated safety check: NotesMIT
Mini Context Graphgithub/awesome-copilot40k1 repos~2kAutomated safety check: PassMIT
Memory Curatebasicmachines-co/basic-memory4.1k—~1.9kAutomated safety check: PassAGPL-3.0

Similar skills

  • LLM Wiki Knowledge Graph

    Egonex-AI/Understand-Anything

    Detects a Karpathy-pattern LLM wiki and builds an interactive knowledge graph with entities, implicit relationships and topic clusters.

    86k GitHub stars~1.5k tokensUpdated today
    Knowledge ManagementAuto-check passed
  • My Wiki

    NimaChu/my-wiki

    Work with a local My Wiki knowledge base, Dashboard, and knowledge graph.

    124 GitHub stars~674 tokensUpdated yesterday
    Knowledge ManagementAuto-check passed
  • Hypatia

    MarchLiu/hypatia

    Interact with the Hypatia AI memory system using natural language.

    239 GitHub stars~7.9k tokensUpdated 10 days ago
    Knowledge ManagementAuto-check: notes
  • Mini Context Graph

    github/awesome-copilot

    Official

    A persistent, compounding knowledge base combining Karpathy's LLM Wiki pattern with a structured knowledge graph.

    40k GitHub starsUsed in 1 repo~2k tokens
    Knowledge ManagementAuto-check passed
  • Memory Curate

    basicmachines-co/basic-memory

    Curate the Basic Memory knowledge graph: find orphan notes and suggest links, propose typed relations, merge duplicates, audit tags and folders, and build hub notes.

    4.1k GitHub stars~1.9k tokensUpdated today
    Knowledge ManagementAuto-check passed
  • Ask

    agenticnotetaking/arscontexta

    Query the bundled research knowledge graph for methodology guidance.

    3.5k GitHub stars~5.7k tokensUpdated 7 mo ago
    Knowledge ManagementAuto-check passed

More from melandlabs/openloomi

All 23 skills in this repo
  • Openloomi Connectors

    melandlabs/openloomi

    openloomi Connectors tools - manage the native 7 messaging integrations and pair with the composio skill for the 1000+ apps OAuth layer (Slack, Discord, X, Gmail, Outlook, Google…

    1k GitHub stars~3.3k tokensUpdated 15 days ago
    Auto-check passed
  • Create Task

    melandlabs/openloomi

    Create an end-to-end Continual Learning Bench task. An agent skill from melandlabs/openloomi.

    1k GitHub stars~4.6k tokensUpdated 15 days ago
    Auto-check passed
  • Openloomi Setup

    melandlabs/openloomi

    OpenLoomi first-use setup and readiness guidance for skill-only agent runtimes.

    1k GitHub stars~420 tokensUpdated 15 days ago
    Auto-check passed
  • Find Skills

    melandlabs/openloomi

    Discover and install skills from the open agent skills ecosystem.

    1k GitHub stars~892 tokensUpdated 15 days ago
    Auto-check passed
  • Openloomi

    melandlabs/openloomi

    OpenLoomi runtime integration for Claude Code. An agent skill from melandlabs/openloomi.

    1k GitHub stars~1.4k tokensUpdated 15 days ago
    Auto-check passed
  • Openloomi API

    melandlabs/openloomi

    openloomi HTTP API reference (local-first, served from the OpenLoomi Desktop app at http://localhost:3414).

    1k GitHub stars~4.2k tokensUpdated 15 days ago
    Auto-check passed

Questions about Openloomi Memory

What does Openloomi Memory do?

openloomi Memory tools - search and manage the holistic context (people, projects, decisions, knowledge base, chat insights). Openloomi Memory is an agent skill from melandlabs/openloomi. openloomi Memory tools - search and manage the holistic context (people, projects, decisions, knowledge base, chat insights).

When should I use Openloomi Memory?

Openloomi Memory fits situations like: tasks that involve Knowledge bases; tasks that involve Knowledge graphs.

How do I install Openloomi Memory in Claude Code?

Run `npx skills add melandlabs/openloomi --skill openloomi-memory -a claude-code`. Or copy the skill folder (skills/openloomi-memory in melandlabs/openloomi) into .claude/skills/openloomi-memory in your project. Claude Code loads it when a task matches its description.

How do I install Openloomi Memory in Codex?

Run `npx skills add melandlabs/openloomi --skill openloomi-memory -a codex`. Or copy the skill folder (skills/openloomi-memory in melandlabs/openloomi) into .agents/skills/openloomi-memory in your project. Codex loads it when a task matches its description.

Can I use Openloomi Memory in Cursor, Gemini CLI or GitHub Copilot?

Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add melandlabs/openloomi --skill openloomi-memory -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/openloomi-memory, .gemini/skills/openloomi-memory, .github/skills/openloomi-memory and .opencode/skills/openloomi-memory in your project.

What does Openloomi Memory need to run?

Going by SKILL.md and its folder, Openloomi Memory needs JavaScript for the scripts in its folder and the command-line tools its instructions call (node and curl). Its frontmatter pre-approves these tools: Bash(node $SKILL_DIR/scripts/openloomi-memory.cjs *).

Does Openloomi Memory access the network?

SKILL.md names 1 domain. As links in the text: openloomi.ai. This is read from the text; nothing was executed.

Is Openloomi Memory safe to install?

Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.

What licence does Openloomi Memory use?

Openloomi Memory is published under the Apache-2.0 licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.

How many tokens does Openloomi Memory use?

About 6k tokens (SKILL.md is roughly 24k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.

What are the alternatives to Openloomi Memory?

Skills that share tags, products or a category with Openloomi Memory: LLM Wiki Knowledge Graph (Egonex-AI/Understand-Anything, 86k stars), My Wiki (NimaChu/my-wiki, 124 stars), Hypatia (MarchLiu/hypatia, 239 stars) and Mini Context Graph (github/awesome-copilot, 40k stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.

Who maintains Openloomi Memory?

melandlabs (a GitHub organization) maintains it in melandlabs/openloomi, which has 1,037 GitHub stars. The repository holds 23 skills in this directory. The repository was last updated on September 24, 2026.

Source: melandlabs/openloomi on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.