← Back to Home

How to Run a Local AI Assistant in Obsidian With Ollama

Install Ollama, choose a practical model, connect Local LLM Helper, index notes for RAG, and troubleshoot private-by-default Obsidian AI.

You can run AI-assisted chat, summarization, and semantic note search inside Obsidian without sending prompts to a hosted model. The practical setup uses Ollama as the local model server and Local LLM Helper as the Obsidian interface.

This is a private-by-default setup, not an absolute privacy guarantee. Your text stays on the machine when the plugin points only to localhost and you avoid optional features that contact outside services. A remote model URL, web-search provider, or external embed changes that boundary.

What This Setup Does

Ollama runs the model and exposes an API on your computer. Its official API documentation lists http://localhost:11434/api as the default native API base. Local LLM Helper connects through Ollama's OpenAI-compatible endpoints and adds Obsidian commands for chat, text actions, semantic retrieval, and cited answers.

The two-model design matters:

Chat model
JobWrites summaries and answers questions
Example used heregemma3:4b
Embedding model
JobConverts notes and queries into vectors for retrieval
Example used herenomic-embed-text
Obsidian plugin
JobSends selected text or retrieved excerpts to the configured server
Example used hereLocal LLM Helper

You don't need embeddings for simple selected-text commands. You do need them for RAG chat, semantic search, and Related Notes.

Check Your Hardware Before Downloading Models

Local AI is constrained by memory more than vault size. The model must fit in available system memory or GPU memory along with Ollama, Obsidian, and your operating system. Longer context also consumes more memory; Ollama's context-length guide explicitly warns that increasing context raises memory use.

Ollama does not publish a universal RAM-to-model table because runtime needs change with quantization, context, and hardware offloading. Use the official download size as a lower-bound planning signal, start small, then inspect actual memory pressure and ollama ps before moving up:

Minimize the initial download
Model to try firstgemma3:1b
Official download sizeAbout 815 MB
Trade-offSmallest option here, with less capability for complex synthesis
Balance size and capability
Model to try firstgemma3:4b
Official download sizeAbout 3.3 GB
Trade-offLarger memory and compute demand than the 1B model
Try a larger text model
Model to try firstqwen3:8b
Official download sizeAbout 5.2 GB
Trade-offRequires more headroom; test it only after a smaller model runs reliably

Those file sizes come from the official Gemma 3 model library and Qwen 3 model library. They are not promises about runtime RAM, speed, or answer quality. This guide has not benchmarked those models on a controlled hardware set, so it does not claim response-time or minimum-memory results. CPU response time depends heavily on the processor, quantization, context, and prompt. A supported GPU can improve throughput; use ollama ps after a request to see whether a loaded model is on CPU, GPU, or split between them.

Step 1: Install and Verify Ollama

Download the installer for macOS, Windows, or Linux from Ollama's official download page. On Linux, the documented install command is:

curl -fsSL https://ollama.com/install.sh | sh
1 downloadOllamaLocaly

On a Linux systemd installation, check the service with:

systemctl status ollama

On any platform, the clearest functional test is the API itself:

curl http://localhost:11434/api/tags

If that returns JSON, the server is reachable. If it produces a connection error, launch the Ollama application or run ollama serve in a terminal and retry.

Step 2: Pull a Chat Model and an Embedding Model

The current Local LLM Helper quick start uses Gemma 3 for chat and Nomic Embed Text for retrieval. Pull both:

ollama pull gemma3:4b
ollama pull nomic-embed-text
ollama list

If memory is tight, substitute gemma3:1b. The exact name shown by ollama list is the name you must enter in the plugin. Don't enter a marketing family name such as “Gemma” when the installed tag is gemma3:4b.

Before involving Obsidian, test chat directly:

ollama run gemma3:4b

Ask it for a one-sentence response, then exit. This isolates Ollama problems from plugin problems.

Step 3: Install Local LLM Helper in Obsidian

2 localmodelplugin

Open Settings → Community plugins, turn on community plugins if required, select Browse, and search for Local LLM Helper. Install and enable the entry published from the manimohans/obsidian-local-llm-helper repository.

Community plugins execute third-party code in Obsidian. Review the repository, recent releases, and requested behavior before enabling any plugin. If the plugin isn't available in the browser, its repository documents a manual release installation path; our local plugin installation guide explains where those release files belong.

Step 4: Connect the Plugin to Ollama

Open Settings → Local LLM Helper and enter:

Provider
ValueOllama
Chat/default server URL
Valuehttp://localhost:11434
Chat model
Valuegemma3:4b or the exact installed tag
Embedding server URL
ValueLeave blank to reuse the chat server
Embedding API key
ValueLeave blank for the local Ollama server
Embedding model
Valuenomic-embed-text
3 localmodelpluginconfig

