Declan Holmes-Carr205 downloadsA visual garden of your vault — each note is a plant whose health reflects how recently you've edited it and how well it's linked.
Your vault as a living garden. Every note is a plant whose health reflects how recently you've touched it and how well it's connected — so at a glance you can see what's thriving and what needs tending.

Graph View tells you what links to what. Vault Garden tells you what needs tending. A flourishing, flowering plant is a note you edit often and link well. A big, browning tree is an important note you've neglected. A wilted sprout with moss creeping in is a stale orphan you can prune.
Nothing here is a separate game state you have to maintain — the garden is always a true reflection of your vault's real metadata. Edit a note and it perks back up; ignore one and it slowly, gently wilts (logarithmically — a note untouched for a year gets weedy, it never "dies"). Everything is local; no backend, no telemetry.
The living garden — a beautiful, at-a-glance read on vault health.
Tend it — gardening gestures that map to real vault operations.
Make it yours — theme packs.
themes/ folder. See
docs/THEME-PACKS.md.Keep it focused — decide what's in the garden and when it opens.
#garden-hide, in
frontmatter or inline). Case-insensitive, and the tag word is configurable.Five plant species, each shown fresh and wilting — the same note greens and stands upright when you edit it, then browns and droops as it goes stale:

Seasonal atmosphere — a subtle tint plus drifting particles (spring petals, summer pollen, autumn leaves, winter snow), by the real date or your choice:

Theme packs re-skin the whole garden — the three built-in themes below, plus
palette or sprite packs you drop into the themes/ folder:

Manual install (until it's on the community list):
main.js, manifest.json, and styles.css from the
latest release.<your-vault>/.obsidian/plugins/vault-garden/.Open the garden from the ribbon (the sprout icon) or the command palette
(Vault Garden: Open garden).
| Gesture | What it does |
|---|---|
| Click a plant | Open the note |
| Hover a plant | Info card (title, state, last edited, links) |
| Drag a plant → another bed | Move the note to that folder |
| Drag a plant → shed | Archive the note |
| Drag a plant → compost | Delete to trash (confirm) |
| Drag a plant → watering can | Refresh the note's freshness |
| Click the watering can | Pick it up; click plants to water; Esc to drop |
| Drag a plant on the lawn / its bed | Place it there (remembered) |
| Drag a bed by its signpost | Move the whole plot |
| Drag empty ground / scroll | Pan / zoom |
Settings let you tune the scoring (freshness half-life, connectivity saturation), the archive folder, the season, the theme, and update debounce.
Keep notes out of the garden, and choose when it opens:
#garden-hide, set in
frontmatter or inline). Change the tag word or leave it blank to disable;
matching is case-insensitive.Two independent axes, each normalised to 0..1:
0.5 ^ (daysSinceModified / halfLifeDays). Drops fast then
flattens; never reaches zero.min(1, links / saturation). Saturating, so a hub isn't
ten times an averagely-linked note.Freshness drives vitality (colour, droop, wilt); connectivity drives stature (size); together they pick a stage (seed → sprout → growing → flowering → wilting). See docs/ARCHITECTURE.md.
npm install
npm run dev # esbuild watch — rebuilds main.js on change
npm test # unit tests (pure model + layout)
npm run build # type-check + production bundle
Symlink the repo into a test vault to try it live:
ln -s "$(pwd)" /path/to/YourVault/.obsidian/plugins/vault-garden
The codebase is built to be forked — pure domain logic, a single Obsidian
adapter, and Renderer / Layout seams. Start with
docs/ARCHITECTURE.md, then
docs/CONTRIBUTING.md for the dev loop and extension
recipes.
Phases 1–3 are complete. On the backlog (unscheduled — contributions welcome):
Full list in docs/ROADMAP.md.
MIT © Declan Holmes-Carr