Vault Insights
pendingby Tomas Gear
Generate daily summaries, aggregate todos, analyze topics, and visualize your vault content.
Vault Insights
Generate actionable insights from your Obsidian vault - daily/weekly summaries, aggregated todo lists, topic analysis, and content visualizations.
No external services. No API keys. Fully offline.
Features
Daily & Weekly Summaries
Automatically generate markdown notes summarizing your vault activity:
- Notes created and modified in the period
- Scheduled generation at a configurable time
- Choose calendar weeks (SunβSat) or rolling lookback windows
- Word count tracking with "Most Active Note" highlight
- Task completion statistics
- Topic distribution with Mermaid charts
- Direct links to touched notes
- Navigation links between daily and weekly summaries
- Optional AI-powered summaries via local Ollama
- Auto-opens generated notes in the editor
Aggregated Todo List
Create a unified task list from your entire vault or specific folders:
- Extract all
- [ ]and- [x]tasks - Group by source file, due date, or tag
- Smart sorting by due date (earliest first)
- Overdue highlighting with warning callouts
- Track completion progress with visualization
- Support for due date syntax (
π 2024-01-26ordue:: 2024-01-26) - Toggle completed tasks visibility
Topic Frequency Analysis
Understand what you write about most:
- Tag frequency across your vault
- Heading patterns (H1 and H2)
- Internal link analysis
- Visual charts showing topic distribution
- Optional AI-powered topic extraction via Ollama
Content Visualization
Charts embedded directly in your generated notes:
- Pie/doughnut charts: Content distribution by topic or folder
- Bar charts: Topic frequency, daily activity
- Timelines: Note creation over time
- Tables: Ranked topic listings
Two rendering engines available:
- Mermaid (default) β Native Obsidian support, zero dependencies, works on mobile
- Chart.js β Interactive canvas-based charts with hover tooltips, theme-aware colors
Installation
From Community Plugins (Recommended)
- Open Obsidian Settings
- Go to Community Plugins β Browse
- Search for "Vault Insights"
- Click Install, then Enable
Manual Installation
- Download
main.js,manifest.json, andstyles.cssfrom the latest release - Create a folder
vault-insightsin your vault's.obsidian/plugins/directory - Copy the downloaded files into this folder
- Restart Obsidian and enable the plugin in Settings β Community Plugins
Commands
| Command | Description |
|---|---|
| Generate daily summary | Create a summary note for today's vault activity |
| Generate weekly summary | Create a summary note for the current week |
| Generate todo list | Aggregate all tasks from configured folders |
| Generate pending todo list | Create a clean list of uncompleted tasks |
| Analyze vault topics | Generate topic frequency analysis |
| Refresh all insights | Regenerate all insight notes |
Access these commands via the Command Palette (Ctrl/Cmd + P).
Settings
Summary Settings
| Setting | Description | Default |
|---|---|---|
| Summary Folder | Where generated notes are saved | Insights |
| Daily Summary | Enable daily summary generation | On |
| Weekly Summary | Enable weekly summary generation | On |
| Summary Time | Scheduled generation time | 09:00 |
| Use Calendar Weeks | Weekly summaries use SundayβSaturday | On |
Todo Settings
| Setting | Description | Default |
|---|---|---|
| Source Folders | Folders to scan for tasks (empty = all) | [] |
| Exclude Folders | Folders to skip when scanning | templates, archive |
| Group By | How to organize tasks | file |
| Include Completed | Show completed tasks in the list | Off |
Topic Analysis Settings
| Setting | Description | Default |
|---|---|---|
| Topic Sources | What to analyze (tags, headings, links) | tags, headings |
| Max Topics | Maximum topics to display | 20 |
Visualization Settings
| Setting | Description | Default |
|---|---|---|
| Chart Type | Rendering engine for charts | mermaid |
| Max Chart Items | Maximum items in charts | 10 |
Both Mermaid and Chart.js are fully supported.
Section Visibility
Customize which sections appear in generated summaries:
| Setting | Description | Default |
|---|---|---|
| Show AI Summary | Include AI-generated summary section | On |
| Show Charts | Include charts and visualizations | On |
| Show File List | Include list of notes touched | On |
| Show Topic Table | Include topic rankings table | On |
Ollama Integration (Optional)
| Setting | Description | Default |
|---|---|---|
| Enable Ollama | Use local LLM for smart extraction | Off |
| Ollama URL | Local Ollama server address | http://localhost:11434 |
| Ollama Model | Model to use for extraction | llama3 |
Generated Note Structure
All generated notes include:
- YAML frontmatter with metadata (generator, date range, tags)
- AI Summary section (when Ollama is enabled)
- Overview section with key statistics
- Mermaid visualizations for data
- Detailed listings with wikilinks to source notes
Example output structure:
Insights/
βββ Daily/
β βββ Daily Summary - 2024-01-26.md
βββ Weekly/
β βββ Weekly Summary - 2024-01-21 to 2024-01-27.md
βββ Todos/
β βββ Todo List - 2024-01-26.md
βββ Vault Insights - 2024-01-26.md
Example frontmatter:
---
title: "Daily Summary - 2024-01-26"
generated: 2024-01-26T10:00:00.000Z
generator: daily-summary
period: daily
startDate: 2024-01-26
endDate: 2024-01-26
tags: [vault-insights, daily-summary]
---
AI Features (Optional)
Vault Insights supports optional AI-powered features via Ollama, a local LLM runner:
- AI Summaries: Natural language summaries of your daily/weekly activity
- AI Topics: Identifies themes from your note content
Setup
- Install Ollama
- Pull a model:
ollama pull llama3 - Start Ollama:
ollama serve - Enable in plugin settings and test the connection
Privacy and network disclosure
When Ollama is enabled, the plugin sends note content to your locally running Ollama instance over HTTP (localhost:11434 by default). No data is sent to any external server.
- All AI processing happens locally on your machine
- Only the configured localhost URL is contacted
- Non-localhost URLs trigger a console warning
- Ollama runs entirely offline once models are downloaded
- AI features gracefully degrade if Ollama is unavailable
Note: Ollama features are desktop-only. Mobile users get all other features.
Tech Stack
| Component | Technology |
|---|---|
| Language | TypeScript (strict mode) |
| Runtime | Obsidian (Electron + Mobile) |
| Build | esbuild |
| Visualizations | Mermaid (native) + Chart.js (interactive) |
| AI | Ollama (optional, local-only) |
Development
Prerequisites
- Node.js 16+
- npm
Setup
# Clone the repository
git clone https://github.com/nexio-t/obsidian-plugin.git
cd vault-insights
# Install dependencies
npm install
# Build for development (with watch mode)
npm run dev
# Build for production
npm run build
# Type checking
npm run typecheck
# Linting
npm run lint
# Run tests
npm test
# Run tests with coverage
npm run test:coverage
Project Structure
vault-insights/
βββ main.ts # Plugin entry point
βββ manifest.json # Obsidian plugin manifest
βββ package.json # Dependencies and scripts
βββ tsconfig.json # TypeScript configuration
βββ esbuild.config.mjs # Build configuration
βββ jest.config.js # Jest test configuration
βββ styles.css # Plugin styles
βββ tests/ # Test suite
β βββ __mocks__/ # Obsidian API mocks
β βββ integrations/ # Ollama client tests
β βββ visualizations/ # Mermaid and Chart.js tests
βββ src/
βββ types.ts # Shared interfaces and types
βββ settings.ts # Settings tab UI
β
βββ extractors/
β βββ tasks.ts # Task/checkbox extraction
β
βββ generators/
β βββ base.ts # Abstract base generator class
β βββ daily-summary.ts # Daily summary generation
β βββ weekly-summary.ts # Weekly summary generation
β βββ todo-list.ts # Aggregated task list
β βββ pending-todo-list.ts # Pending-only task list
β βββ insights.ts # Topic analysis and insights
β
βββ visualizations/
β βββ mermaid.ts # Mermaid chart generation
β βββ chartjs.ts # Chart.js config generation
β βββ chartjs-renderer.ts # Chart.js code block processor
β βββ templates.ts # Chart template wrappers
β
βββ integrations/
βββ ollama.ts # Ollama AI client
Testing in Obsidian
- Build the plugin:
npm run build - Copy
main.jsandmanifest.jsonto your test vault's.obsidian/plugins/vault-insights/ - Reload Obsidian (
Cmd/Ctrl + R) - Enable the plugin in Settings β Community Plugins
Compatibility
| Platform | Support |
|---|---|
| Windows | Full |
| macOS | Full |
| Linux | Full |
| iOS | Core features (no Ollama) |
| Android | Core features (no Ollama) |
Minimum Obsidian version: 1.0.0
FAQ
Does this work on mobile?
Yes! All core features work on mobile. The optional Ollama integration is desktop-only and gracefully falls back on mobile.
Will this slow down my vault?
No. Vault Insights uses Obsidian's built-in MetadataCache, which means files aren't re-read from disk. Generation is efficient even with large vaults (1000+ notes).
Can I customize the output?
Generated notes are standard markdown files. You can edit them after generation.
Where are insights saved?
By default, insights are saved to an Insights folder in your vault root. You can change this in settings.
How do I exclude certain folders?
Add folder names to the "Exclude Folders" setting (comma-separated). Tasks and topics from these folders won't appear in generated notes.
What happens if Ollama is unavailable?
AI features gracefully degrade - summaries and insights are generated without the AI sections. You'll never see an error, just standard extraction-based output.
Privacy
- 100% Local: All processing happens on your device
- No telemetry: No data is collected or sent anywhere
- No API keys: Core features require no external accounts
- Ollama is local: Even AI features use a locally-running model
Contributing
Contributions are welcome! Please feel free to submit a Pull Request.
- Fork the repository
- Create your feature branch (
git checkout -b feature/amazing-feature) - Commit your changes (
git commit -m 'Add amazing feature') - Push to the branch (
git push origin feature/amazing-feature) - Open a Pull Request
Support
License
MIT License - see LICENSE for details.
Made for the Obsidian community.
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.