Install
openclaw skills install @goog/znoteCreate, manage, and operate a Zettelkasten slip-box note system using the zk.py CLI script. Use this skill whenever a user wants to build or use a Zettelkasten note system, manage atomic notes, create fleeting/literature/permanent notes, link notes together, find orphaned notes, generate Maps of Content, or search/browse a note vault. Trigger on phrases like "zettelkasten", "slip box notes", "atomic notes", "permanent notes", "znote", "zk notes", "note vault", "create a note", "link my notes", "find orphaned notes", "map of content", or "manage my notes with zk".
openclaw skills install @goog/znoteA single-file Python CLI tool (zk.py) implementing the full Zettelkasten method as described in the Desktop Commander / Obsidian Practical Setup Guide. No dependencies beyond Python 3.8+ stdlib. Creates and manages a local markdown vault compatible with Obsidian.
ZK_VAULT environment variable to set vault location (default: ~/Zettelkasten)EDITOR environment variable for note editing (default: nano)~/Zettelkasten/
00-Inbox/ ← fleeting notes (quick captures)
10-Literature/ ← one note per source, in your own words
20-Permanent/ ← atomic notes, one idea, fully linked
30-MOC/ ← Maps of Content (navigation layers)
40-Templates/ ← markdown templates for each type
Copy zk.py to /mnt/user-data/outputs/zk.py and present it to the user via present_files. Also deliver README.md.
chmod +x zk.py
cp zk.py ~/.local/bin/zk # optional: make globally available
export ZK_VAULT=~/Zettelkasten # add to ~/.bashrc or ~/.zshrc
python3 zk.py init
# Creates all 5 folders + 4 markdown templates
Capture (fleeting note, no friction):
zk new fleeting
Process inbox weekly (flags notes older than 7 days):
zk inbox
Write permanent notes (one atomic idea per note):
zk new permanent "Claim written as a full sentence"
Link notes — edit the ## Connections section and add [[note-stem]] links.
Promote fleeting → permanent:
zk promote "fragment of title"
Generate Map of Content when a topic has 8+ notes:
zk moc "Topic Name"
zk links # find orphaned notes (no links in/out)
zk links "note title" # show forward + backlinks for one note
zk graph # ASCII link graph of entire vault
zk stats # counts, top tags, orphan count
zk search "query" # full-text search with highlights
zk list --folder permanent # list notes in a specific folder
zk list --tag psychology # filter by tag
zk.py — single-file Python CLI, ~400 lines, no dependenciesREADME.md — full usage guide with workflow and tips| Type | Folder | Filename pattern | Template fields |
|---|---|---|---|
| Fleeting | 00-Inbox/ | {timestamp}.md | created, status |
| Literature | 10-Literature/ | {date}-{slug}.md | created, status, source, author, tags |
| Permanent | 20-Permanent/ | {date}-{slug}.md | created, status, tags, source, Connections, Source |
| MOC | 30-MOC/ | MOC-{slug}.md | created, status, tags, linked notes |
"Attention is a finite resource" not "Attention"[[link]]#psychology), not fine-grained ones[[double-bracket]] wiki-link syntax identical to Obsidian — vaults are fully interoperablezk graph marks missing link targets with ⇢? in red--no-edit flag on new, promote, moc skips opening the editor (useful for scripting)ZK_VAULT env var overrides --vault flag and default pathzk promote command fuzzy-matches on filename and note body content