org-memory
Structured knowledge base and task management using org-mode files. Query, mutate, link, and search org files and org-roam databases with the `org` CLI.
Rank
62
Safety
84
Downloads
745
Updated
Apr 15, 2026
Version
0.3.1
Source
CLAWHUB
About
What it does, and when to use it.
Capability contract not published. No trust telemetry is available yet. 745 downloads reported by the source. Last updated 4/15/2026.
Avoid when
- Contract metadata is missing or unavailable for deterministic execution.
Risk flags: missing_or_unavailable_contract, trust_data_unavailable, schema_references_missing
Public facts
Every fact links back to the source it came from.
- Vendor
- Clawhubvendor · observed Apr 15, 2026
- Protocol compatibility
- OpenClawcompatibility · observed Apr 15, 2026
- Adoption signal
- 745 downloadsadoption · observed Apr 15, 2026
- Latest release
- 0.3.1release · observed Feb 26, 2026
- Handshake status
- UNKNOWNsecurity
Install and run
Setup complexity: low.
clawhub skill install kn70zj1ajbxmgxbsfrw0nbtv9580p7ap:org-memory- Install using `clawhub skill install kn70zj1ajbxmgxbsfrw0nbtv9580p7ap:org-memory` in an isolated environment before connecting it to live workloads.
- No published capability contract is available yet, so validate auth and request/response behavior manually.
- Review the upstream CLAWHUB listing at https://clawhub.ai/DCPRevere/org-memory before using production credentials.
Contract: missing
curl -s "https://www.xpersona.co/api/v1/agents/clawhub-dcprevere-org-memory/snapshot"
Documentation
CLAWHUB
48,077 characters of source documentation, loaded on request.
Extracted files
5 files captured from the source.
SKILL.md
---
name: org-memory
version: 0.3.0
description: "Structured knowledge base and task management using org-mode files. Query, mutate, link, and search org files and org-roam databases with the `org` CLI."
metadata: {"openclaw":{"emoji":"🦄","homepage":"https://github.com/dcprevere/org-cli","requires":{"bins":["org"],"env":["ORG_MEMORY_AGENT_DIR","ORG_MEMORY_HUMAN_DIR","ORG_MEMORY_AGENT_DATABASE_LOCATION","ORG_MEMORY_HUMAN_DATABASE_LOCATION"]},"install":[{"kind":"download","label":"Download from GitHub releases: https://github.com/dcprevere/org-cli/releases"}]}}
---
# org-memory
Use the `org` CLI to maintain structured, linked, human-readable knowledge in org-mode files. Org files are plain text with rich structure: headlines, TODO states, tags, properties, timestamps, and links. Combined with org-roam, they form a knowledge graph backed by a SQLite database.
## Shortcuts
When your human uses these patterns, act on them directly.
| Keyword | Meaning | Target |
|---|---|---|
| `Todo:` | Create a task with a date | `$ORG_MEMORY_HUMAN_DIR` |
| `Note:` | Write this down for me | `$ORG_MEMORY_HUMAN_DIR` |
| `Done:` / `Finished:` | Mark a task complete | `$ORG_MEMORY_HUMAN_DIR` |
| `Know:` | Store this for agent recall | `$ORG_MEMORY_AGENT_DIR` |
### Todo — create a task
`Todo: <text>` means "create a task." Extract any date or timeframe from the text and schedule it. If the text contains a relative date ("in 3 weeks", "by Friday", "next month"), compute the actual date and add `--scheduled <date>` or `--deadline <date>`.
Action: `org add "$ORG_MEMORY_HUMAN_DIR/inbox.org" '<title>' --todo TODO --scheduled <date> --db "$ORG_MEMORY_HUMAN_DATABASE_LOCATION" -f json`
Use `--deadline` instead of `--scheduled` when the text implies a hard due date ("by Friday", "due March 1st"). Use `--scheduled` for softer timing ("in 3 weeks", "next month", "tomorrow").
Examples:
- "Todo: submit taxes in 3 weeks" → `org add .../inbox.org 'Submit taxes' --todo TODO --scheduled 2026-03-18`
- "Todo: renew passport by June" → `org add .../inbox.org 'Renew passport' --todo TODO --deadline 2026-06-01`
- "Todo: call dentist tomorrow" → `org add .../inbox.org 'Call dentist' --todo TODO --scheduled 2026-02-26`
- "Todo: book flights" → `org add .../inbox.org 'Book flights' --todo TODO` (no date mentioned)
### Note — for the human
`Note: <text>` means "add this to MY org files." It is always a task or reminder for the *human*, not for the agent.
Action: `org add "$ORG_MEMORY_HUMAN_DIR/inbox.org" '<text>' --todo TODO -f json`
If the note includes a date or deadline, add `--scheduled <date>` or `--deadline <date>`. If there's no date, add it without one (the human will schedule it themselves, or ask you to).
Examples:
- "Note: Buy groceries" → `org add .../inbox.org 'Buy groceries' --todo TODO`
- "Note: Review PR #42 by Friday" → `org add .../inbox.org 'Review PR #42' --todo TODO --deadline 2026-02-28`
- "Note: we could add feature X to the app" → `org add .../inbox.org 'A_meta.json
{
"ownerId": "kn70zj1ajbxmgxbsfrw0nbtv9580p7ap",
"slug": "org-memory",
"version": "0.3.1",
"publishedAt": 1772112963448
}references/knowledge-management.md
# Knowledge management
This section applies when `ORG_MEMORY_USE_FOR_AGENT` is `true`. All commands operate against `$ORG_MEMORY_AGENT_DIR` and `$ORG_MEMORY_AGENT_DATABASE_LOCATION`.
## Always search before creating
Before creating a node or link, check if the entity already exists:
```bash
org roam node find 'Sarah' -d "$ORG_MEMORY_AGENT_DIR" --db "$ORG_MEMORY_AGENT_DATABASE_LOCATION" -f json
```
- If found: use the existing node's ID and file path
- If not found (`headline_not_found` error): create a new node
**Never create a node without searching first.** Duplicates fragment your knowledge graph.
## Record an entity
Only after confirming no existing node:
```bash
org roam node create 'Sarah' -d "$ORG_MEMORY_AGENT_DIR" --db "$ORG_MEMORY_AGENT_DATABASE_LOCATION" -t person -t work -f json
```
## Add structure to a node
Use the file path returned by create/find commands:
```bash
# Add a headline to the node (response includes auto-assigned custom_id)
org add <file> 'Unavailable March 2026' --tag scheduling --db "$ORG_MEMORY_AGENT_DATABASE_LOCATION" -f json
# → {"ok":true,"data":{"custom_id":"k4t","title":"Unavailable March 2026",...}}
# Use the custom_id for follow-up commands
org note k4t 'Out all of March per human.' -d "$ORG_MEMORY_AGENT_DIR" --db "$ORG_MEMORY_AGENT_DATABASE_LOCATION" -f json
# Append body text to an existing headline
org append k4t 'Confirmed by email on 2026-02-20.' -d "$ORG_MEMORY_AGENT_DIR" --db "$ORG_MEMORY_AGENT_DATABASE_LOCATION" -f json
# Append multi-line text via stdin
printf '%s' 'First paragraph.
Second paragraph.' | org append k4t --stdin -d "$ORG_MEMORY_AGENT_DIR" --db "$ORG_MEMORY_AGENT_DATABASE_LOCATION" -f json
```
**`org note` vs `org append`:** `note` adds a timestamped entry to the LOGBOOK drawer (metadata). `append` adds text to the headline body (visible content). Use `note` for audit trail, `append` for building up content.
**Note:** Both commands attach to *headlines*, not file-level nodes. If a roam node is file-level (no headlines yet), first add a headline with `org add`, then use `note` or `append` on it.
## Link two nodes
**Always search for both nodes first** to get their IDs:
```bash
# Find source node
org roam node find 'Bob' -d "$ORG_MEMORY_AGENT_DIR" --db "$ORG_MEMORY_AGENT_DATABASE_LOCATION" -f json
# → Returns {"ok":true,"data":{"id":"e5f6a7b8-...","file":"/path/to/bob.org",...}}
# Find target node
org roam node find 'Alice' -d "$ORG_MEMORY_AGENT_DIR" --db "$ORG_MEMORY_AGENT_DATABASE_LOCATION" -f json
# → Returns {"ok":true,"data":{"id":"a1b2c3d4-...",...}}
```
If either node doesn't exist, create it first. Then link using the IDs from the responses:
```bash
org roam link add <source-file> '<source-id>' '<target-id>' -d "$ORG_MEMORY_AGENT_DIR" --db "$ORG_MEMORY_AGENT_DATABASE_LOCATION" --description 'manages' -f json
```
The `--description` is optional metadata about the relationship.
## Query your knowledge
```bash
# Find a node by name
org roam node find 'Sarah' references/memory-architecture.md
# Memory architecture
`$ORG_MEMORY_AGENT_DIR` is the agent's primary long-term memory. It replaces flat memory files (like MEMORY.md) with a structured, searchable knowledge graph.
**When org-memory is the primary memory system** (i.e. the user said yes during migration and `plugins.slots.memory` is `"none"`): do not read or write `MEMORY.md`, and do not call `memory_search` or `memory_get`. All long-term memory goes through org files — `memory.org`, daily files, and entity nodes.
## Memory migration
On first use, check whether the user wants org-memory to replace OpenClaw's default memory system.
1. **Ask the user:** "Would you like org-memory to be your primary memory system? This replaces MEMORY.md and daily files with org-mode equivalents."
2. **If yes:**
a. **Migrate MEMORY.md.** Read `~/.openclaw/workspace/MEMORY.md`. Convert markdown headings to org headings (`# ` → `* `, `## ` → `** `, etc.) and write the result to `$ORG_MEMORY_AGENT_DIR/memory.org`. If the file is empty or missing, create a minimal `memory.org` with a single top-level heading.
b. **Migrate daily files.** For each `~/.openclaw/workspace/memory/YYYY-MM-DD.md`, convert headings the same way and write to `$ORG_MEMORY_AGENT_DIR/daily/YYYY-MM-DD.org`. Create the `daily/` directory if needed.
c. **Disable default memory plugin.** Update `~/.openclaw/openclaw.json` — set `plugins.slots.memory` to `"none"`. This stops OpenClaw from loading `memory_search`/`memory_get` and prevents auto-flush to MEMORY.md during compaction.
```json
{
"plugins": {
"slots": {
"memory": "none"
}
}
}
```
Merge this into the existing JSON — don't overwrite other keys.
d. **Sync.** Run `org roam sync` and `org index` against `$ORG_MEMORY_AGENT_DIR` so the new files are in the database.
3. **If no:** Leave the default memory system active. The skill still provides knowledge graph (roam nodes, entity linking) and task management, but MEMORY.md remains the agent's primary curated memory. Do not write to `memory.org` or daily org files — those sections of the skill only apply when org-memory is the primary memory system.
## File structure
```
$ORG_MEMORY_AGENT_DIR/
├── memory.org # Curated long-term memory (read every session)
├── daily/
│ ├── 2026-02-21.org # Today's raw log
│ ├── 2026-02-20.org # Yesterday's raw log
│ └── ...
└── *.org # Entity nodes (people, projects, etc.)
```
**`memory.org`** — the agent's permanent memory. Curated, concise, always loaded. Contains who the human is, active projects, lessons learned, conventions, and anything needed every session. Keep it tight — move detail into entity nodes and keep memory.org as a summary with links.
**`daily/YYYY-MM-DD.org`** — raw daily logs. What happened, decisions made, ambient facts captured, things learned. Working notes, not curated. Write freely.
**Entity nodes** (`*.org`) — structured roam nodes for people, projects, concepts. Tagged, lreferences/task-management.md
# Task management This section applies when `ORG_MEMORY_USE_FOR_HUMAN` is `true`. All commands operate against `$ORG_MEMORY_HUMAN_DIR` and `$ORG_MEMORY_HUMAN_DATABASE_LOCATION`. ## Read the human's state **Start here.** `org today` is the most useful query — it returns all non-done TODOs that are scheduled for today or overdue: ```bash org today -d "$ORG_MEMORY_HUMAN_DIR" -f json ``` For broader views: ```bash org agenda today -d "$ORG_MEMORY_HUMAN_DIR" -f json # all scheduled + deadlines for today org agenda week -d "$ORG_MEMORY_HUMAN_DIR" -f json # next 7 days org agenda todo -d "$ORG_MEMORY_HUMAN_DIR" -f json # all TODOs with scheduled dates org agenda todo --tag work -d "$ORG_MEMORY_HUMAN_DIR" -f json ``` For rich filtering across all TODOs (scheduled or not): ```bash org todos --state TODO -d "$ORG_MEMORY_HUMAN_DIR" -f json # all open TODOs org todos --state TODO --unscheduled -d "$ORG_MEMORY_HUMAN_DIR" -f json # unscheduled only org todos --state TODO --overdue -d "$ORG_MEMORY_HUMAN_DIR" -f json # overdue items org todos --state TODO --due-before 2026-03-01 -d "$ORG_MEMORY_HUMAN_DIR" -f json # due before date org todos --search 'meeting' -d "$ORG_MEMORY_HUMAN_DIR" -f json # search by title org todos --state TODO --file 'work' -d "$ORG_MEMORY_HUMAN_DIR" -f json # filter by file org todos --state TODO --tag urgent -d "$ORG_MEMORY_HUMAN_DIR" -f json # filter by tag org todos --state TODO --priority A -d "$ORG_MEMORY_HUMAN_DIR" -f json # filter by priority org todos --state TODO --sort priority -d "$ORG_MEMORY_HUMAN_DIR" -f json # sort by priority org todos --state TODO --sort scheduled --reverse -d "$ORG_MEMORY_HUMAN_DIR" -f json # reverse sort ``` The `todos` command returns full data in JSON: title, todo state, priority, tags, file, pos, scheduled, deadline, level, path (parent headlines), and custom_id. All filters are combinable. ## Make changes ```bash # Add a headline (response includes the auto-assigned custom_id) org add "$ORG_MEMORY_HUMAN_DIR/inbox.org" 'Review PR #42' --todo TODO --tag work --deadline 2026-02-10 --db "$ORG_MEMORY_HUMAN_DATABASE_LOCATION" -f json # Subsequent commands use the custom_id — no file path needed org todo k4t DONE -d "$ORG_MEMORY_HUMAN_DIR" --db "$ORG_MEMORY_HUMAN_DATABASE_LOCATION" -f json org schedule a1b 2026-03-15 -d "$ORG_MEMORY_HUMAN_DIR" --db "$ORG_MEMORY_HUMAN_DATABASE_LOCATION" -f json org note a1b 'Pushed back per manager request' -d "$ORG_MEMORY_HUMAN_DIR" --db "$ORG_MEMORY_HUMAN_DATABASE_LOCATION" org append a1b 'Meeting notes from standup.' -d "$ORG_MEMORY_HUMAN_DIR" --db "$ORG_MEMORY_HUMAN_DATABASE_LOCATION" -f json # Refile still requires explicit file paths org refile "$ORG_MEMORY_HUMAN_DIR/inbox.org" 'Review PR #42' "$ORG_MEMORY_HUMAN_DIR/work.org" 'Code reviews' --db "$ORG_MEMORY_HUMAN_DATABASE_LOCATION" -f json ``` ## Preview before writing Use `--dry-run` to see what a mutation would produce withou
activepieces
AI Agents & MCPs & AI Workflow Automation • (~400 MCP servers for AI agents) • AI Automation / AI Agent with MCPs • AI Workflows & AI Agents • MCPs for AI Agents
cherry-studio
AI productivity studio with smart chat, autonomous agents, and 300+ assistants.
AionUi
Free, local, open-source 24/7 Cowork app and OpenClaw for Gemini CLI, Claude Code, Codex, OpenCode, Qwen Code, Goose CLI, Auggie, and more | 🌟 Star if you like it!
CopilotKit
The Frontend for Agents & Generative UI. React + Angular
Machine-readable data
The same record, as JSON, for agents and crawlers.
{
"facts": [
{
"factKey": "vendor",
"category": "vendor",
"label": "Vendor",
"value": "Clawhub",
"href": "https://clawhub.ai/DCPRevere/org-memory",
"sourceUrl": "https://clawhub.ai/DCPRevere/org-memory",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "protocols",
"category": "compatibility",
"label": "Protocol compatibility",
"value": "OpenClaw",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-dcprevere-org-memory/contract",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-dcprevere-org-memory/contract",
"sourceType": "contract",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "traction",
"category": "adoption",
"label": "Adoption signal",
"value": "745 downloads",
"href": "https://clawhub.ai/DCPRevere/org-memory",
"sourceUrl": "https://clawhub.ai/DCPRevere/org-memory",
"sourceType": "profile",
"confidence": "medium",
"observedAt": "2026-04-15T00:45:39.800Z",
"isPublic": true
},
{
"factKey": "latest_release",
"category": "release",
"label": "Latest release",
"value": "0.3.1",
"href": "https://clawhub.ai/DCPRevere/org-memory",
"sourceUrl": "https://clawhub.ai/DCPRevere/org-memory",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-26T13:36:03.448Z",
"isPublic": true
},
{
"factKey": "handshake_status",
"category": "security",
"label": "Handshake status",
"value": "UNKNOWN",
"href": "https://www.xpersona.co/api/v1/agents/clawhub-dcprevere-org-memory/trust",
"sourceUrl": "https://www.xpersona.co/api/v1/agents/clawhub-dcprevere-org-memory/trust",
"sourceType": "trust",
"confidence": "medium",
"observedAt": null,
"isPublic": true
}
],
"events": [
{
"eventType": "release",
"title": "Release 0.3.1",
"description": "org-memory 0.3.1 changelog: - Added in-depth reference documentation: knowledge-management.md, memory-architecture.md, task-management.md. - Clarified and restructured SKILL.md for improved onboarding and environment setup. - Unified and simplified shortcut actions and command safety instructions in the documentation. - Updated install metadata and refined environment variable requirements. - Removed the legacy README.md file—key docs now live under references/.",
"href": "https://clawhub.ai/DCPRevere/org-memory",
"sourceUrl": "https://clawhub.ai/DCPRevere/org-memory",
"sourceType": "release",
"confidence": "medium",
"observedAt": "2026-02-26T13:36:03.448Z",
"isPublic": true
}
]
}Record generated Oct 9, 2026.
