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.
openloomi Memory tools - search and manage the holistic context (people, projects, decisions, knowledge base, chat insights).
$ npx skills add melandlabs/openloomi --skill openloomi-memory -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install melandlabs/openloomi openloomi-memory --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ 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-srcUse ~/.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/
Install the "openloomi-memory" agent skill from https://github.com/melandlabs/openloomi/tree/main/skills/openloomi-memory into .claude/skills/openloomi-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openloomi-memory", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/melandlabs/openloomi/tree/main/skills/openloomi-memoryType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add melandlabs/openloomi --skill openloomi-memory -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install melandlabs/openloomi openloomi-memory --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/melandlabs/openloomi.git skills-src && mkdir -p .agents/skills && cp -r skills-src/skills/openloomi-memory .agents/skills/openloomi-memory && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "openloomi-memory" agent skill from https://github.com/melandlabs/openloomi/tree/main/skills/openloomi-memory into .agents/skills/openloomi-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openloomi-memory", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add melandlabs/openloomi --skill openloomi-memory -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install melandlabs/openloomi openloomi-memory --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/melandlabs/openloomi.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/skills/openloomi-memory .cursor/skills/openloomi-memory && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "openloomi-memory" agent skill from https://github.com/melandlabs/openloomi/tree/main/skills/openloomi-memory into .cursor/skills/openloomi-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openloomi-memory", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/melandlabs/openloomi.git --path skills/openloomi-memory--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add melandlabs/openloomi --skill openloomi-memory -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install melandlabs/openloomi openloomi-memory --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/melandlabs/openloomi.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/skills/openloomi-memory .gemini/skills/openloomi-memory && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "openloomi-memory" agent skill from https://github.com/melandlabs/openloomi/tree/main/skills/openloomi-memory into .gemini/skills/openloomi-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openloomi-memory", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install melandlabs/openloomi openloomi-memoryInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add melandlabs/openloomi --skill openloomi-memory -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/melandlabs/openloomi.git skills-src && mkdir -p .github/skills && cp -r skills-src/skills/openloomi-memory .github/skills/openloomi-memory && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "openloomi-memory" agent skill from https://github.com/melandlabs/openloomi/tree/main/skills/openloomi-memory into .github/skills/openloomi-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openloomi-memory", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add melandlabs/openloomi --skill openloomi-memory -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install melandlabs/openloomi openloomi-memory --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/melandlabs/openloomi.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/skills/openloomi-memory .opencode/skills/openloomi-memory && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "openloomi-memory" agent skill from https://github.com/melandlabs/openloomi/tree/main/skills/openloomi-memory into .opencode/skills/openloomi-memory/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "openloomi-memory", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
openloomi-memoryopenloomi 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). 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.
5 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit 2aca101. It shows what the files ask for, not the result of running them.
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.
Ships 1 file in scripts/ (JavaScript), which the agent can run.
Shell commands in SKILL.md call:
nodecurlFrom the folder's file list and the shell code blocks in SKILL.md.
Links to these hosts (documentation or services it may open):
openloomi.aiFrom URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
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.
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.
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.
The full file from melandlabs/openloomi at commit 2aca101, republished under its Apache-2.0 licence (© melandlabs). 1,597 words, ~5,997 tokens.
.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.Note: If OpenLoomi readiness is unknown, use
openloomi-setupfirst. If OpenLoomi Desktop is not installed, follow Getting Started.
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:
| Surface | What it is | Where it lives |
|---|---|---|
| Memory files | People, projects, notes, strategy — your hand-edited knowledge graph | ~/.openloomi/data/memory/ |
| Knowledge Base | Documents you uploaded (PDF, DOCX, TXT, MD, slides, sheets, images) chunked + embedded via RAG | openloomi server |
| Insights | AI-extracted records (decisions, action items, preferences, relationships, events) derived from chats and source messages, with usage analytics + automatic maintenance | openloomi server |
Use search-all whenever the user asks a general memory question — it covers all three surfaces in one call.
Tiered model. OpenLoomi Memory spans four tiers that OpenLoomi reasons across simultaneously:
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.
The CLI auto-reads your token from ~/.openloomi/token (base64 encoded JWT).
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.
~/.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 documentsMemory files are plain markdown or JSON stored locally. You can add or delete files directly.
Adding a memory file:
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:
node $SKILL_DIR/scripts/openloomi-memory.cjs delete-memory filename.md --directory=notes~/.openloomi/data/memory/ (or subdirectory if specified).md and .json files recursively (max depth 5){
"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/rag/search - Search DocumentsSemantic search of uploaded documents using embeddings.
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 querylimit (number, default 5) - Max results to returnResponse:
{
"results": [
{
"id": "doc_xxx",
"title": "Project Document",
"content": "...",
"score": 0.95
}
]
}/api/rag/documents - List DocumentsList all documents in the knowledge base.
curl http://localhost:3414/api/rag/documents?limit=50 \
-H "Authorization: Bearer $TOKEN"Parameters:
limit (number, default 50) - Max results to returnResponse:
{
"documents": [
{
"id": "doc_xxx",
"name": "document.pdf",
"type": "pdf",
"size": 102400,
"createdAt": "2024-01-01T00:00:00Z"
}
],
"total": 10
}/api/rag/documents/[id] - Get DocumentGet a single document by ID.
curl http://localhost:3414/api/rag/documents/doc_xxx \
-H "Authorization: Bearer $TOKEN"Response:
{
"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 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.
/api/insights - List InsightsList all insights from a time period.
curl "http://localhost:3414/api/insights?days=7&limit=50" \
-H "Authorization: Bearer $TOKEN"Parameters:
days (number, default 7) - Look back period in dayslimit (number, default 50) - Max results to returnInsight Structure:
Each insight contains a groups field—an array of channel identifiers indicating which platform(s) the insight came from:
{
"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:
| Type | Description |
|---|---|
decision | Key decisions made |
action_item | Tasks or follow-ups |
note | General notes |
preference | User preferences |
relationship | Notes about people |
event | Important events |
Common Channel Groups:
| Channel | Group Value | Description |
|---|---|---|
| Gmail | "gmail" | Google Mail messages |
| Outlook | "outlook" | Microsoft Outlook emails |
| Telegram | "telegram" | Telegram chats |
"whatsapp" | WhatsApp messages | |
| Slack | "slack" | Slack messages |
| Discord | "discord" | Discord messages |
"linkedin" | LinkedIn messages | |
| Twitter/X | "twitter" | Twitter posts |
"weixin" | WeChat messages | |
| RSS | "rss" | RSS feed items |
/api/insights - Create InsightCreate a new insight manually.
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 textgroups (array, optional) - Channel groups to associate withpeople (array, optional) - People mentioned in the insightResponse:
{
"id": "insight_xxx",
"type": "preference",
"content": "I prefer Americano coffee",
"groups": ["whatsapp"],
"createdAt": "2024-01-01T00:00:00Z"
}/api/insights/[id] - Update InsightPartial update an existing insight. Arrays (details, timeline, insights) are appended to, not replaced.
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 titledescription - New descriptionimportance - Important, General, Not Importanturgency - As soon as possible, Within 24 hours, Not urgent, Generaldetails - Array of detail objects (appended to existing)timeline - Array of timeline events (appended to existing)myTasks - Array of task objectsgroups - Array of group tags (replaced)categories - Array of categories (replaced)people - Array of people names (replaced)Response:
{
"message": "Insight updated successfully",
"id": "insight_xxx"
}/api/insights/[id]?fetch=true - Get InsightGet a single insight by ID, including associated chat.
curl "http://localhost:3414/api/insights/insight_xxx?fetch=true" \
-H "Authorization: Bearer $TOKEN"Response:
{
"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"
}/api/insights/[id] - Delete InsightDelete a specific insight.
curl -X DELETE http://localhost:3414/api/insights/insight_xxx \
-H "Authorization: Bearer $TOKEN"Response:
{
"success": true
}/api/chat-insights?chatId=xxx - Get Chat InsightsGet all insights for a specific chat.
curl "http://localhost:3414/api/chat-insights?chatId=chat_xxx" \
-H "Authorization: Bearer $TOKEN"openloomi tracks insight usage and performs periodic maintenance to preserve retrieval quality, avoiding context decay.
Each insight view is recorded with:
list, detail, search, favorite)Data is stored in the insightWeights table:
accessCountTotal - Total access countaccessCount7d - Access count in last 7 daysaccessCount30d - Access count in last 30 dayslastAccessedAt - Last access timestampEach insight is scored on trend and value:
| Metric | Weight | Description |
|---|---|---|
| Frequency | 45% | Based on 7-day / 30-day access frequency |
| Freshness | 25% | Last access time |
| Relevance | 20% | Importance (70%) + Urgency (30%) |
| Favorites | 10% | Whether the insight is favorited |
Trend Indicators:
rising - Access frequency increasingfalling - Access frequency decreasingstable - Frequency stableSystem automatically runs two maintenance tasks:
| Task | Frequency | Purpose |
|---|---|---|
| Daily analytics refresh | 24 hours | Refresh access stats, recalculate trends and scores |
| Weekly compaction | 7 days | Merge similar insights, prune low-value content |
Retention Policy:
delete: 90 days no access + low score + not high importance → soft delete, hard delete after 180 daysarchive: 30 days no access + low score OR falling trend + low score → archived/api/insights/analytics - Get Insight Usage Analyticscurl "http://localhost:3414/api/insights/analytics" \
-H "Authorization: Bearer $TOKEN"Response:
{
"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."
}
}
]
}/api/insights/[id]/view - Record Insight Viewcurl -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, favoriteResponse:
{
"ok": true
}# 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 | Description | Target |
|---|---|---|
search-all | Search all memory sources simultaneously | Local files + Knowledge base + Insights |
search-memory | Full-text search in local .md/.json files | ~/.openloomi/data/memory/ |
search-knowledge | Semantic search via embeddings | openloomi server (RAG) |
list-documents | List uploaded documents | Knowledge base |
get-document | Get document content by ID | Knowledge base |
list-insights | List extracted insights (supports --channel filter) | Insights API |
get-insight | Get single insight by ID | Insights API |
delete-insight | Delete an insight | Insights API |
add-insight | Create a new insight (title, description, importance, urgency, groups, people) | Insights API |
update-insight | Update an insight (partial update with array append logic) | Insights API |
add-memory | Add a memory file (auto-generates filename from content) | Local filesystem |
delete-memory | Delete a memory file | Local filesystem |
Triggered when the user asks about memory, knowledge, or past information:
Execution Flow:
search-all - for general memory queries, always use search-all first to get comprehensive results across all sourcessearch-memory for local filessearch-knowledge for uploaded documentslist-insights for extracted insightslist-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 itemsBest Practice for Comprehensive Queries:
# 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:
# 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=whatsappLiving Connections track relationships between insights that strengthen when they're accessed together. This implements Hebbian learning: "insights that fire together, wire together."
# 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>{
"insightId": "insight_xxx",
"connections": [...],
"relatedInsights": [
{
"insightId": "insight_yyy",
"strength": 0.72,
"coAccessCount": 5
}
],
"total": 5
}Temporal validity enables "time-travel" queries - seeing what insights were relevant at a specific point in time.
# 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-01Entity Registry tracks people, groups, concepts, projects, and companies as first-class entities with disambiguation support.
# 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| Type | Description |
|---|---|
person | People (contacts, colleagues, friends) |
group | Groups (teams, organizations) |
concept | Abstract concepts (ideas, methodologies) |
project | Projects (initiatives, deliverables) |
company | Companies (clients, vendors, employers) |
Combined search that returns matching insights along with their Living Connections, providing a richer context.
# 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
SKILL.md and 1 other file (scripts) in skills/openloomi-memory of melandlabs/openloomi.
Open the folder on GitHubat commit 2aca101
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.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Openloomi Memory this skillmelandlabs/openloomi | 1k | — | ~6k | Automated safety check: Pass | Apache-2.0 | |
| LLM Wiki Knowledge GraphEgonex-AI/Understand-Anything | 86k | — | ~1.5k | Automated safety check: Pass | MIT | |
| My WikiNimaChu/my-wiki | 124 | — | ~674 | Automated safety check: Pass | MIT | |
| HypatiaMarchLiu/hypatia | 239 | — | ~7.9k | Automated safety check: Notes | MIT | |
| Mini Context Graphgithub/awesome-copilot | 40k | 1 repos | ~2k | Automated safety check: Pass | MIT | |
| Memory Curatebasicmachines-co/basic-memory | 4.1k | — | ~1.9k | Automated safety check: Pass | AGPL-3.0 |
Egonex-AI/Understand-Anything
Detects a Karpathy-pattern LLM wiki and builds an interactive knowledge graph with entities, implicit relationships and topic clusters.
NimaChu/my-wiki
Work with a local My Wiki knowledge base, Dashboard, and knowledge graph.
MarchLiu/hypatia
Interact with the Hypatia AI memory system using natural language.
github/awesome-copilot
A persistent, compounding knowledge base combining Karpathy's LLM Wiki pattern with a structured knowledge graph.
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.
agenticnotetaking/arscontexta
Query the bundled research knowledge graph for methodology guidance.
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…
melandlabs/openloomi
Create an end-to-end Continual Learning Bench task. An agent skill from melandlabs/openloomi.
melandlabs/openloomi
OpenLoomi first-use setup and readiness guidance for skill-only agent runtimes.
melandlabs/openloomi
Discover and install skills from the open agent skills ecosystem.
melandlabs/openloomi
OpenLoomi runtime integration for Claude Code. An agent skill from melandlabs/openloomi.
melandlabs/openloomi
openloomi HTTP API reference (local-first, served from the OpenLoomi Desktop app at http://localhost:3414).
Categories
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).
Openloomi Memory fits situations like: tasks that involve Knowledge bases; tasks that involve Knowledge graphs.
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.
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.
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.
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 *).
SKILL.md names 1 domain. As links in the text: openloomi.ai. This is read from the text; nothing was executed.
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.
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.
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.
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.
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.