By henrywen98
AI-powered Obsidian vault organizer — atomize inbox into Zettelkasten notes, build links, maintain MOC navigation
This skill should be used when the user asks to "process inbox", "ingest notes", "organize inbox", "zet ingest", "digest notes", "process new notes", "clean up inbox", "handle new materials", "run zettelkasten", or has new files in 0_inbox/ to process. Orchestrates Zettelkasten ingestion: scans inbox, dispatches zet-worker agents in sequential batches, updates MOCs, and commits. The most frequently used daily command. Accepts optional target argument: file path or glob pattern (e.g. 0_inbox/*.md). Omit to process all .md files in 0_inbox/.
This skill should be used when the user asks to "check knowledge base", "zet lint", "vault health", "any broken links", "check frontmatter", "find orphan notes", "what's wrong with the vault", "knowledge base health", or wants a structural health check of their Zettelkasten.
This skill should be used when the user asks to "search knowledge base", "query notes", "zet query", "find in my notes", "what did I write about", "search my notes", "find notes about", "what do I know about", or wants to ask questions against their Zettelkasten knowledge base. Supports quick (MOC + index only) and deep (reads full notes) modes. Usage: /zet-query <question> [depth]. Depth: quick (MOC + grep only) | deep (reads full notes, default).
Uses power tools
Uses Bash, Write, or Edit tools
Own this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimOwn this plugin?
Verify ownership to unlock analytics, metadata editing, and a verified badge. GitHub access is read-only (username + org membership).
Sign in to claimBased on adoption, maintenance, documentation, and repository signals. Not a security audit or endorsement.
Automatically organize your Obsidian vault using the Zettelkasten method. Drop files into inbox, AI atomizes content into permanent atomic notes, builds wikilinks, and maintains Maps of Content (MOC) — powered by Claude Code.
Zero dependencies. No Python, no scripts — pure Claude Code skills + agents.
You clip articles, jot ideas, save snippets — and they pile up in a folder, unlinked and forgotten. Manual note organization doesn't scale. Your second brain stays dumb.
This plugin turns your Obsidian vault into a self-organizing knowledge base:
# In Claude Code
/plugins install github:henrywen98/zettelkasten
cd /path/to/your/obsidian/vault
mkdir -p 0_inbox 1_zettel 2_maps 3_output 4_assets
git init # recommended for version safety
Drop any files (notes, web clips, article exports) into 0_inbox/, then:
cd /path/to/your/vault
claude
> /zet-ingest
That's it. Atomic notes appear in 1_zettel/, organized by year-month, interlinked, with MOC navigation in 2_maps/.
/zet-ingest — Inbox to Knowledge BaseThe core workflow. Scans 0_inbox/, dispatches AI agents to process files in batches of ~10, then updates MOCs and commits via git.
Each file goes through: read → classify → atomize → rewrite → frontmatter → link → write.
0_inbox/weekly-learning.md → 1_zettel/2026-04/ssh-key-authentication.md
(SSH + Python decorators + Docker) 1_zettel/2026-04/python-decorator-patterns.md
1_zettel/2026-04/docker-compose-networking.md
/zet-query — Ask Your Knowledge BaseQuery your accumulated knowledge in natural language. The AI navigates MOCs and note links, reads relevant notes, and synthesizes an answer with [[wikilink]] citations.
> /zet-query What do I know about authentication?
Output saved to 3_output/ with full source references.
/zet-lint — Vault Health CheckStructural integrity scanner:
Auto-fix offered for common issues.
Vault/
├── 0_inbox/ Drop materials here (deleted after processing)
├── 1_zettel/ Permanent notes — atomic, linked, by year-month
│ └── YYYY-MM/ e.g. 2026-04/
├── 2_maps/ Maps of Content — auto-maintained topic navigation
├── 3_output/ Query results, lint reports
└── 4_assets/ Images and attachments
Every permanent note follows a consistent structure with YAML frontmatter:
---
id: "202604061430"
title: "SSH Key Authentication"
created: 2026-04-06
processed: 2026-04-06
source: web-clip # original | web-clip | import
tags: [ssh, security, devops]
summary: "How SSH key-based authentication works — key generation, exchange, and verification flow"
---
# SSH Key Authentication
[Note content in clear prose...]
## Links
- Related to [[tls-handshake-protocol]]: both use asymmetric cryptography for initial authentication
- See [[server-hardening-checklist]]: SSH key auth is a key step in hardening
/zet-ingest
│
▼
zet-ingest (skill) ← Orchestrator: scan, batch, dispatch, MOC, commit
│
├── zet-worker (agent) ← Batch 1: read → atomize → rewrite → link → write
├── zet-worker (agent) ← Batch 2: can link to batch 1's notes
└── ... ← Sequential processing, each batch commits before next
npx claudepluginhub henrywen98/zettelkasten --plugin zettelkastenUltra-compressed communication mode. Cuts ~75% of tokens while keeping full technical accuracy by speaking like a caveman.
Comprehensive UI/UX design plugin for mobile (iOS, Android, React Native) and web applications with design systems, accessibility, and modern patterns
Multi-model consensus engine integrating OpenAI Codex CLI, Gemini CLI, and Claude CLI for collaborative code review and problem-solving.
Curate auto-memory, promote learnings to CLAUDE.md and rules, extract proven patterns into reusable skills.