Local LLM Hub

by TAKESHI MORITA
5
4
3
2
1
Score: 57/100

Description

The Local LLM Hub plugin adds a local first AI workspace with chat, workflow automation, RAG search and MCP backed tool use, all routed through locally hosted models or OpenAI compatible endpoints. It can generate or modify workflows and SKILL.md based agent skills from plain language, execute them through a visual node editor, and keep execution history for debugging and retry flows. The chat interface supports attachments, vault tool calls, local MCP servers, reusable skills and semantic search over indexed notes and PDFs. It also integrates with Dashboard Hub and Discussion Hub, tracks AI made edits and can hide encrypted files from chat tools while still allowing workflow access with a password prompt. To use it fully you need a compatible LLM server and an embedding model for RAG.

Reviews

No reviews yet.

Stats

83
stars
22,169
downloads
7
forks
60
days
8
days
8
days
10
total PRs
0
open PRs
2
closed PRs
8
merged PRs
19
total issues
0
open issues
19
closed issues
330
commits

RequirementsExperimental

  • A compatible LLM server such as Ollama, LM Studio, vLLM, AnythingLLM, or another OpenAI compatible endpoint

  • At least one chat model available on the configured server

  • For RAG, a local embedding model such as nomic-embed-text

Latest Version

9 days ago

Changelog

Fixes

  • Fixed "Connection failed: socket hang up" errors that occurred immediately at the start of the second turn in multi-step reasoning (tool calls) against llama-router and llama.cpp backends.

    Servers built on cpp-httplib close the connection after a streamed response instead of honoring HTTP keep-alive. Since v0.22.0, the plugin fully finished each streamed turn before continuing, which returned that connection to Node's keep-alive pool — so the next tool/reasoning turn was sometimes handed a socket the server had already closed, and the request was reset.

    Streaming requests now run on a dedicated connection per turn (Connection: close, no socket pooling), restoring the behavior of v0.21.0 and earlier in a deterministic way. A regression test covers the exact failure mode (a server that closes the socket after a streamed response).

  • Updated the shared stream transport library (obsidian-llm-hub-common).

README file from

Github

Local LLM Hub for Obsidian

Your company's security policy blocks cloud APIs. But you refuse to give up AI-powered note automation.

Local LLM Hub brings the full power of Gemini Helper's workflow automation, RAG, MCP integration, and agent skills to a completely local environment. Ollama, LM Studio, vLLM, or AnythingLLM — your data never leaves your machine.

Workflow Execution


Why Local?

Every byte stays on your machine. No API keys sent to the cloud. No vault contents uploaded anywhere. This isn't a privacy "option" — it's the architecture.

What Where it stays
Chat history Markdown files in your vault
RAG index Local embeddings in workspace folder
LLM requests localhost only (Ollama / LM Studio / vLLM / AnythingLLM)
MCP servers Local child processes via stdio
Encrypted files Encrypted/decrypted locally
Edit history In-memory (cleared on restart)

If you use Gemini Helper at home but need something for work — this is it. Same workflow engine, same UX, zero cloud dependency.


Workflow Automation — The Core Feature

Describe what you want in plain language. The AI builds the workflow. No YAML knowledge required.

Create Workflows & Skills with AI

Create Workflow with AI

  1. Open the Workflow / skill tab
  2. Click Create workflow with AI (or Create skill with AI for an agent skill)
  3. Describe: "Convert the current page into an infographic and save it"
  4. Click Generate
  5. The AI produces a plain-language plan first — review it and click OK to proceed, Re-plan to give feedback and regenerate the plan, or Cancel to abort
  6. After generation, the AI runs a review over the result. If issues are found you can OK (with a confirmation prompt), Refine (regenerate using the review feedback), or Cancel. Clean reviews proceed automatically
  7. If the LLM produces invalid YAML, the plugin automatically re-prompts it with the parse error (up to 2 retries) before surfacing a recoverable failure view with the raw output
  8. The workflow is saved once you accept the final preview

Don't have a powerful local model? Click Copy Prompt, paste into Claude/GPT/Gemini, paste the response back, and click Apply.

Create Skill with External LLM

Create workflow / skill from any file:

