README file from
GithubMetadata Auto Classifier
AI-powered Obsidian plugin that analyzes your notes and generates tags and frontmatter values with a configurable AI provider.
The more context you give, the more accurate the classification.

Features
- Automatic tag generation -- AI analyzes note content and generates contextually relevant tags
- Custom frontmatter fields -- define any frontmatter fields and let AI populate them
- Classification rules -- set custom rules, tag categories, and field-specific guidelines
- Per-field context prompts -- provide additional context per metadata field to guide classification
- Test and preview -- built-in testing tools with preview mode before applying changes
- Multi-provider support -- built-in presets for OpenAI, Anthropic, Gemini, OpenRouter, Ollama, DeepSeek, LM Studio, and Codex (OAuth), plus custom providers
- Custom model configuration -- add and configure custom AI providers and models
Installation
Community Plugin (Recommended)
- Open Obsidian and navigate to Settings > Community Plugins
- Disable Safe Mode if currently enabled
- Click Browse and search for "Metadata Auto Classifier"
- Click Install, then Enable to activate the plugin
Beta via BRAT
Using BRAT:
- Install BRAT from the Obsidian Community Plugins browser
- In BRAT settings, click Add Beta plugin
- Enter the repository URL:
https://github.com/Xia-Ataraxia/obsidian-metadata-auto-classifier - Click Add Plugin to install

Usage
- Open any note you want to classify
- Open the Command Palette (Cmd/Ctrl + P) and run one of the commands below
- Review and refine AI-generated suggestions as needed
Commands
Each configured frontmatter field (including tags) gets its own command, plus one command for all fields:
| Command | Description |
|---|---|
Fetch frontmatter: <field> |
Update a specific frontmatter field (e.g. tags) for the active note |
| Fetch frontmatter: Fetch all frontmatter using current provider | Populate all configured frontmatter fields |
Settings
| Setting | Description |
|---|---|
| AI Provider | Select a preset provider or a custom provider |
| Model | Choose or configure the model used for classification |
| Custom frontmatter fields | Define which frontmatter fields AI should generate |
| Classification rules | Set rules and categories for how tags/fields are generated |
| Field-specific prompts | Provide per-field context to guide AI output |
More background: docs/Why I made this plugin.md, docs/Architecture.md, docs/Classification-Workflow.md.
Development
pnpm install
pnpm dev # vault selection + esbuild watch + hot reload
pnpm build # tsc type-check + production build
pnpm test # Vitest unit tests
pnpm test:watch # Vitest watch mode
pnpm test:coverage # Vitest with coverage report
pnpm lint # ESLint
pnpm run ci # build + lint + test
pnpm release:patch # also release:minor / release:major
Tech Stack
| Category | Technology |
|---|---|
| Platform | Obsidian Plugin API |
| Language | TypeScript 5 |
| Bundler | esbuild |
| Testing | Vitest (with coverage) |
| Linting | ESLint 9 (flat config) |
Project Structure
obsidian-metadata-auto-classifier/
├── src/
│ ├── main.ts # Plugin entry point
│ ├── domain/ # Presets, auth, core logic
│ ├── ui/ # Commands, providers, settings UI
│ └── utils/ # Pure utilities
├── __tests__/ # Vitest tests
├── __mocks__/ # Obsidian API mock
├── scripts/ # dev.mjs, version.mjs, release.mjs
├── boiler.config.mjs # Per-repo config
└── manifest.json # Obsidian plugin manifest
Inspiration
- UI design inspired by Obsidian Web Clipper
- Codex API integration inspired by Smart Composer
Support
For questions, issues, or feature requests, please visit the GitHub repository.
License
This project is licensed under the MIT License.