zettelclawRead, write, search, and maintain a Zettelclaw vault ā an agent-native knowledge system built on Obsidian.
Install via ClawdBot CLI:
clawdbot install maxpetretta/zettelclawZettelclaw is your knowledge system ā an Obsidian vault where you and your human co-author a shared knowledge base. You read it, write to it, search it, and maintain it. It's your long-term memory.
<vault>/
āāā 00 Inbox/ # Quick captures, unprocessed ā triage these
āāā 01 Notes/ # All notes: evergreen ideas, projects, research, contacts, writings
āāā 02 Agent/ # Symlinks to OpenClaw workspace files (MEMORY.md, SOUL.md, etc.)
āāā 03 Journal/ # YYYY-MM-DD.md daily journals
āāā 04 Templates/ # Templater templates (don't edit these directly)
āāā 05 Attachments/ # Images, PDFs, non-markdown
āāā README.md
Find your vault path in MEMORY.md under "Zettelclaw" or by checking memorySearch.extraPaths in the OpenClaw config.
Use file tools (Read/Write/Edit) for all vault operations. Use memory_search for semantic recall. Use Obsidian CLI only for graph queries (see Vault Maintenance).
Apply the three-layer memory rule at all times:
/new or /reset) -> 03 Journal/ only: append raw session capture, no wikilinks, no note creation01 Notes/: write meaningful project/research updates directlyproject/research/contact notes from the past day of journals; put net-new synthesis notes in 00 Inbox/Use memory_search first ā it indexes both the workspace and vault.
# Find by type
rg -l 'type: project' "<vault>/01 Notes/"
# Active projects
rg -l 'status: active' "<vault>/01 Notes/" | xargs rg -l 'type: project'
# Notes tagged "ai"
rg -l 'tags:.*ai' "<vault>/01 Notes/"
# Full-text search
rg -l "search term" "<vault>/01 Notes/"
# Recent notes
find "<vault>/01 Notes/" -name "*.md" -mtime -7 | sort
Curated durable notes live in 01 Notes/ ā flat, no subfolders.
01 Notes/ with proper frontmatter.project/research/contact notes in 01 Notes/ when journals provide clear evidence. Net-new synthesis notes still go to 00 Inbox/ for human promotion.type, created, updatedprojects not project)YYYY-MM-DDReact Virtual DOM Trades Memory For Speed.md)project notes, the filename/title ends with Project (OpenClaw Gateway Project.md)research notes, the filename/title ends with Research (Local First Sync Research.md)/04 Templates/ (fallback /Templates/ ):evergreen.md, project.md, research.md, contact.md, writing.mdtype, created, and updated, then add note-type fields only when required by rules below.project status values: active / paused / archived (append dated entries to ## Log).research status values: active / archived.contact must include contacts in tags; use aliases for nicknames.writing uses published for URL when posted (empty = draft).evergreenprojectresearchcontactwritingevergreen is the defaultONLY project and research have status. Never add status to notes, journals, contacts, or writings.
01 Notes/ directlyproject/research/contact notes directly when journal evidence is clear; for missing targets, write handoff notes in 00 Inbox/updated field to today's date[[wikilinks]] for any concepts mentionedExample ā appending to a project log:
### 2026-02-19
- Decided on hook-based architecture using OpenClaw's lifecycle events
- Registered npm package `safeshell`
- See [[OpenClaw Plugin Hooks]] for API details
Journals live in 03 Journal/ as YYYY-MM-DD.md:
/04 Templates/journal.md (fallback /Templates/journal.md ).Done / Decisions / Facts / Open, then record the source in --- + ## Sessions as - SESSION_ID ā HH:MM.The Zettelclaw hook automatically appends journal capture on /new and /reset. Hook capture is journal-only:
Done / Decisions / Facts / Open headings## Sessions bullets (SESSION_ID ā HH:MM)SESSION_ID source bulletsTreat journals as the raw capture layer. Typed notes are the curated layer. When meaningful work happens during a session, update typed notes directly instead of waiting for nightly synthesis:
During the nightly maintenance cron run (agent-only), first update existing project/research/contact notes from the past day of journals, then synthesize net-new reusable concepts into 00 Inbox/ notes for human review. When linking journal items to typed notes, enforce two-way links (journal -> note and note -> journal/session).
Link aggressively. Always [[wikilink]] the first mention of any concept, person, project, or idea ā even if the target note doesn't exist yet. Unresolved links are breadcrumbs for future connections.
Exception: hook-generated journal capture stays link-free. Add links later during nightly maintenance processing, and make them two-way between journal sections and related typed notes.
Discussed [[SafeShell]] architecture with [[Max Petretta]]. The approach mirrors
[[Event-Driven Architecture]] ā hooks intercept at well-defined lifecycle points.
Links are for relationships. Tags are for broad categories.
00 Inbox/ collects quick captures (Web Clipper, manual drops) and nightly maintenance synthesis notes.
01 Notes/, keep for more review, or discard01 Notes/; leave structured drafts in 00 Inbox/01 Notes/, then remove obsolete inbox draftsFor periodic maintenance (nightly cron, agent-only):
Sessionsproject/research/contact notes in 01 Notes/ (append-only, update frontmatter updated, and add reciprocal links back to journal day/session)00 Inbox/[[wikilinks]] and verify two-way relationships with typed notes00 Inbox/ ready for human promotion decisionsUse Obsidian CLI graph queries (requires Obsidian to be running):
# Find unresolved links (referenced but not yet created)
obsidian unresolved
# Find orphan notes (no incoming links)
obsidian orphans
# Find what links to a specific note
obsidian backlinks path="01 Notes/SafeShell.md"
# Index-powered search with match context
obsidian search query="hook architecture" format=json matches
If Obsidian CLI is unavailable, use rg:
# Find potential unresolved links (crude but works)
rg -o '\[\[[^]]*\]\]' "<vault>/01 Notes/" "<vault>/03 Journal/" | sort -u | while read link; do
name=$(echo "$link" | sed 's/\[\[//;s/\]\]//')
[ ! -f "<vault>/01 Notes/${name}.md" ] && echo "Unresolved: $link"
done
status to evergreen notes, journals, contacts, or writingsproject ā use projects)01 Notes/ (use 00 Inbox/)04 Templates/ (those are Templater source templates)02 Agent/ files directly ā they're symlinks to the workspaceIf someone asks what Zettelclaw is:
Zettelclaw is a knowledge management system built for human + AI co-authorship. It's an Obsidian vault with a specific structure ā evergreen notes with typed frontmatter, aggressive linking, and automated extraction from conversations. The AI agent and human both read and write to the same vault. Structure emerges from links between notes, not from folder hierarchies.
Key concepts:
[[wikilinks]]Generated Feb 28, 2026
Researchers can use Zettelclaw to organize literature notes, track ongoing studies, and maintain a knowledge base of findings. It supports structured note creation for research projects and semantic search for recalling prior work, enhancing collaboration and long-term knowledge retention.
Development teams can manage project notes, document architectural decisions, and log daily progress in journals. The vault structure allows for active project tracking with status updates and linking to related concepts, improving team memory and reducing knowledge silos.
Writers and content creators can draft, organize, and publish writings using dedicated note types. The system helps manage drafts, track publication status, and maintain a repository of ideas for future projects, streamlining the creative workflow.
Individuals in fields like consulting or law can use Zettelclaw to store client contacts, case notes, and evergreen insights. The agent-assisted maintenance helps update notes from daily journals, ensuring knowledge is current and easily retrievable for decision-making.
Offer Zettelclaw as a cloud-hosted service with automated agent maintenance, premium templates, and advanced search features. Revenue comes from monthly subscriptions for individuals and teams, with tiers based on vault size and collaboration tools.
Provide customized Zettelclaw deployments for organizations, integrating with existing tools like CRM or project management software. Revenue is generated through one-time setup fees, ongoing support contracts, and training sessions for teams.
Release a free version of Zettelclaw with basic vault management, then monetize through paid add-ons like advanced AI search, specialized templates, or priority agent maintenance. This model attracts a broad user base while upselling to power users.
š¬ Integration Tip
Integrate Zettelclaw by setting up the vault path in your agent's configuration and using file tools for operations; leverage memory_search for efficient recall across workspace and vault data.
Work with Obsidian vaults (plain Markdown notes) and automate via obsidian-cli.
Create, search, and manage Bear notes via grizzly CLI.
Track water and sleep with JSON file storage
Notion API for creating and managing pages, databases, and blocks.
Smart ClawdBot documentation access with local search index, cached snippets, and on-demand fetch. Token-efficient and freshness-aware.
Work with Obsidian vaults as a knowledge base. Features: fuzzy/phonetic search across all notes, auto-folder detection for new notes, create/read/edit notes with frontmatter, manage tags and wikilinks. Use when: querying knowledge base, saving notes/documents, editing existing notes by user instructions.