{"id":28757764,"url":"https://github.com/batjko/obsidian-vision-insights","last_synced_at":"2026-04-16T18:07:58.340Z","repository":{"id":298578909,"uuid":"1000438082","full_name":"batjko/obsidian-vision-insights","owner":"batjko","description":"Obsidian plugin to extract insights from images embedded in your notes, using OpenAI vision models..","archived":false,"fork":false,"pushed_at":"2026-02-11T22:43:31.000Z","size":2445,"stargazers_count":1,"open_issues_count":1,"forks_count":0,"subscribers_count":0,"default_branch":"main","last_synced_at":"2026-02-12T07:32:42.618Z","etag":null,"topics":["genai","image-processing","llm","lvm","note-taking","obsidian","obsidian-md","obsidian-plugin","ocr","openai"],"latest_commit_sha":null,"homepage":"","language":"TypeScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/batjko.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2025-06-11T19:30:10.000Z","updated_at":"2026-02-11T22:43:35.000Z","dependencies_parsed_at":"2025-06-11T21:33:19.214Z","dependency_job_id":"eb48c1b3-f4ef-4b30-9ce3-0d9c50a1b4ad","html_url":"https://github.com/batjko/obsidian-vision-insights","commit_stats":null,"previous_names":["batjko/obsidian-vision-insights"],"tags_count":7,"template":false,"template_full_name":null,"purl":"pkg:github/batjko/obsidian-vision-insights","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/batjko%2Fobsidian-vision-insights","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/batjko%2Fobsidian-vision-insights/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/batjko%2Fobsidian-vision-insights/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/batjko%2Fobsidian-vision-insights/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/batjko","download_url":"https://codeload.github.com/batjko/obsidian-vision-insights/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/batjko%2Fobsidian-vision-insights/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":31897928,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-16T17:33:00.867Z","status":"ssl_error","status_checked_at":"2026-04-16T17:32:57.401Z","response_time":69,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["genai","image-processing","llm","lvm","note-taking","obsidian","obsidian-md","obsidian-plugin","ocr","openai"],"created_at":"2025-06-17T04:00:38.057Z","updated_at":"2026-04-16T18:07:58.334Z","avatar_url":"https://github.com/batjko.png","language":"TypeScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# Obsidian Vision Insights\n\nAI-powered image analysis for Obsidian with contextual insights using OpenAI's Vision API.\n\n## Overview\n\nVision Insights is an Obsidian plugin that brings AI-powered image analysis directly into your note-taking workflow. Simply right-click on any image link in your notes to select insights, summaries, text extraction, and detailed analysis using OpenAI's advanced vision models.\n\n## Features\n\n### 🎯 **10 Specialized Analysis Actions**\n\n- **📝 Smart Summary** - Focused 2-3 sentence summaries capturing core messages and key takeaways\n- **📊 Extract Key Facts** - Organized bulleted lists of specific data points, metrics, and actionable items\n- **🖼️ Generate Description** - Comprehensive visual descriptions for accessibility and archival purposes\n- **🔤 Identify Text (OCR)** - Complete text extraction with preserved formatting and structure\n- **🏗️ Analyze Structure** - Detailed breakdown of organizational patterns and information architecture\n- **💡 Quick Insights** - 4-6 actionable insights that go beyond surface-level observations\n- **📈 Analyze Data Visualization** - Specialized analysis for charts, graphs, and data visualizations\n- **👥 Extract Meeting Participants** - List all visible meeting participants, names, avatars, and roles from screenshots\n- **🗂️ Analyze Meeting Content** - Comprehensive analysis of meeting screenshots, shared content, context, and action items\n- **✍️ Custom Vision Prompt** - Provide your own prompt; output is guaranteed Obsidian Markdown\n\n### 🚀 **Smart Integration**\n\n- **Context Menu Integration** - Right-click any image for instant analysis\n- **Universal Image Support** - Works with `![[image.png]]`, `![](image.png)`, and `\u003cimg\u003e` syntax\n- **External Image Support** - Analyze both vault images and external URLs\n- **Multiple Insertion Modes** - Insert results at cursor, as blockquotes, callouts, new notes, daily notes, above/below the image, or replacing the image with a callout\n\n### ⚡ **Performance \u0026 Efficiency**\n\n- **Intelligent Caching** - Avoid repeat API calls with configurable cache duration and LRU cap\n- **Rate Limiting** - Built-in request throttling to prevent API limits\n- **Model Selection** - Choose between GPT-5 Mini, GPT-5 Nano, and GPT-5.2\n- **Batch Processing** - Analyze all images in the current note and aggregate results\n- **Optional Downscaling** - Reduce large image sizes before upload to save cost/time\n\n## Installation\n\n\u003e This plugin is currently installed manually (not in the Community Plugin store yet).\n\n### Easiest: Install via BRAT (recommended)\n\n1. In Obsidian, install **BRAT** (Beta Reviewers Auto-update Tester) from Community Plugins\n2. Open **BRAT** settings and click **Add Beta plugin**\n3. Paste this repository URL: `https://github.com/batjko/obsidian-vision-insights`\n4. Choose **vision-insights**, then enable it in Community Plugins\n\nThis gives users one-click updates from new GitHub releases.\n\n### Manual Installation (zip package)\n\n1. Download `vision-insights-\u003cversion\u003e.zip` from the [latest release](https://github.com/batjko/obsidian-vision-insights/releases/latest)\n2. Unzip it\n3. Copy `manifest.json`, `main.js`, and optional `styles.css` into: `VaultFolder/.obsidian/plugins/vision-insights/`\n4. Reload Obsidian and enable **Vision Insights** in Community Plugins\n5. Add your OpenAI API key in plugin settings\n\n### Manual Installation (direct files)\n\nIf you prefer not to use the zip package, download these release assets directly:\n- `manifest.json`\n- `main.js`\n- `styles.css` (if present)\n\nCopy them into `VaultFolder/.obsidian/plugins/vision-insights/` and reload Obsidian.\n\n### Updating to a New Version\n\nFor manual installs, replace files in `VaultFolder/.obsidian/plugins/vision-insights/` with the latest release assets and reload Obsidian.\n\n### Development Installation\n\n```bash\n# Clone the repository\ngit clone https://github.com/batjko/obsidian-vision-insights.git\ncd obsidian-vision-insights\n\n# Install dependencies\nnpm install\n\n# Build for development\nnpm run dev\n\n# Build for production\nnpm run build\n```\n\n## Setup\n\n### 1. Get OpenAI API Key\n\n1. Visit [OpenAI Platform](https://platform.openai.com)\n2. Create an account or sign in\n3. Navigate to API Keys section\n4. Generate a new API key\n\n### 2. Configure Plugin\n\n1. Open Obsidian Settings\n2. Go to **Vision Insights** in the plugin settings\n3. Enter your OpenAI API key\n4. Click **Test Connection** to verify\n5. Customize your preferred settings\n\n## Usage\n\n### Basic Usage\n\n1. **Right-click on any image link** in your notes\n2. **Select an analysis action** from the Vision Insights menu\n3. **Wait for analysis** (usually 3-10 seconds)\n4. **Review results** in the popup modal\n5. **Insert content** using your preferred format\n\n### Supported Image Formats\n\n- **Vault Images**: `![[image.png]]` or `![Alt text](image.png)`\n- **External URLs**: `![](https://example.com/image.jpg)`\n- **HTML Images**: `\u003cimg src=\"image.png\" alt=\"description\"\u003e`\n- **File Types**: PNG, JPG, JPEG, GIF, WebP, BMP, TIFF\n\n### Insertion Modes\n\n- **At Cursor Position** - Insert directly where your cursor is located\n- **As Blockquote** - Wrap content in `\u003e` blockquote formatting  \n- **As Callout** - Create Obsidian callout blocks with analysis results\n- **Create New Note** - Generate a dedicated note for the analysis\n- **Append to Daily Note** - Add to today's daily note\n- **Insert Above/Below Image** - Place content adjacent to the image\n- **Replace Image with Callout** - Swap the image for a formatted callout\n\n## Configuration Options\n\n### API Settings\n\n- **OpenAI API Key** - Your OpenAI API key for vision analysis\n- **Preferred Model** - Choose between GPT-5 Mini (recommended), GPT-5 Nano, and GPT-5.2\n- **Test Connection** - Verify API key validity\n\n### Analysis Actions\n\nEnable/disable specific analysis types:\n- Smart Summary\n- Extract Key Facts  \n- Generate Description\n- Identify Text (OCR)\n- Analyze Structure\n- Quick Insights\n- Analyze Data Visualization\n\n### Performance Settings\n\n- **Caching** - Cache results to avoid repeat API calls (configurable duration: 1-168 hours) with max entries\n- **Rate Limiting** - Minimum delay between requests (100-2000ms)\n- **Default Insertion Mode** - Choose how results are inserted by default\n- **Downscaling** - Toggle and max dimension for local images\n- **Per-Action Overrides** - Model, temperature, image detail, and insertion mode per action\n\n## Examples\n\n### Smart Summary\n```\nThis chart shows quarterly revenue growth from Q1 2023 to Q4 2023, with a notable 23% increase in Q4. The data indicates strong momentum in the enterprise segment, particularly in SaaS subscriptions which grew 45% year-over-year.\n```\n\n### Extract Key Facts\n```\n• Q4 2023 revenue: $2.4M (23% increase)\n• SaaS subscriptions: 45% YoY growth  \n• Enterprise segment: 67% of total revenue\n• Customer acquisition cost: $1,200 (down 15%)\n• Monthly recurring revenue: $890K\n```\n\n### Quick Insights\n```\n• The sharp Q4 uptick suggests successful holiday marketing campaigns\n• Enterprise focus is paying off with higher-value, stickier customers\n• Declining CAC indicates improving marketing efficiency and brand recognition\n• SaaS growth outpacing overall revenue suggests successful product-market fit\n• Strong momentum entering 2024 with recurring revenue foundation\n```\n\n## Development\n\n### Project Structure\n\n```\nobsidian-vision-insights/\n├── src/\n│   ├── types.ts           # TypeScript interfaces and types\n│   ├── settings.ts        # Plugin settings UI and management\n│   ├── image-handler.ts   # Image detection and processing\n│   ├── openai-client.ts   # OpenAI API integration\n│   ├── results-modal.ts   # Results display modal\n│   ├── cache-manager.ts   # Caching system\n│   └── utils.ts          # Utility functions\n├── main.ts               # Main plugin entry point\n├── manifest.json         # Plugin metadata\n├── package.json          # Dependencies and scripts\n└── esbuild.config.mjs    # Build configuration\n```\n\n### Key Technologies\n\n- **TypeScript** - Type-safe development\n- **OpenAI API v5** - Vision analysis capabilities\n- **Obsidian API** - Native plugin integration\n- **ESBuild** - Fast compilation and bundling\n\n### Build Scripts\n\n```bash\nnpm run dev        # Development build with watch mode\nnpm run build      # Production build\nnpm run release    # Create release package\n```\n\n### Release Process\n\nThis plugin uses semantic versioning. To create a new release:\n\n**Interactive Release**\n```bash\nnpm run release\n```\nThis will prompt you to select the type of version bump (patch, minor, or major).\n\n**Direct Release**\n```bash\nnpm run release:patch   # For bug fixes (1.0.0 → 1.0.1)\nnpm run release:minor   # For new features (1.0.0 → 1.1.0)  \nnpm run release:major   # For breaking changes (1.0.0 → 2.0.0)\n```\n\nThe release script will:\n1. Bump the version in `package.json`, `manifest.json`, and `versions.json`\n2. Build the plugin\n3. Create installable assets (`main.js`, `manifest.json`, optional `styles.css`, and `vision-insights-\u003cversion\u003e.zip`)\n4. Commit and tag the changes\n5. Push to GitHub\n6. Create/update a GitHub release with those assets\n\nPre-flight checks:\n- Requires a clean working tree (no uncommitted changes)\n- Fails if local branch is behind remote\n- Requires authenticated GitHub CLI (`gh auth status`)\n\n**Manual Release**\nIf you need to release the current version without bumping:\n```bash\nnode scripts/release.mjs skip\n```\n\n### Contributing\n\n1. The usual: Fork and submit a pull request\n2. Try to stick to the existing conventions.\n3. KISS\n\n## Troubleshooting\n\n### Common Issues\n\n**Plugin won't load**\n- Check Obsidian version compatibility (minimum 0.15.0)\n- Verify all files are in the correct plugin directory\n- Check browser console for error messages\n\n**API key errors**\n- Ensure API key is correctly entered without extra spaces\n- Verify API key has sufficient credits and permissions\n- Test connection using the built-in test button\n\n**Image detection fails**\n- Check image file exists and is accessible\n- Verify image format is supported\n- Try different image syntax formats\n\n**Slow analysis**\n- Check internet connection\n- Consider using faster model (GPT-5 Nano)\n- Adjust rate limiting settings if needed\n\n## Privacy \u0026 Security\n\n- **API Key Storage** - Stored locally in Obsidian's plugin data\n- **Image Processing** - Images sent to OpenAI for analysis according to their privacy policy\n- **No Telemetry** - Plugin doesn't collect or transmit usage data\n\n## Acknowledgments\n\n- Built for the [Obsidian](https://obsidian.md) knowledge management platform\n- Powered by [OpenAI's Vision API](https://platform.openai.com/docs/guides/vision)\n- Inspired by the Obsidian community's innovation in knowledge tools\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbatjko%2Fobsidian-vision-insights","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Fbatjko%2Fobsidian-vision-insights","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Fbatjko%2Fobsidian-vision-insights/lists"}