# ChatGPT MD for Obsidian: Setup, Providers, and Vault Tools

> ChatGPT MD adds cloud and local AI conversations to Obsidian notes, with wiki-link context, reusable agents, and approval-based vault search. It suits Obsidian users who want model access inside their notes, but its convenience depends on provider costs, local hardware, and careful handling of note data.

**bramses/chatgpt-md** — A (nearly) seamless integration of ChatGPT into Obsidian.

- Repository: https://github.com/bramses/chatgpt-md
- Stars: 1,456 · Forks: 107
- Language: TypeScript
- License: MIT
- Published: 2026-10-16 · Updated: 2026-10-16 · Language: en
- Canonical page: https://hysenlabs.com/projects/bramses-chatgpt-md

## Why ChatGPT MD Sits Inside the Obsidian Vault

ChatGPT MD addresses a specific gap between general AI chat interfaces and personal knowledge work. An Obsidian user can start a conversation in a note, point to other notes with `[[wiki links]]`, save the exchange in the vault, and reuse a named agent such as a writing coach or code reviewer. The target audience is therefore not only Obsidian users who want an assistant, but specifically those whose questions depend on notes already stored in the vault.

The README gives this example:

```markdown
user:: Based on my [[Meeting Notes]] and [[Project Ideas]],
what should I focus on this week?
```

The referenced notes supply context that would otherwise need to be copied into a separate chat interface. That is the project's central value. It does not introduce a separate document format or require the vault to be exported before chatting. Conversations use the recognizable `user::` and `assistant::` blocks shown in the README.

Cloud and local operation are both part of the product. OpenAI, Anthropic, Gemini, OpenRouter, and Z.AI connect messages to external services, while Ollama and LM Studio can keep inference on the user's computer. That choice affects cost, privacy, model selection, and setup complexity. The plugin is therefore better understood as a provider-neutral Obsidian integration than as a ChatGPT-only client, despite its name.

## ChatGPT MD Request Flow and Configuration Precedence

The plugin is written in TypeScript and configured at several levels. Per-note frontmatter can specify the model, temperature, maximum response length, system instructions, and an agent. A chat also inherits values from global plugin settings and provider defaults. The README establishes this priority order: note settings take precedence over agent settings, which take precedence over global settings, followed by default chat frontmatter or provider defaults.

A minimal model selection uses a provider prefix followed by a model identifier:

```yaml
---
model: openai@gpt-4.1-mini
---
```

Cloud examples use identifiers such as `anthropic@claude-sonnet-4-20250514`, `gemini@gemini-2.5-flash-lite`, and `openrouter@openai/gpt-4.1-mini`. Unprefixed OpenAI model IDs also work according to the README. Local selections instead use `ollama@llama3.2` or `lmstudio@model-name`. OpenAI search-preview models are documented as working through OpenAI's chat-completions endpoint.

Streaming is configurable globally, and the response can be stopped with the `Stop Streaming` command. Other commands cover model selection, agent application and creation, title inference, chat clearing, and opening the main conversation. Based on the documented design, a request starts from a note, resolves its configuration according to that hierarchy, and is sent through the selected provider integration. This avoids forcing all conversations to use one global model, although users must understand which source wins when the same setting appears in several places.

## Installing ChatGPT MD and Opening the First Conversation

Installation takes place inside Obsidian rather than through a command from the repository. The stated requirement is Obsidian 1.11.4 or newer because the plugin uses secure key storage when the required Obsidian capabilities are available. A supported provider API key is also required, unless the user configures Ollama or LM Studio.

Open Obsidian and follow this documented path:

```text
Settings → Community Plugins → Browse
Search "ChatGPT MD"
```

After installing the plugin, open `Settings -> ChatGPT MD` and paste an API key for OpenAI, Anthropic, or OpenRouter. The README also lists Gemini and Z.AI as supported providers, but its quick-start instructions only specify those first three key examples.

