karx72 downloadsDigital garden pipeline: inbox scoring, LLM-powered frontmatter enrichment, and WikiLink suggestions — no terminal needed.
Obsidian Plugin — A PROCESS → TRIAGE → PUBLISH pipeline for digital garden vaults.
Bring your digital gardening workflow natively into Obsidian. Inbox scoring, LLM-powered frontmatter enrichment, and WikiLink suggestions — no terminal, no Python, no manual copy-paste.
| Component | What it does |
|---|---|
| 🌱 Garden Sidebar | Live scored inbox queue · maturity stats · stage buttons |
| ⚙️ Settings Tab | Provider (Gemini / OpenAI / Anthropic / Ollama) · model · API key |
| 📋 Process Command | Mod+Shift+G → LLM suggests frontmatter + WikiLinks → diff modal |
| 🌿 Publish Command | Enriches note + sets published: true with approval gate |
| 📊 Triage Modal | Sortable full-queue table · per-row actions · save report |
| 🪨🌱🌿🌳 Status Bar | Maturity icon for the active note |
| 🍃 Ribbon Badge | Count of high-score notes not yet published |
Notes in your inbox folders are automatically scored using three signals:
score = name_quality (×0.4) + frontmatter_completeness (×0.3) + maturity (×0.3)
| Maturity | Word count | Score |
|---|---|---|
| 🪨 STUB | < 50 words | 0.1 |
| 🌱 SEED | 50–249 words | 0.4 |
| 🌿 BUDDING | 250–699 words | 0.7 |
| 🌳 EVERGREEN | 700+ words | 1.0 |
Notes with a total score ≥ 0.7 appear highlighted in the sidebar as ready to process.
karx/kaaroGardenmain.js, manifest.json, styles.css from the latest release.obsidian/plugins/ebrain-gardener/ in your vaultInbox, 0_Inbox)Mod+Shift+G to process it| Setting | Default | Description |
|---|---|---|
| Provider | gemini |
LLM provider for AI suggestions |
| Model | gemini-2.0-flash |
Model (options update per provider) |
| API Key | — | Stored in data.json — never sent to Anthropic/the plugin's servers |
| Ollama Base URL | http://localhost:11434 |
Only needed for local Ollama models |
| Inbox Folders | Inbox, 0_Inbox |
Comma-separated folders to score |
| Triage Report Path | Garden Triage Report.md |
Where to write the scored queue markdown report |
| Skill Prompt Path | (empty) | Optional vault path to a custom system prompt file |
API keys are stored in .obsidian/plugins/ebrain-gardener/data.json. If you sync your vault to the cloud, add .obsidian/plugins/ebrain-gardener/data.json to your sync exclusion list — or use Ollama for a fully local, key-free setup.
| Provider | Notes |
|---|---|
| Google Gemini | Default. gemini-2.0-flash — fast and cheap. |
| OpenAI | gpt-4o, gpt-4o-mini, gpt-4-turbo |
| Anthropic | claude-3-5-sonnet-20241022, claude-3-haiku-20240307 |
| Ollama | Local models — no API key needed. Install Ollama first. |
| Command | Default Shortcut |
|---|---|
| Process active note (Stage 1) | Mod+Shift+G |
| Publish active note (Stage 3) | — |
| Open triage queue | — |
| Score inbox & refresh sidebar | — |
| Open Garden Sidebar | — |
All commands are accessible via the Command Palette (Mod+P).
By default, the plugin uses a built-in system prompt based on the PARA framework and digital gardening conventions. You can override it with your own:
Resources/SKILL.md)This lets you tune the LLM's tagging taxonomy, frontmatter schema, or writing style to match your vault's conventions.
This plugin makes outbound HTTPS requests only when you explicitly trigger a Process or Publish command, and only to the LLM provider you configure in settings:
| Provider | Endpoint called |
|---|---|
| Google Gemini | https://generativelanguage.googleapis.com |
| OpenAI | https://api.openai.com |
| Anthropic | https://api.anthropic.com |
| Ollama | http://localhost:11434 (local — no internet) |
No data is sent to the plugin author's servers. Your vault content (the active note's frontmatter and body) is sent to whichever provider you choose, subject to that provider's privacy policy. API keys are stored locally in data.json and never leave your device except as the Authorization header sent to your chosen provider.
git clone https://github.com/karx/kaaroGarden.git
cd ebrain-gardener
npm install
cp .env.example .env
# Edit .env: VAULT_PATH=/path/to/your/vault
npm run dev
Builds in watch mode and copies main.js, manifest.json, styles.css to .obsidian/plugins/ebrain-gardener/ on every change. Reload Obsidian with Ctrl+R.
npm run build
ebrain-gardener/
main.ts Plugin entry point
styles.css Plugin styles
manifest.json Obsidian plugin metadata
esbuild.config.mjs Build config
scripts/
deploy.mjs Auto-copy to vault after build
src/
scoring.ts Inbox scoring engine
settings/
types.ts Settings interface + defaults
secrets.ts API key storage
SettingsTab.ts Settings UI
llm/
provider.ts Vendor-agnostic LLM interface
gemini.ts Gemini adapter
openai.ts OpenAI + Anthropic adapter
ollama.ts Ollama adapter
skill/
prompt.ts Skill prompt loader + prompt builders
views/
GardenSidebar.ts Sidebar ItemView
TriageModal.ts Triage queue modal
ui/
FrontmatterDiff.ts Diff modal + WikiLink chips
commands/
noteCommands.ts Process + Publish handlers
Copyright (C) 2026 karx
This program is free software: you can redistribute it and/or modify it under the terms of the GNU Affero General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
The source code is available at github.com/karx/kaaroGarden.
MIT © karx