Use the plugin's model browser if it can discover your local models. Otherwise, paste the exact tags from ollama list. The plugin's current README says chat completion, embeddings, and model discovery use /v1/chat/completions, /v1/embeddings, and /v1/models; Ollama documents these routes in its OpenAI compatibility reference.

Don't increase context or output limits pre-emptively. Start with defaults, confirm a short request works, and raise limits only when a real note exceeds them.

Step 5: Index Notes for Retrieval

Saving the connection settings is enough for direct chat and text actions, but it doesn't make the vault searchable. Open the Command palette with Ctrl+P or Cmd+P, then run Notes: Index notes for RAG.

Indexing converts note text into embeddings and stores a retrieval index. Run it after the initial setup and again when the plugin indicates that the index is stale. For the first test, use a small folder with a few non-sensitive notes rather than indexing the whole vault immediately.

4 startwiththepluginlocalolama

After indexing, try a question whose answer exists in one note:

Using only my indexed notes, list the decisions in the project kickoff note.
Cite the note title for every decision. Say when the notes do not contain an answer.

Open the cited note and compare it with the response. This checks retrieval quality, not just whether the model can produce plausible prose.

A Practical Obsidian Workflow

A safe first workflow is a weekly project digest:

  1. Put three project notes in a test folder: goals, meeting notes, and an open-task list.
  2. Index those notes for RAG.
  3. Ask for decisions, unresolved questions, and overdue tasks, with a source note for each item.
  4. Review every citation against the original note.
  5. Copy the approved digest into a new Markdown note yourself.

This keeps the first run read-oriented and auditable. Once the answers are consistently grounded, you can allow narrower write tasks. For broader local-AI options, compare the workflow with our AI plugin guide. If cloud models suit your needs better, see the separate Obsidian API-key setup.

Troubleshooting

Obsidian Reports a Connection Error

Run curl http://localhost:11434/api/tags. If it fails, start Ollama. If it succeeds, verify that the plugin URL is exactly http://localhost:11434, without an unrelated path or port. Ollama's FAQ says the server binds to 127.0.0.1:11434 by default.

The Plugin Says the Model Does Not Exist

Run ollama list, then copy the complete tag into the relevant model field. Chat and embedding models are different; installing gemma3:4b doesn't also install nomic-embed-text.

Chat Works but Vault Questions Do Not

Confirm that you installed an embedding model and ran Notes: Index notes for RAG. Direct chat proves only that the chat endpoint works. Retrieval also depends on the embedding endpoint and an up-to-date index.

Responses Stop Early or Ignore Older Context

Shorten the request and retrieve fewer notes before increasing context. Larger context needs more memory. Check the active allocation with ollama ps, then adjust context only if the model and machine have headroom.

The Model Is Too Slow

Try gemma3:1b, close memory-heavy applications, and keep the retrieved note set narrow. A smaller grounded model can be more useful than a larger model starved of memory. Avoid claiming a universal tokens-per-second target because hardware and model builds vary.

Privacy and Security Boundaries

The plugin repository states that Local LLM Helper has no telemetry or hosted backend of its own, and sends data only to endpoints tied to the features you invoke. With both endpoints set to localhost, model requests remain on the local server.

Three caveats still matter:

  • Optional web search sends queries to its configured search provider.
  • A remote server URL sends prompts or excerpts to that server.
  • Notes can contain external embeds that Obsidian loads independently of the model request.

Also avoid exposing Ollama to your local network or the public internet merely to make another device connect. The default loopback binding is the safer boundary. If remote access is necessary, treat authentication, transport encryption, and firewall rules as a separate infrastructure task.

Limitations and When Not to Use It

Local models can hallucinate, miss relevant notes, or produce weak summaries. Retrieval reduces unsupported answers but doesn't eliminate them. Keep backups and review changes before allowing batch edits.

This setup is a poor fit when your computer cannot comfortably hold even a small model, when you need strong multimodal or frontier-model reasoning, or when several devices must share one always-available assistant. A hosted API may be simpler in those cases, but it creates different privacy and cost decisions.

Frequently Asked Questions

Does Ollama upload my Obsidian vault?

Ollama doesn't scan the vault by itself. Local LLM Helper sends selected text or retrieved note excerpts to the configured endpoint. With localhost-only endpoints, those model requests stay on the same machine; optional remote features can send data elsewhere.

Do I need a GPU?

No GPU is required to complete the setup, but CPU generation may be slower. Start with a small model and use ollama ps to inspect how Ollama loaded it.

Why do I need an embedding model?

Embeddings let the plugin find notes related to a question. They are required for semantic retrieval features, not for a simple prompt sent directly to the chat model.

Can I use a different chat model?

Yes. Pull it with Ollama and enter its exact tag in the plugin. Choose based on available memory, language needs, and the quality of answers on your own notes.

Will the assistant update its knowledge when notes change?

The language model itself does not learn from your vault. The retrieval index must reflect the current notes, so re-index when needed. The model receives relevant excerpts at request time.

Related Articles