Open any note, press `Cmd+P`, type `ChatGPT MD: Chat`, and run the command. The README also describes a suggested hotkey setup under `Settings -> Hotkeys`: search for `ChatGPT MD: Chat` and press `Cmd+J`. This assigns the example shortcut in the user's own Obsidian settings; it is not a CLI instruction or mandatory project default.

A first local setup differs because no cloud key is required. Install Ollama from `ollama.ai`, then use the commands documented by this README:

```bash
ollama pull llama3.2
ollama list
```

The first command downloads the model, and the second lists locally available models. Add the selection to note frontmatter:

```yaml
---
model: ollama@llama3.2
---
```

For LM Studio, the README directs users to download it from `lmstudio.ai`, load a model, start the Local Server, and set `model: lmstudio@your-model`. These are UI and configuration steps, so there is no additional command to invent.

## Wiki Links, Agents, and Approval-Based Vault Access

ChatGPT MD offers two forms of note-aware behavior. Direct `[[wiki links]]` let a prompt name specific notes for context. Tool Calling adds broader vault discovery, but it is not automatic. The user must enable Tool Calling in Settings, and the documented exchange includes an explicit approval before the AI searches the vault. The user then selects which results are shared.

That approval boundary matters. A model can propose a vault search, but the README does not say that tool access is silently granted to every conversation. It also does not promise that all matching notes are included in the request. The example says the model found five notes and the user selects what to share. This narrows exposure compared with unconditional indexing, though it still requires the user to read proposed tools and selected note content carefully.

Agents package repeatable behavior. An agent is a Markdown note with frontmatter and a system instruction:

```markdown
---
model: openai@gpt-4.1-mini
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
---
```

The `Choose Agent` command applies an existing persona, while `Create Agent` creates one manually or with AI assistance. Agents are useful when model selection and instructions should travel together, but their behavior is only as constrained as the prompt and model configuration. The repository documentation does not claim that an agent bypasses provider privacy terms or that separate agent files are sandboxed from the rest of the vault.

## Privacy Boundaries for Cloud, Local, and Search Tools

The privacy model is explicit but not uniform. With OpenAI, Anthropic, Gemini, OpenRouter, and Z.AI, messages are sent to the provider's servers, and the README warns that they may use messages to improve services. Users must consult the provider policies rather than treating all cloud configurations as private. Wiki-linked notes and approved Tool Calling results can also become part of the prompt sent to a cloud model.

Ollama and LM Studio provide the local path. The README says everything stays on the user's computer, no internet is required, and operation is private. That statement applies to local model use, not automatically to every external tool. If a conversation invokes web browsing or another network-backed capability, the relevant network behavior still needs separate consideration.

Credential storage has also changed with plugin version 3.3.1. When Obsidian SecretStorage and its native secret control are available, provider and web-search keys are stored as vault-local Obsidian credentials, while plugin data contains opaque references. Existing plaintext keys migrate automatically on plugin load. The README excerpt ends while describing failed migrations, so it does not establish precisely how a failed migration is surfaced or recovered.

This makes the provider choice the first privacy check. Local inference limits model requests to the computer when configured locally, while cloud inference requires acceptance of provider-side transmission. Tool approval adds control over vault disclosure, but approval prompts should not be treated as a substitute for reviewing what is selected.

## Practical Limits, Costs, and a Simpler Alternative

Several constraints make ChatGPT MD unsuitable for every Obsidian setup. Obsidian 1.11.4 or newer is required for the documented secure storage path. Cloud providers are billed according to their own usage models, so long conversations and large linked-note contexts can create variable charges. The plugin offers `max_tokens` and `temperature`, but the README does not document budgeting, token accounting, or a fixed total cost.

Local use removes provider charges but creates a hardware and model-management burden. Users must install Ollama or LM Studio, download or load a model, keep the local server running for LM Studio, and accept that model output quality and speed depend on the selected model and computer. The README calls `llama3.2` suitable for general use and mentions `deepseek-r1:7b` for reasoning, but it supplies no hardware requirements or performance measurements. Those details must be checked against the chosen model rather than inferred from the plugin.

