Note Village

by Sébastien Dubois
5
4
3
2
1
Score: 36/100

Description

A 2D pixel art village where your Obsidian notes become villagers you can explore and chat with using AI.

Reviews

No reviews yet.

Stats

3
stars
853
downloads
1
forks
64
days
6
days
22
days
6
total PRs
6
open PRs
0
closed PRs
0
merged PRs
0
total issues
0
open issues
0
closed issues
73
commits

Latest Version

22 days ago

Changelog

2.0.0 (2026-08-29)

⚠ BREAKING CHANGES

  • plugin: minAppVersion moves from 1.8.7 to 1.13.0 — the declarative settings API (getSettingDefinitions) only exists there.

getSettingDefinitions() replaces display() wholesale: five groups of plain controls (text/slider/dropdown/toggle), the two exclusion lists as native type:'list' definitions with an inline suggester add-row (the framework's addItem cannot host the folder/tag autocomplete the old tab had), the API key as a masked render row, the regenerate action as a button row (a row action: draws no button), and the support block as a render row on the settings-stack class (unlayered — Obsidian's own .setting-item flex rule is unlayered and would win otherwise).

The write path is now a single serialized persist-then-commit updateSettings(mutator) on the plugin (immer): memory is swapped only after saveData() succeeds, overlapping writes derive from the committed state, and side effects run strictly after the commit — debug logging tracks the committed debugMode, village-shape writes regenerate the village. setControlValue rejects type mismatches, out-of-enum dropdown values and unknown keys instead of resolving.

14 new tests cover the write path; the persist-then-commit ordering and the serialization were each mutation-checked (deliberately regressed implementations fail them). 416 tests, tsc, lint --max-warnings 0 and build green — the prefer-setting-definitions advisory from the previous commit is now satisfied.

Features

  • plugin: declare the settings tab (Obsidian 1.13 declarative settings) (3af62b0)
  • plugin: show what's new in a tab instead of a modal dialog (8e943db)
  • plugin: surface support CTAs everywhere users can see them (393cfde)

Bug Fixes

  • build: align with the catalog reviewer's archive, ruleset and audit (92d3533)
  • plugin: harden the settings write surface after adversarial review (129df0e)

Enjoying this plugin?

README file from

Github

Note Village

A 2D pixel art village where your notes become villagers you can explore and chat with using AI.

Note Village transforms your Obsidian vault into an interactive JRPG-style world. Your notes become villagers that live in themed zones based on your tags, and you can have AI-powered conversations with them using Claude.

Features

  • Procedural village generation - Your vault's tags become zones, and notes become villagers placed in their respective zones
  • JRPG-style pixel art - Retro 16-bit style graphics with animated characters, buildings, and decorations
  • AI conversations - Chat with your notes using Claude (requires Anthropic API key)
  • Deterministic world - Same seed generates the same village layout every time
  • Customizable - Configure zones, villager limits, graphics quality, and more

How it works

  1. Tags become zones - The plugin analyzes your vault and uses your most frequent tags as themed zones in the village
  2. Notes become villagers - Notes tagged with those tags appear as villagers in their respective zones
  3. Explore your knowledge - Walk around the village with WASD/arrow keys or click to move
  4. Talk to your notes - Press C near a villager or right-click to start an AI conversation

Installation

Requires Obsidian 1.13.0 or newer (the plugin uses the declarative settings API introduced there).

  1. In Obsidian, go to Settings → Community plugins.
  2. Disable Restricted mode if it's enabled.
  3. Select Browse, search for Note Village, install it, then enable it.

You can also browse the catalog on the Obsidian Community website.

Manual installation

If the plugin isn't listed in the community catalog yet (or you want a specific version):

  1. Download main.js, manifest.json, and styles.css from the latest release.
  2. Copy them into <Vault>/.obsidian/plugins/note-village/.
  3. Reload Obsidian and enable Note Village in Settings → Community plugins.

BRAT (bleeding edge)

