bramses129k downloadsA seamless integration of ChatGPT, OpenRouter.ai and local LLMs via Ollama into your notes.
Your AI writing companion, living inside Obsidian.
Chat with AI directly in your notes. Reference your other notes with [[wiki links]]. Keep everything in your vault—where it belongs.

Provider Reliability (v3.2) — Updated provider integrations, safer tool calling, and more reliable model selection and streaming across cloud and local providers.
Agents (v3.1) — Create AI personas like a writing coach, code reviewer, or brainstorming partner. Apply them to any note instantly.
Tool Calling (v3.0) — Let AI search your vault, read your notes, and browse the web. You approve everything. Your data, your control.
Cmd+P → Type "ChatGPT MD: Chat"That's it. You're now chatting with AI in your notes.
💡 Set a hotkey and thank me later: Settings → Hotkeys → Search "ChatGPT MD: Chat" → Press Cmd+J
Don't want API costs? Don't want your notes leaving your computer?
Ollama and LM Studio run AI locally on your machine. Completely free. Completely private.
# Install from ollama.ai, then:
ollama pull llama3.2 # Download a model
ollama list # See what you have
In your note:
---
model: [email protected]
---
model: lmstudio@your-modelWrite a question, get an answer. Simple.
user:: What makes a good daily note?
assistant:: Great daily notes are:
- **Specific** — "Had coffee with Sarah" not "Met a friend"
- **Actionable** — Include next steps or open questions
- **Connected** — Link to related ideas and people
This is where it gets magical. Use [[wiki links]] and AI reads those notes too:
user:: Based on my [[Meeting Notes]] and [[Project Ideas]],
what should I focus on this week?
AI reads your linked notes and gives you a contextual answer. No more copy-pasting context.
Make AI personas for different tasks:
# agents/WritingCoach.md
---
model: [email protected]
temperature: 0.8
---
You are a supportive writing coach. Help the user:
- Clarify their ideas with questions
- Suggest improvements without being harsh
- Celebrate their progress
Apply with "Choose Agent" command. Switch between agents instantly.
Enable in Settings → Tool Calling. Then:
user:: What have I written about machine learning?
AI: "I'd like to search your vault." You: Approve ✓ AI: "Found 5 notes. Here's what you've written..." You: Select what to share ✓
You're always in control. AI only sees what you approve.
| Provider | Why Use It | Cost |
|---|---|---|
| OpenAI | Reliable, GPT-4 | Pay per use |
| Anthropic | Claude, great for long docs | Pay per use |
| Gemini | Google's models | Pay per use |
| OpenRouter | Access to ALL models | Pay per use |
| Z.AI | GLM models | Pay per use |
| Ollama | Local, private | Free |
| LM Studio | Local, private | Free |
Model prefix examples:
[email protected] (unprefixed OpenAI model IDs also work)anthropic@claude-sonnet-4-20250514[email protected]openrouter@openai/gpt-4.1-mini[email protected] or lmstudio@model-nameOpenAI search-preview models such as openai@gpt-4o-mini-search-preview are supported through OpenAI's chat-completions endpoint.
| Command | What It Does |
|---|---|
| Chat | The main event. Send message, get AI response |
| Select Model | Switch between models/providers |
| Choose Agent | Apply an AI persona to current note |
| Create Agent | Make a new agent (manual or AI-generated) |
| Infer Title | Auto-generate title from conversation |
| Clear Chat | Start fresh, keep settings |
| Stop Streaming | Cancel a long response |
---
model: [email protected] # Which AI to use
temperature: 0.7 # Creativity (0-2)
max_tokens: 4096 # Response length
system_commands: # Give AI a role
- You are a helpful assistant
agent: WritingCoach # Apply an agent by name
---
Priority: Note settings beat Agent settings beat Global settings beat default chat frontmatter/provider defaults
Q: How do I actually use this?
A: Open any note. Write something. Press Cmd+P, type "chat", hit Enter. Watch AI respond in your note.
Q: Can I use my existing notes?
A: Yes! Just add a frontmatter block at the top with your settings, then use [[wiki links]] to reference other notes.
Q: Which local model should I use?
A: llama3.2 is great for general use. deepseek-r1:7b for reasoning. Try a few and see what works for you.
Q: Is my data private?
A: With OpenAI/Anthropic, your messages go to their servers. With Ollama/LM Studio, everything stays on your computer. Your choice.
Q: What's an "agent"?
A: A reusable AI persona. Like having different experts on call—writing coach for drafts, code reviewer for programming, researcher for learning.
With cloud providers (OpenAI, Anthropic, etc.):
With local AI (Ollama, LM Studio):
Credentials:
Always:
[[linked notes]] are sent to the selected providerSee SECURITY.md for vulnerability reporting and the full data model.
git clone https://github.com/bramses/chatgpt-md.git
cd chatgpt-md
npm install
npm run dev
Project structure:
src/
├── Commands/ # User actions
├── Services/ # AI providers, adapters, tools
├── Views/ # UI, modals
├── Utilities/ # Pure functions (tested)
└── core/ # Dependency injection
Contributions welcome! Fork → Branch → PR.
Want the latest features? Use BRAT:
bramses/chatgpt-md as beta pluginTest beta versions in a separate vault.
Bram Adams made this. He writes at bramadams.dev and builds Your Commonbase.
Deniz Okcu keeps it running. Say hi on Bluesky.
Happy note-taking! 📝