A simpler alternative is to use a provider's own chat interface and manually paste selected note excerpts into the conversation, then copy the result back into Obsidian. That approach requires less plugin configuration and gives the user direct control over each excerpt. ChatGPT MD removes repeated copying through wiki-link context, note-local conversations, agents, and approval-based vault discovery. In exchange, it introduces provider configuration, frontmatter, tool approvals, and for local use, separate inference software. The choice is between Obsidian-centered workflow and a manual copy-and-paste workflow, not between two identical assistants.

## ChatGPT MD 3.3.1 Release and Source Maintenance

The repository is not archived, and its last push was on 2026-08-31. The latest listed release, 3.3.1, was published on 2026-08-31, following 3.3.0 on 2026-08-31 and 3.2.1 on 2026-08-12. These dates indicate recent repository activity, but they do not establish long-term compatibility with every provider or Obsidian release.

Version 3.3 is described as aligning the interface with official Obsidian guidelines, including theming, sentence-case UI, compatibility requirements, and bundle practices. Version 3.2 focused on provider reliability, tool calling, model selection, and streaming. The README excerpt also notes legacy text fields on older Obsidian versions, although the stated minimum is 1.11.4. This creates a visible compatibility distinction around secure storage rather than a uniform credential path for every environment.

The MIT license permits use, modification, distribution, and subordination under its terms, subject to the license's notice and disclaimer provisions. Provider SDKs and external services have their own terms, so the repository license should not be treated as covering hosted API use or note content sent to those services.

Contributor-level rebuilding is a separate concern from installing the community plugin. `package.json` requires Node 24 or newer and defines build, typecheck, lint, formatting, and test scripts. A contributor can run the following documented build command:

```bash
npm run build
```

This performs `npm run typecheck` before running the production esbuild configuration. The README does not document a rollback procedure for plugin releases, so users should check the plugin updater and release notes rather than assume version downgrade behavior.

## Conclusion

ChatGPT MD is appropriate for Obsidian users who want AI conversations, linked-note context, agents, and optional vault tools without leaving the editor. It is a poorer choice for users who require cloud-free operation but cannot run Ollama or LM Studio, or for anyone unwilling to review what note content is sent to external providers. Before adopting it, verify Obsidian 1.11.4 compatibility, the selected provider's data policy and cost, the intended default model, and whether linked notes or approved vault results may leave the computer.

## FAQ

### How do I install ChatGPT MD in Obsidian and start its first chat?

Install it through `Settings -> Community Plugins -> Browse`, configure a provider key under `Settings -> ChatGPT MD`, then run `ChatGPT MD: Chat` from the command palette. Obsidian 1.11.4 or newer is required.

### Can ChatGPT MD use notes from my Obsidian vault as context?

Yes. Add `[[wiki links]]` to the prompt to reference named notes. Tool Calling can also propose a vault search, but the user approves the request and selects which results are shared.

### Does ChatGPT MD have to send my notes to a cloud AI provider?

No. The README states that Ollama and LM Studio keep local model activity on the computer, while configured cloud providers receive messages on their servers. Review the chosen provider's privacy policy before sending linked notes.

## Sources

- [bramses/chatgpt-md on GitHub](https://github.com/bramses/chatgpt-md)
- [Issues](https://github.com/bramses/chatgpt-md/issues)
- [License: MIT](https://github.com/bramses/chatgpt-md/blob/master/LICENSE)
- [README](https://github.com/bramses/chatgpt-md/blob/master/README.md)
- [Releases](https://github.com/bramses/chatgpt-md/releases)

---

Hysen Labs editorial analysis, written from the project's own repository and release notes. Cite the canonical page: https://hysenlabs.com/projects/bramses-chatgpt-md
