By Kohei-Wada
Format-agnostic knowledge-base curation skill. Decides WHEN to capture, update, link, or prune long-term knowledge — defers HOW (format/conventions) to the vault's own README.
Use when an existing MOC and an existing child note need to be linked (bullet under the right MOC sub-heading, optionally a reciprocal back-link from the child). Atomic graph-edge insertion only — no surrounding prose, no section creation. Pairs with garden-water (content edits) and garden-plant (new notes).
Use when the user wants to turn vault knowledge into a published blog post — gathers the relevant permanent notes, shapes the post in a dialogue (no stored draft), masks PII, and emits it into the blog repo per that repo's own conventions. Triggers on "blog 化して", "記事化して", "publish this as a post", "ブログにして", "harvest these notes into a post".
Use when a reusable insight, decision, lesson, or piece of durable knowledge surfaces in conversation and should be captured to the user's long-term vault - proposes a new note formatted per the vault's own README conventions
Use when one or more named existing vault notes need to be removed — archived by default (git mv into the vault's documented archive folder, preserves history), hard-deleted only on explicit request. Surfaces inbound-link warnings but never auto-rewrites links. Pairs with garden-survey (find candidates) and garden-water (clean up links afterwards).
Use when the user wants to wrap up the current Claude Code session by writing what was worked on to today's daily note in the vault, so the next session can pick up context. Drives recap.manual_recap to upsert the per-session two-layer recap block (Timeline + KPT).
Matches all tools
Hooks run on every tool call, not just specific ones
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.
A Claude Code plugin for tending a long-term knowledge base from inside your coding sessions.
Decides when to capture, update, link, or prune durable knowledge in your external vault (Obsidian, a plain markdown folder, anything with a README). Defers how — note format, filename rules, link syntax, frontmatter, folder layout — to the vault's own README. This separation is the whole point.
The vault is the source of truth for how. This plugin is the source of truth for when.
Most "Obsidian-for-Claude" plugins hardcode a note format (PARA, Zettelkasten with Luhmann IDs, daily-note schemas, etc.). That makes them useful only if your vault matches the plugin's assumptions. The moment your vault has its own README spelling out conventions, those plugins fight you.
knowledge-gardener flips it: the plugin reads your vault's README before each operation and applies whatever conventions are documented there. Bring your own format.
Inside Claude Code:
/plugin marketplace add Kohei-Wada/knowledge-gardener
/plugin install knowledge-gardener@knowledge-gardener
Set the vault path in your shell:
export KG_VAULT=~/path/to/your/vault
export KG_BLOG_REPO=~/path/to/your/blog/repo # only needed for garden-harvest
Restart your Claude Code session.
Your vault MUST have a README.md that documents at least:
[[wikilink]], [md](rel-path.md), or both?The README can live at either:
$KG_VAULT/README.md — vault root (most specific, wins on conflict), or$KG_VAULT/../README.md — parent directory (common when the vault is a subdirectory of a git repo, e.g. Obsidian/vault/)garden-plant reads both and merges; folder-scoped READMEs (e.g. $KG_VAULT/06_People/README.md) are also consulted when relevant.
If no README is found in either location, garden-plant will refuse to write and tell you what's missing. That's intentional: silent defaults are how vaults end up inconsistent.
| Skill | What it does |
|---|---|
using-knowledge-gardener | Entry point — routes requests, declares the format contract |
garden-plant | (implemented) Capture a new durable insight as a vault note |
garden-survey | (implemented) Read-only search/listing primitive (text, tag, frontmatter, folder). Used directly and by other skills |
garden-water | (implemented) Update an existing note — append content, add a link, fix a tag or frontmatter field. Minimal-diff edits |
garden-recap | (implemented) Wrap up a session by writing what was worked on to today's daily note, so the next session can pick up context |
garden-connect | (implemented) Link an existing MOC and an existing child note — atomic graph-edge insertion, bi-directional by default |
garden-prune | (implemented) Remove a named note — archive by default (git mv into the vault's archive folder), hard-delete only on explicit request. Surfaces inbound-link warnings; cleanup goes through garden-water |
garden-harvest | (implemented) Turn mature vault knowledge into a published blog post — gather permanent notes, shape in dialogue (no stored draft), mask PII, emit into the blog repo (KG_BLOG_REPO) per that repo's conventions; commits, never pushes |
Starting in v0.8.0, knowledge-gardener ships a PostToolUse hook that records a one-line evidence entry per material tool call to:
$XDG_STATE_HOME/knowledge-gardener/sessions/<YYYY-MM-DD>-<sid8>.log
Default location: ~/.local/state/knowledge-gardener/sessions/. Modes 0700 (dir) / 0600 (file).
What gets recorded:
Edit, Write, NotebookEdit)Bash (after stripping cd <dir> && prefixes; trivial commands like ls, pwd, cat, grep, rg, wc, sort, date, etc. are filtered)Agent dispatches (subagent type + short description)WebFetch / WebSearch (URL or query)mcp__<server>__<name> + one identifying argument)What is skipped:
Read, ToolSearch, AskUserQuestion, …)TodoWrite, TaskCreate, TaskUpdate, …)npx claudepluginhub kohei-wada/knowledge-gardener --plugin knowledge-gardenerInterpersonal communication strategy toolkit: psychological profiling, behavioral analysis, and evidence-based communication rules
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.
Permanent coding companion for Claude Code — survives any update. MCP-based terminal pet with ASCII art, stats, reactions, and personality.
Build and maintain an LLM-curated personal knowledge base in your project — Andrej Karpathy's LLM Wiki pattern, designed to scale to thousands of pages without becoming a context bottleneck. Now with an optional compiled graph layer for typed, provenance-backed relationships.
Upstash Context7 MCP server for up-to-date documentation lookup. Pull version-specific documentation and code examples directly from source repositories into your LLM context.
Core skills library for Claude Code: TDD, debugging, collaboration patterns, and proven techniques
Harness-native ECC operator layer - 67 agents, 271 skills, 92 legacy command shims, reusable hooks, rules, selective install profiles, and production-ready workflows for Claude Code, Codex, OpenCode, Cursor, and related agent harnesses