When opening the Workflow / skill tab with a file that has no workflow code block, separate Create workflow with AI and Create skill with AI buttons are displayed. The header of an active SKILL.md also exposes Create skill with AI alongside Modify skill with AI so you can spin up a new skill without leaving the panel.

Modify with AI

Load any workflow, click AI Modify, describe the change. The same plan → generate → review flow runs. You can Refine the review result as many times as you want; each Refine triggers a new generation pass and a fresh review so the review always matches the final YAML. Reference execution history to debug failures.

Modify Skill with AI: When the active file is a SKILL.md, the Workflow / skill tab shows a Modify skill with AI button. It updates the SKILL.md instructions body and the referenced workflow file in a single pass, preserving the skill's frontmatter (name, description, workflow entries).

Modify Workflow with AI

Visual Node Editor

23 node types across 12 categories:

Category Nodes
Variables variable, set
Control if, while
LLM command
Data http, json
Notes note, note-read, note-search, note-list, folder-list, open
Files file-explorer, file-save
Prompts prompt-file, prompt-selection, dialog
Composition workflow (sub-workflows)
RAG rag-sync
Script script (sandboxed JavaScript)
External obsidian-command
Utility sleep

Workflow Panel

Event Triggers & Hotkeys

  • Event triggers — auto-run workflows on startup or file create / modify / delete / rename / open
  • Hotkey support — assign keyboard shortcuts to any named workflow
  • Execution history — review past runs with step-by-step details
Example: Sync a RAG Index on Startup

Create a workflow with a rag-sync node, select the RAG setting you want to update, and leave the path empty to run a full sync.

RAG sync workflow

Open Configure event triggers, enable Startup, and save. The workflow will run once the Obsidian workspace is ready.

Startup event trigger

Use History to confirm that the sync completed and to review its input, output, and duration.

RAG sync execution history

See the OKF workflow node reference at docs/okf/local-llm-hub-help/features/workflow-nodes.md.


Dashboard Hub Integration

Dashboard functionality is provided by the separate Dashboard Hub plugin. When both plugins are enabled, Local LLM Hub supplies its configured models, Chat handoff, Base generation, text rewriting, and Workflow generation/execution. Dashboard Hub also contributes its dashboard Agent Skill to Local LLM Hub at runtime.

Existing .dashboard files remain compatible. See the Dashboard Hub documentation for dashboard features, widgets, storage, and schema.


Discussion Hub Integration

Discussion Hub brings multiple AI providers into a shared conversation. When both plugins are enabled, Local LLM Hub automatically registers its configured text models with Discussion Hub. Responses are streamed into the discussion, and message attachments and the discussion system prompt are passed through to the selected model.

Configure your LLM server and models in Local LLM Hub, then select a Local LLM Hub model when creating or editing a Discussion Hub discussion. No additional integration settings are required.


AI Chat

Streaming chat with your local LLM. Thinking display, file attachments, @ mentions for vault notes, multiple sessions.

The header includes an expand/shrink control for the sidebar and a Save as note action. Manual exports use YYYYMMDD-HHmmss_Chat title.md, contain compact conversation content without history metadata, and overwrite the same chat's export when saved again.

Chat with RAG

Voice Input and Read-Aloud

Read answers aloud — Turn on Read responses aloud in the Vault tool menu. While it is on, a chip above the input says so and its ✕ switches it off. Each assistant bubble also has a speaker button to read that answer on demand, or stop one mid-sentence. Reading speed is adjustable right under the switch, and in Settings → Chat (0.5x to 5x; how fast a voice actually goes varies by voice - Windows voices typically stop speeding up past about 4x). While reading is on, the system prompt asks the model for a short spoken answer instead of Markdown, headings, lists, code or URLs.

Send dictated text — Turn on Send dictated text automatically in Settings to submit when pasted or dictated text ends with the send phrase (send it in English, editable per language). It works with OS dictation, Aqua Voice and similar tools.

