Releases: bramses/chatgpt-md
3.1.0
v3.1.0 — Agents
Build your own AI team, right inside Obsidian.
Agents are reusable AI personas that live as Markdown files in your vault. Each agent carries its own model, temperature, and system prompt — so you can switch between a creative writing partner, a code reviewer, and a research assistant in
seconds.
Create agents in two ways
AI Wizard — Just describe what you need. "A Socratic tutor that teaches through questions" — the AI generates a name, tunes the temperature, and writes a comprehensive system prompt. Review it, tweak it if you want, save.
Manual — Full control. Pick your model (with autocomplete across all your configured providers), dial in the temperature, write your system prompt.
Use them anywhere
Run Choose Agent on any note. The agent's settings merge seamlessly with your note's frontmatter — your per-note overrides still win. Switch agents mid-conversation. Mix and match.
What else is new
Streaming is now rock-solid. Tables, code blocks, and other block-level markdown no longer corrupt during streaming. The new line-boundary flushing engine writes content at natural breakpoints, eliminating the cursor race conditions that
caused visual glitches.
Dependencies updated across the board — all packages at their latest compatible versions.
Getting Started
- Open Settings → ChatGPT MD and set your Agent Folder (default: ChatGPT_MD/agents)
- Run the Create new agent command
- Choose AI Wizard or Manual
- Apply it to any chat note with Choose Agent
Your agents are just Markdown files — version them, share them, sync them across devices. They're yours.
Full Changelog: 3.0.1...3.1.0
3.0.3-beta
fixes broken tables when streaming
3.0.2-beta
introduces agents
3.0.1
3.0.0
🚀 ChatGPT MD v3.0.0 — Privacy-First AI Tool Calling
Your AI assistant can now actively search your vault, read files, and query the web—with a human-in-the-loop architecture that keeps you in complete control.
This release introduces a tool calling system built on privacy-first principles. When your AI needs information, it requests permission to use tools—you approve execution, review results, and
control exactly what gets shared back to the model. Nothing leaves your vault without explicit consent.
✨ Key Features
🔍 Vault Search
- AI discovers relevant notes across your entire vault
- Multi-word OR search matches ANY query term
- Searches both filenames and content simultaneously
- Edit search queries before execution
- Configurable result limits (default: 5 files)
📄 File Reading
- AI can request access to specific files you've discovered
- Batch reading support for multiple files
- Full content extraction with granular file selection
- You choose exactly which files to share
🌐 Web Search
- Powered by Brave Search API (privacy-focused, 1,000 free queries/month)
- Custom search provider support for self-hosted endpoints
- Edit web queries before execution
- Review and filter results before sharing
- Only appears when API key is configured
✅ Three-Layer Approval System
Every tool call goes through explicit approval:
- Execution Approval — See what the AI wants to do, edit parameters if needed
- Results Review — See what the tool found
- Selective Sharing — Choose exactly which results reach the AI
🔒 Privacy-First Design
- Local-first execution: All vault operations run entirely within Obsidian's API
- No telemetry: Zero tracking or analytics—tool usage stays private
- Opt-in only: All tools disabled by default
- Selective sharing: Multi-select modals let you choose exactly what to share
🎯 Supported AI Providers
Tool calling works with all 6 providers:
- ✅ OpenAI (GPT-4, GPT-4o, o1, o3-mini)
- ✅ Anthropic (Claude 3.5, Claude 3)
- ✅ Google Gemini (Gemini 2.0, 1.5)
- ✅ OpenRouter (100+ models with tool support)
- ✅ Ollama (Local models with function calling)
- ✅ LM Studio (Local models)
Note: Not all models support tool calling. The plugin includes a whitelist of 161 patterns covering 194 verified models. Visual indicators show tool compatibility in the model selector.
🚀 Getting Started
- Update: Install v3.0.0 from Obsidian Community Plugins
- Enable: Go to Settings → ChatGPT MD → Tool Calling → Enable
- Optional: Add https://brave.com/search/api/ for web search (free tier: 1,000 queries/month)
- Chat: Use the ChatGPT MD: Chat command—AI will request tool use when needed
💡 Use Cases
Research Assistant
"Search my vault for notes about quantum computing and find recent papers on the topic"
→ AI discovers relevant notes → You approve which files to share → AI synthesizes with proper attribution
Knowledge Synthesis
"Find all my Q3 meeting notes and summarize key decisions about the product roadmap"
→ Vault search returns meeting files → You select the relevant ones → AI extracts and summarizes
Web-Enhanced Writing
"Search the web for latest climate change statistics and incorporate them into my article"
→ Web search fetches current data → You filter reliable sources → AI integrates citations
Cross-Reference Discovery
"Find notes that mention both machine learning and productivity techniques"
→ Multi-word search finds intersections → You approve interesting connections → AI highlights patterns
🏗️ Architecture Improvements
This release includes significant under-the-hood improvements:
- Unified AI Provider Service — Consolidated 6 separate services into one with adapter pattern
- Service Container — Cleaner dependency injection replacing the old ServiceLocator
- Modular Command Handlers — Extracted monolithic CommandRegistry into focused handlers
- Enhanced Streaming — Improved real-time response handling
- Updated Dependencies — Latest Vercel AI SDK v6, TypeScript 5.9.3, and more
🔄 Backward Compatibility
- ✅ No breaking changes — existing configurations work unchanged
- ✅ Tools disabled by default — existing users unaffected
- ✅ Settings migration — automatic upgrade handling
📋 Full Changelog
Added
- Privacy-first AI tool calling system with three-layer approval
- Vault search tool with query editing
- File read tool with batch support
- Web search tool via Brave Search API
- Custom search provider support
- Tool approval modals with editable parameters
- Search results approval modal with file selection
- Web search results modal with source filtering
- Model whitelist for tool support (161 patterns, 194 verified models)
- Tool compatibility indicators in model selector
- Debug mode for tool operation logging
Changed
- Unified AiProviderService with adapter pattern (replaces 6 services)
- ServiceContainer for cleaner dependency injection
- Modular command handlers (extracted from CommandRegistry)
- Updated to Vercel AI SDK v6
- Updated all dependencies to latest versions
Improved
- Streaming response handling
- Error messages and formatting
- TypeScript type safety throughout
- Code organization with utility modules
🙏 Acknowledgments
Thank you to our beta testers who helped shape the tool calling system. Your feedback on privacy controls and approval workflows was invaluable.
Happy chatting with your AI-powered second brain! 🧠✨
Questions or issues? https://github.com/bramses/chatgpt-md/issues or join the discussion.
Full Changelog: 2.9.1...3.0.0
2.13.3-beta
Full Changelog: 2.13.2-beta...2.13.3-beta
2.13.2-beta
Full Changelog: 2.13.1-beta...2.13.2-beta
2.13.1-beta
Version 2.13.1-beta (beta)
2.13.0-beta
🚀 What's New in v3.0.0: Privacy-First AI Tool Calling
Your AI assistant can now search your vault, read files, and search the web—with explicit approval at every step.
Key Features
- 🔍 Vault Search: AI discovers relevant notes in your vault (you approve which files to share)
- 📄 File Reading: AI can request access to specific files (you select which ones)
- 🌐 Web Search: AI searches the web via Brave Search API (1,000 free queries/month)
- ✅ Three-Layer Approval System:
- Approve what the AI wants to do
- Review what it found
- Select exactly which results to share
- 🔒 Privacy-First Design: No data reaches the AI without your explicit consent
- 🎯 All Providers Supported: OpenAI, Anthropic, Gemini, OpenRouter, Ollama, LM Studio
- ⚙️ Disabled by Default: Opt-in feature only—enable in Settings → Tool Calling
Why This Matters
For privacy-conscious note-takers, this is a game-changer. You get the power of AI with full control over your data. Your vault stays yours.
Getting Started with Tool Calling
- Install the beta: Use BRAT plugin and select version 2.12.0-beta
- Enable in settings: Go to Settings → ChatGPT MD → Tool Calling
- Optional: Add Brave Search API key for web search (1,000 free queries/month)
- Start chatting: Your AI will ask for approval when it wants to use tools
Use Cases
- Research Assistant: "Search my vault for notes about quantum computing and find recent papers"
- Knowledge Synthesis: "Find all my Q3 meeting notes and summarize key decisions"
- Web-Enhanced Writing: "Search the web for latest statistics and incorporate them"
- Note Discovery: "Find connections between notes I might have missed"
2.12.0-beta
AI Tool Calling with Privacy-First Human-in-the-Loop
Summary
This Release introduces privacy-focused AI tool calling to ChatGPT MD, enabling AI assistants to search your vault, read files, and search the web—with explicit user approval at every step.
Key Principle: No data reaches the LLM without your consent.
What's New
Three Core Tools
vault_search: AI discovers relevant notes in your vaultfile_read: AI requests access to specific filesweb_search: AI searches the web using Brave Search API (1,000 free queries/month)
Three-Layer Approval System
- Approve execution: See what the AI wants to do
- Review results: See what the tool found
- Approve sharing: Select exactly which results to share with AI
All tools disabled by default—opt-in feature only.
Privacy Features
- Human-in-the-loop at every step
- Granular control over data sharing
- Full transparency into AI requests
- Audit trail with debug mode
- All API keys stored locally
Technical Changes
Architecture
- 40 files changed: 3,632 insertions, 2,176 deletions
- New Services: ToolService, ToolRegistry, ToolExecutor, VaultTools, WebSearchService, StreamingHandler, Logger
- New UI: ToolApprovalModal, SearchResultsApprovalModal, WebSearchApprovalModal
- New Models: Tool.ts with comprehensive type definitions
AI Service Updates
- All 6 providers updated to support tool calling (OpenAI, Anthropic, Gemini, OpenRouter, Ollama, LM Studio)
- Improved streaming response handling
- Better error handling and user feedback
Settings
- New "Tool Calling" settings section
- Enable/disable tools globally
- Web search configuration (Brave Search or custom provider)
- Debug mode for troubleshooting
Tool Execution Flow
AI requests tool → User approves/denies → Tool executes → User reviews results →
User selects what to share → AI responds with approved context
Installation via BRAT
- Install BRAT plugin if you haven't already
- BRAT Settings → "Add Beta plugin"
- Enter "bramses/chatgpt-md" as the repository
- BRAT will show available versions → select 2.12.0-beta
- Enable ChatGPT MD in Community Plugins
- Settings → Tool Calling → Enable AI Tool Calling
How to Test
- Settings → Tool Calling → Enable AI Tool Calling
- Ask: "Search my vault for notes about machine learning"
- Approve execution → Review results → Select files to share
- Optional: Enable web search with Brave Search API key (https://api.search.brave.com/)
Breaking Changes
None. Feature is disabled by default.
Migration
No migration required.
Version: 2.12.0-beta
Branch: ai-sdk-v6 → master