lab82937 downloadsAdds an AI-generated summary and key takeaways to notes marked ai_summary: pending, using your own Gemini or OpenAI API key.
AI Summary is an Obsidian plugin that watches notes with ai_summary: pending, inserts a generated summary and key takeaways at the top of the note body, and then marks the note ai_summary: generated.
Built and maintained by Lab829.
ai_summary: none, ai_summary: pending, and ai_summary: generated as explicit workflow states.AI Summary is in the Obsidian community plugins directory. In Obsidian, open Settings -> Community plugins -> Browse, search for AI Summary, then install and enable it.
manifest.json, main.js, and styles.css from the latest release.<vault>/.obsidian/plugins/lab-ai-summary/.Gemini or OpenAI.Use this frontmatter to opt a note into enrichment:
---
ai_summary: pending
---
Successful processing inserts the generated block below frontmatter and flips the field to ai_summary: generated.
If you want a note to stay untouched until later, use ai_summary: none and change it to pending when you want enrichment to start.
AI Summary works with the official Obsidian Web Clipper. Add one property to your clipper template, and every page you clip arrives as a pending note that the plugin summarizes.
Default.Properties, add a property named ai_summary with the value pending.generated.Auto-process must stay on in the plugin settings. If Obsidian is closed when you clip, pending notes are processed the next time it starts.
This plugin makes network requests only to the AI provider you choose in settings, and only in these cases:
| When | Gemini | OpenAI |
|---|---|---|
Summarizing a note marked ai_summary: pending |
POST https://generativelanguage.googleapis.com/v1beta/models/<model>:generateContent |
POST https://api.openai.com/v1/chat/completions |
| Opening the plugin settings with an API key set (to list available models) | GET https://generativelanguage.googleapis.com/v1beta/models |
GET https://api.openai.com/v1/models |
A note is summarized when it is created or edited while it has ai_summary: pending (after a short debounce), and once when the plugin loads for any notes that are still pending, as long as "Auto-process new notes" is on. Notes without ai_summary: pending are never sent.
What is sent: the body of the pending note (everything below the YAML frontmatter, excluding any previously generated summary block), your summary and takeaway prompts, and the model name. Frontmatter and other notes are not sent. Your use of the provider is governed by that provider's own terms and privacy policy.
<vault>/.obsidian/plugins/lab-ai-summary/data.json) in plain text, like other Obsidian plugin settings. Do not sync or share that file if you don't want to share the key.Bearer authorization header for OpenAI, and as the key query parameter for Gemini (Google's documented API format). It is never sent to Lab829 or any other server.The plugin is free and MIT licensed, and works with your own API key. Lab829 may offer an optional paid hosted service in the future (for example managed AI models). If that happens, it will be opt-in and clearly labeled, and using your own key will keep working without an account.
pnpm install
pnpm lint
pnpm type-check
pnpm test
pnpm build
If you want to test the built plugin locally inside a vault:
.env.local.example to .env.local.OBSIDIAN_PLUGIN_DIR to <vault>/.obsidian/plugins/lab-ai-summary/.pnpm build:sync.Contributions are welcome. See CONTRIBUTING.md. First-time contributors are asked to sign a short Contributor License Agreement by commenting on their pull request.
MIT © 2026 Lab829