BRAT (Beta Reviewers Auto-update Tool) installs plugins straight from a GitHub repo and keeps them updated automatically. Use this if you want the latest commits — things might break.

  1. Install Obsidian42 - BRAT from Settings → Community plugins → Browse and enable it.
  2. Run BRAT: Add a beta plugin for testing from the command palette.
  3. Paste https://github.com/dsebastien/obsidian-note-village.
  4. Select the latest version and confirm.
  5. Enable Note Village in Settings → Community plugins.

Configuration

Open Settings > Note Village to configure:

Setting Description
Village seed Seed for procedural generation (empty = vault name)
Top tag count Number of tags to use as zones (3-20)
Max villagers Maximum number of villagers to display (10-500)
Excluded folders Folders to exclude from analysis
Excluded tags Tags to exclude from zone generation
Render quality Graphics quality (Low, Medium, High)
Anthropic API key Required for AI conversations
AI model Claude model for conversations
Save conversations Save chat history to vault
Conversation folder Folder for saved conversations
Debug mode Log verbose diagnostics to the console (off by default)

Usage

Opening the village

  • Click the village icon in the ribbon (left sidebar)
  • Or use the command palette: "Note Village: Open village"

Controls

Action Control
Move WASD or arrow keys
Move to location Left-click on ground
Start conversation Press C near villager, or right-click villager

AI conversations

To chat with your notes:

  1. Add your Anthropic API key in settings
  2. Approach a villager and press C (or right-click)
  3. The villager will respond based on the note's content

Conversations can be saved as markdown files in your vault.

Development

Prerequisites

Setup

git clone https://github.com/dsebastien/obsidian-note-village.git
cd obsidian-note-village
bun install

Commands

Command Description
bun run dev Development build with watch mode
bun run build Production build
bun run tsc:watch Type check in watch mode
bun run lint Run ESLint
bun run format Format with Prettier
bun test Run tests

Tech stack

  • TypeScript with strict configuration
  • Excalibur.js for game engine
  • Anthropic SDK for AI conversations
  • Zod for runtime validation
  • Tailwind CSS v4 for styling
  • Bun for package management and bundling
  • What's new after updates. After a plugin update, a one-time dialog shows the release notes you just received (including skipped versions) with ways to support development. Never shown on fresh installs or regular restarts.

License

MIT License - see LICENSE for details.

Author

Sebastien Dubois

My other Obsidian plugins

Plugin What it does
Agentic Resource Discovery Server Local-first Agentic Resource Discovery publisher and registry that serves your AI skills and tools to agents over a local HTTP and MCP server
Book Exporter Export books (one manifest note + linked chapter notes) to EPUB and PDF via Pandoc
Bookshelf Base Display your notes as a visual bookshelf via a custom Bases view
Dataview Serializer Serialize Dataview queries to Markdown, and keep the Markdown representation up to date
Expander Replace variables across your vault using HTML comment markers. Supports static values and dynamic functions
Ghost Publish Publish your vault notes to a Ghost blog with configurable presets for tags, newsletters, and frontmatter conventions
Graph Explorer Base View A custom Bases view that renders notes as an interactive force-directed graph with explored/unexplored tracking
Hidden Folders Access Index hidden root-level folders (e.g. .claude) so they appear in the file tree, metadata cache, and Bases
Journal Bases Custom Base views for journaling and periodic reviews
Kanban Action Planner Render your notes as configurable Kanban boards and calendars inside Bases, with statuses, ordering, relationships, and scheduling
Life Tracker Capture and visualize the data that matters in your life
Obsidian Starter Kit Adds strong typing support and powerful automation support for notes
Remarkable Synchronizer Connect to the reMarkable cloud, list, download, and sync notebook pages as images
Replicate Use AI models with ease via the Replicate.com integration
REST and MCP server Exposes CLI commands as RESTful API endpoints and an MCP server for AI tool integration
Time Machine Browse, compare, and restore previous versions of your notes using built-in file-recovery snapshots
Transcriber Transcribe images to markdown using Ollama vision models
Typefully Publish social media posts with ease using the Typefully integration
Update Time Automatically update front matter to include creation and last update times

Everything I build is documented in my newsletter and on my YouTube channel.

News & support

To stay up to date about this plugin, Obsidian in general, Personal Knowledge Management and note-taking:

If this plugin is useful to you, here are the best ways to support my work ❤️:

Found a bug or have an idea? Open an issue.