Voice conversation — Install speech-popup and a microphone button appears above the send button. It always just opens the popup, so a popup you closed is one click away. While a conversation runs:

  • Speak, then send from the popup. speech-popup marks what it pastes with ⟦voice-chat⟧ (show --append), so the chat submits it as your message; an ordinary clipboard paste is left in the composer, and so is one that arrives while an answer is still being generated.
  • The answer is read aloud (turned on with the conversation), and the popup reopens about 2.5 seconds after the reading stops, so your own speech is not recorded back.
  • Turning read-aloud off with its chip keeps the conversation going: the popup still reopens after each answer, silently.
  • To finish: say the send phrase without dictating anything else (I'm done speaking by default). speech-popup closes as it always does, the chat receives an empty turn and reads it as "I'm done", so nothing has to be clicked. Pressing Enter on an empty popup, the ✕ on the voice conversation chip, and opening another chat end it too.
  • Finishing leaves the popup open. What it pastes afterwards keeps its words and loses the marker: the text lands in the composer without being sent, which is how you dictate a long message in several parts and send it yourself.
  • If Obsidian's PATH does not find the app, set the full path in Settings → Chat → speech-popup command. Failures are reported with the command and its own error.
  • On Flatpak Obsidian, allow the host portal once with flatpak override --user --talk-name=org.freedesktop.Flatpak md.obsidian.Obsidian, then set the binary's full host path (for example /home/you/.local/bin/speech-popup) as the command above; the plugin sends its commands through flatpak-spawn --host. Snap has no equivalent portal - use the AppImage or the Flatpak.

Watch the voice conversation demo on YouTube

Vault Tools (Function Calling)

Models with function calling support (Qwen, Llama 3.1+, Mistral) can directly interact with your vault:

read_timeline · read_note · create_note · update_note · rename_note · create_folder · search_notes · list_notes · list_folders · get_active_note · propose_edit · execute_javascript

Three modes — All, No Discovery, Off — selectable from the input area.

In Settings -> Workspace -> LLM vault tool folders, you can restrict LLM vault tools and LLM-triggered skill workflows to selected vault-relative folders. Leave it empty to allow the whole vault. This setting is separate from the RAG index folders setting and does not restrict RAG, manual attachments, @note mentions, MCP tools, or scripts.

The chat input's Vault tool menu controls only the model's built-in Vault tools. Vault: no discovery disables search_notes and list_notes, avoiding slow, token-heavy Vault exploration while keeping direct access to explicitly referenced/current notes. It does not disable RAG; use the separate RAG toggle to control retrieval from the RAG index.

Tool Settings

Vault: read only allows search and reading while blocking built-in tools that create, edit, delete, or rename files and folders. Select it in the chat Vault tool menu or a slash command. External MCP and skill tools retain their own permissions.

MCP Servers

Connect local MCP servers to extend the AI with external tools. MCP tools are merged with vault tools and routed via function calling — all running as local child processes.

Agent Plugins can contribute stdio MCP servers alongside namespaced skills. A tested plugin-managed server stays disabled normally and is started only for a chat turn where a skill from the same enabled package is active.

Chat with MCP

RAG (Local Embeddings)

Index your vault with a local embedding model (e.g. nomic-embed-text). Relevant notes and PDFs are automatically included as context. PDF text is extracted via PDF.js and chunked alongside Markdown files. Everything computed and stored locally.

A dedicated search interface for semantic vector search with keyword filtering, chunk editing, and AI-powered refinement.

RAG Search

  • Keyword filter — Narrow semantic search results by text or file path
  • Chunk editor — Edit result text, load adjacent chunks with automatic overlap removal
  • AI refine — Automatically expand context and clean up text using your local LLM

See the OKF RAG Search reference at docs/okf/local-llm-hub-help/features/rag-search.md.

Agent Skills

Inject reusable instructions into the system prompt via SKILL.md files. Activate per conversation. Skills can also expose workflows that the AI can invoke as tools during chat.

Create skills the same way as workflows — click Create skill with AI in the Workflow / skill tab and describe what you want. The AI generates both the SKILL.md instructions and the workflow. To edit an existing skill, open its SKILL.md and click Modify skill with AI in the Workflow / skill tab — the AI updates both the instructions body and the referenced workflow together.

Clickable skill chips: Active skill chips in the chat input area and on assistant messages are clickable and jump to the matching SKILL.md (built-in skills are shown as static labels).

Workflow error recovery: If a skill workflow fails during a chat, the failing tool call shows an Open workflow button. Clicking it opens the workflow file and switches to the Workflow / skill tab so you can immediately edit and re-run. Use Modify workflow with AI together with Reference execution history to let the AI fix the failing step.

Agent Plugins: Open Settings → Agent plugins, enter owner/repository or a public GitHub URL, and preview the Agent Plugin v1.0.0 package before installation. Packages are pinned to the reviewed commit and stored under .local-llm-hub/agent-plugins/; persistent package data is stored separately under .local-llm-hub/agent-plugin-data/. Installed skills appear as <plugin>.<skill>.

Plugin stdio MCP entries support ${PLUGIN_ROOT} and ${PLUGIN_DATA}. Local LLM Hub validates commands, arguments, environment variables, working directories, symlinks, paths, and package sizes before use. Successfully tested servers are activated only while a skill from the same enabled plugin is active.

Agent Skills

See the OKF agent skills reference at docs/okf/local-llm-hub-help/features/agent-skills.md.

Slash Commands & Compact History

  • Custom prompt templates triggered by /
  • /compact to compress long conversations while preserving context

File Encryption

Password-protect sensitive notes. Encrypted files are invisible to AI chat tools but accessible to workflows with password prompt — ideal for storing API keys or credentials.

Edit History

Automatic tracking of AI-made changes with diff view and one-click restore.


Setup

Requirements

Quick Start

  1. Install and start your LLM server
  2. Open plugin settings → select framework (Ollama / LM Studio / vLLM / AnythingLLM)
  3. Set the server URL (defaults pre-filled)
  4. Fetch and select your chat model
  5. Click Verify connection

The plugin data folder (chat history, RAG indexes, and workflow history) and the agent skills folder can both be changed under Settings → Workspace. Paths are relative to the vault; changing an existing folder moves its contents to the new location.

LLM Settings

RAG Setup

  1. Enable RAG in settings
  2. Fetch and select the embedding model
  3. Configure RAG index folders (optional — defaults to entire vault; this does not restrict Vault tools)
  4. Click Sync to build the index

For Ollama, enter the server root URL as http://localhost:11434. Do not append /v1; the plugin adds the required API paths automatically. A trailing slash is optional.

For large vaults, create multiple RAG settings for separate folders, sync each one, then create another RAG setting and enable Combine internal RAG settings. Select the synced source settings to search them together from one chat/search selector. Combined settings use the embedding server and model from the first selected source setting.

During sync, changed files are processed and saved in small file batches so large first-time indexes can recover from an Obsidian crash without starting over. This is separate from the RAG chunk size setting. If a PDF cannot be extracted, it is listed after sync, its checksum is saved, and it appears in the indexed file list with 0 chunks. It will not be retried on later syncs unless the PDF file changes. To force re-import, rename the PDF, modify the file, or clear/rebuild the RAG index.

You can also enable Use external index and enter one external index directory per line. Each directory must contain rag-index.json and rag-vectors.bin.

RAG Settings

MCP Server Setup

  1. Settings → MCP servers → Add server
  2. Configure: name, command (e.g. npx), arguments, optional env vars
  3. Toggle on — connects automatically via stdio

Portable Agent Plugin MCP servers are managed from Settings → Agent plugins instead of being added manually. Package updates are reviewed and installed as a new commit-pinned version.

Tool approval: Calls require approval by default. The dialog shows the server, tool, and arguments and offers Allow once, Always allow this tool, and Deny. Closing it denies the call. Enable Always approve in a server’s settings to skip all confirmations, or remove a tool from its allowed list and save to require approval again. Servers not saved in MCP settings only support one-time approval.

Workflow command nodes accept confirm: "false" to skip MCP approval, including automatic execution. Set vaultTools: "readOnly" to limit built-in Vault tools to search and reading; the default remains noSearch. These options are available in the node editor. Local LLM Hub calls MCP through command nodes and has no standalone mcp node.

MCP & Encryption Settings

Workspace Settings

Use LLM vault tool folders to control which folders automatic LLM vault operations can access. An empty value allows the whole vault.

Automatic chat history can be limited to a maximum number of saved chats; 0 keeps all histories. Existing installations default to unlimited and new installations to 100.

Chat Settings

Set Manual chat save folder to a vault-relative destination for Save as note. Leave it blank to use the vault root.

Workspace Settings

Supported Frameworks

Framework Chat Endpoint Streaming Thinking Function Calling
Ollama /api/chat (native) Real-time message.thinking field tools parameter
LM Studio (OpenAI compatible) /v1/chat/completions SSE <think> tags tools parameter
vLLM /v1/chat/completions SSE <think> tags tools parameter
AnythingLLM /v1/openai/chat/completions SSE <think> tags tools parameter

Using Cloud LLMs (OpenAI, Gemini, etc.)

The "LM Studio (OpenAI compatible)" framework works with any OpenAI-compatible API endpoint, including cloud services:

Service Base URL API Key
OpenAI https://api.openai.com Your OpenAI API key
Google Gemini https://generativelanguage.googleapis.com/v1beta/openai Your Gemini API key

RAG with cloud LLMs: Cloud LLMs cannot use local embedding models directly. To use RAG, configure the Embedding server URL in RAG settings to point to a local Ollama instance (e.g. http://localhost:11434) and select an embedding model like nomic-embed-text.


Installation

  1. Install BRAT plugin
  2. Open BRAT settings → "Add Beta plugin"
  3. Enter: https://github.com/takeshy/obsidian-local-llm-hub
  4. Enable the plugin in Community plugins settings

Manual

  1. Download main.js, manifest.json, styles.css from releases
  2. Create local-llm-hub folder in .obsidian/plugins/
  3. Copy files and enable in Obsidian settings

From Source

git clone https://github.com/takeshy/obsidian-local-llm-hub
cd obsidian-local-llm-hub
npm install
npm run build

Gemini Helper との関係 / Relationship to Gemini Helper

This plugin is the local-only sibling of obsidian-gemini-helper. Same workflow engine, same UX patterns, but designed for environments where cloud APIs are not an option.

Gemini Helper Local LLM Hub
LLM Backend Google Gemini API / CLI Ollama / LM Studio / vLLM / AnythingLLM / OpenAI-compatible APIs
Data destination Google servers localhost only
Workflow engine ✅ ✅ (same architecture)
RAG Google File Search Local embeddings
MCP ✅ ✅ (stdio only)
Agent Skills ✅ ✅
Image generation ✅ (Gemini) —
Web search ✅ (Google) —
Cost Free / Pay-per-use Free forever (your hardware)

Choose Gemini Helper when you want cutting-edge cloud models. Choose Local LLM Hub when privacy is non-negotiable.

Similar Plugins

info
• Similar plugins are suggested based on the common tags between the plugins.
Age Encrypt
2 years ago by Metin Ur
A plugin for Obsidian that provides age-based encryption for your notes.
Agent Client
4 months ago by rait-09
Bring AI agents into Obsidian via Agent Client Protocol (ACP), such as Claude Code, Codex and Gemini CLI.
Blur Mode
2 years ago by dangehub
Blur Mode - Blur elements on the obsidian interface for presentations or screenshots|模糊模式 - 对obsidian界面上的元素进行模糊处理以便演示或截图
Claudian
2 months ago by Yishen Tu
An Obsidian plugin that embeds Claude Code/Codex as an AI collaborator in your vault
Custom Commands
a year ago by Staaaaaaaaaan
Create custom commands to be executed in the command palette, and by hotkey. Currently supports opening specific notes, creating notes, inserting snippets, and executing sequences of commands.
DeepSeek Harness Native
a month ago by wuruihi
Obsidian 侧边栏内驱动本地 DeepSeek Harness (DSH) Web GUI,支持 vault 双向桥接与 DSH 服务自动管理。
DocFerry
3 months ago by Rosetta Zidian Guo
Publish one Obsidian note to a secure DocFerry share link.
Garble Text
5 years ago by kurakart
Obsidian plugin for exposing Obsidian's garbleText() function
Gemini Helper
2 months ago by TAKESHI MORITA
AI chat, workflow automation, semantic search (RAG), LLM Wiki (OKF) powered by Google Gemini. Works on both desktop and mobile.
Harper
2 years ago by Elijah Potter
ICOR for Life - Chat
a month ago by Paperless Movement S.L.
Talk to your AI team where the knowledge lives. A Claude chat inside the vault: it sees the note you have open and the text you selected, answers in readable ICOR cards, and archives your sessions as notes. Part of the ICOR for Life suite.
ICOR for Life - Connect
a month ago by Paperless Movement S.L.
Your app.myicor.com account inside your vault: ICOR Journey and Growth Assignment dashboards, knowledge-base search, reflections synced as notes you own, and myICOR context for Claude sessions. Part of the ICOR for Life suite.
Large Language Models
3 months ago by eharris128
The LLM plugin gives Obsidian users access to local and web-based, large language models via several chat interfaces: modal, widget, FAB window, and commands.
LLM Hub
2 months ago by TAKESHI MORITA
Obsidian plugin for AI chat, workflow automation, and semantic search — supports Gemini, OpenAI, OpenRouter, Grok, Ollama, and CLI backends
Local REST API with MCP
4 months ago by Adam Coddington
A secure REST API and Model Context Protocol (MCP) server for your vault.
MCP Connector
2 months ago by istefox
Your Obsidian vault, exposed to Claude and any MCP client. Runs inside Obsidian, on-device semantic search, no cloud round-trip, no binary to download.
Mesh AI
2 years ago by Chasebank87
Neural Composer
2 months ago by Oscar Campo
AI-Powered Graph Memory for Obsidian
Note Companion
4 months ago by nexus-jpf
Note Companion: AI assistant for Obsidian that goes beyond just a chat. (prev File Organizer 2000)
Nova
8 months ago by Shawn Duggan
Nova - AI plugin for Obsidian that edits your documents directly through natural conversation. Stop copying from chat, start collaborating with AI.
NSFW filter
2 years ago by catvatar
Obsidian Plugin adding a button to toggle visiblity of NSFW notes
Offline Whisper Transcription
2 months ago by David Manthey
Password Protect
3 years ago by Aspharmyx
Password Protection
3 years ago by Qing Li
This is a password plugin for protecting your private notes and diary, no encrypt, no decrypt.
Peekaboo
2 years ago by Wang Guoshi
An Obsidian plugin protects your privacy by setting a password to hide notes.
Personal Assistant
4 months ago by edonyzpc
A plugin that harnesses AI agents and streamlining techniques to help you automatically manage Obsidian.
Private Mode
a year ago by markusmo3
Qiaomu Reader
19 days ago by 向阳乔木
已上架 Obsidian 社区插件市场:搜索 Qiaomu Reader 安装。Read EPUB, PDF and MOBI, highlight passages, keep linked notes and ask optional AI.
Sidet
2 months ago by Jiao Yingxing
An easy-to-use AI chat plugin for Obsidian with side browsing, focused conversations, and vault-aware knowledge capture.
Sift
20 days ago by disasta-g
Search your notes with substring matching, operators, path and date filters, and ranked results in a large overlay.
Simple Disguise
2 years ago by slow-groovin
Obsidian plugin: disguise/obscure/hide the content in a very simple way
SystemSculpt AI
3 months ago by systemsculpt
Enhance your Obsidian App experience with AI-powered tools for note-taking, task management, and much, MUCH more.
Ultra Budget Tracker
9 days ago by Ahmed Hassan
Ultra Budget Tracker — turn bank SMS into structured transaction notes, budgets and balances inside Obsidian. Offline, desktop and mobile.
Vault Encrypt
10 months ago by Pluppen
Obsidian Plugin that encrypts/decrypts the entire vault.
Vaultend
2 months ago by Daewon Hwang
AI-powered vault maintenance for Obsidian — auto-tag, link, and clean up your notes with privacy controls and full undo.
Workbuddian
2 months ago by jiang198012
Obsidian 插件:把本地 CodeBuddy CLI 或 Hermes agent 变成 vault 内 AI 聊天——流式回复、@引用、双后端切换。Obsidian plugin turning local CodeBuddy CLI or Hermes agent into an in-vault AI chat with streaming, @-references, and dual backends.
WorkBuddy
a month ago by Jason
obsidian plugin for workbuddy