ducktapekiller200 downloadsAI-powered assistant with chat, right-click actions, vault-wide RAG, and an extensible skill system. Supports Ollama, Claude, Gemini, OpenAI, Groq, OpenRouter, and LM Studio.
In Greek mythology, Horme (/ˈhɔːrmiː/; Ancient Greek: Ὁρμή) is the Greek spirit personifying energetic activity, impulse or effort (to do a thing), eagerness, setting oneself in motion, and starting an action, and particularly onrush in battle.

[!IMPORTANT]
Quick start
TLDR — For Non-Technical Users
To use this plugin's full capabilities, you need two local models:
- An Indexing Model: This model allows the plugin to interact with and index your notes.
- An Interaction Model: This is the model you will actually chat or “speak” with.
Prerequisites: Setting up Ollama
We recommend using Ollama to manage your local models. You can download it here: Download Ollama.
1. Download the Indexing Model: This model is only for indexing your vault in a compressed format; you cannot chat with it.
- Recommended Model:
nomic-embed-text:latest(274 MB).- Command (in your terminal):
bash ollama pull nomic-embed-text:latest2. Download the Interaction Model:
This is the model you will use for asking questions.
- Strong Recommendation:
gemma4:e4b(9.6 GB)- Command (in your terminal):
ollama pull gemma4:e4bManual Installation Steps
Once both models are downloaded, follow these steps to install Horme:
- Create Plugin Folder:
- Navigate to your hidden Obsidian folder:
.obsidian/plugins- Create a new folder named
horme.- Download Plugin Files:
- Go to the repository releases page: Horme Releases.
- Download the three files from the most recent release:
main.jsmanifest.jsonstyles.css- Activate in Obsidian:
- Go to Settings in Obsidian.
- Scroll down and toggle on “Enable Local Vault Memory”.
- Select the indexing model you just downloaded:
nomic-embed-text:latest.- Wait for the count in the status bar to finish processing.
Ready to Use
Once the indexing is complete, go to the Horme chat box and ask any question about your notes.
Example Query:
“I want to write an essay on modern art, help me find which of my notes can help me.”
When using local providers (Ollama/LM Studio), no data leaves your machine and no API keys are required. If you use a cloud provider, Horme stores API keys via Obsidian Secret Storage (not in
data.json).
main.js, styles.css, and manifest.json.horme inside your vault's .obsidian/plugins/ directory.| Dependency | Details |
|---|---|
| Ollama | Must be running locally at http://127.0.0.1:11434 (configurable). |
| Embedding Model | Specialized model for RAG (e.g. ollama pull nomic-embed-text or mxbai-embed-large). |
| Chat Model | Pull a model with ollama pull <model> (e.g. gemma3, llama3). |
| Obsidian | v1.11.4 or later (required for Secret Storage API keys). |
The Vault Brain gives the AI long-term memory of your entire knowledge base. It uses a high-performance, private Retrieval-Augmented Generation (RAG) engine.
The search engine uses a hybrid relevance scoring formula combining semantic embeddings, structured metadata matching, and a content-aware "deep scan".
The total score for any candidate chunk is: $$\text{Total Score} = \text{Vector Score} + \text{Metadata Bonus} + \text{Content Bonus}$$
With a maximum possible score of $1.45$, the relevance weights are precisely allocated as follows:
| Element | Max Score Contribution | Precise Relative Weight |
|---|---|---|
| Semantic Vector Similarity (Embeddings) | 1.00 |
$69.0%$ |
| Metadata Keyword Matching | 0.25 |
$17.2%$ |
| Content Body Keyword Matching (Deep Scan) | 0.20 |
$13.8%$ |
| Total | 1.45 |
$100%$ |
1.00, $69%$ Weight):-1.0 to 1.0).0.25, $17.2%$ Weight):"exact search"): +0.15 per term.+0.05 per matching word.resumen): +0.04 per matching word.+0.04 per matching word.+0.03 per matching word.0.20, $13.8%$ Weight):+0.15 per term.+0.05 per term.Horme can magically surface notes semantically related to what you're currently reading or writing in real-time. This feature runs entirely locally on top of the Vault Brain.
Manage large tag collections (3,000+ tags) with ease using the Hybrid Tag Suggester.
#pájaros) but retrieve them using another (e.g. English "birds"). This is fully decoupled from the chat model, allowing you to use a dedicated local model just for translations. This does not affect your real tags in any way. It is just for the index.Rebuild Tag Index in settings to refresh.Feed the AI your own grammar manuals and style guides. Horme indexes them locally and consults them during proofreading.
Automatically generate concise summaries and write them directly into your notes' YAML frontmatter.
summary, resumen, abstract) in settings.Horme: Generate frontmatter summary).Horme extends the LLM with modular skills that it can invoke autonomously during conversations and actions. Skills are tool calls the model emits when it needs external information.
| Skill | Type | Description |
|---|---|---|
| Wikipedia Search | 🌐 Web | Searches Wikipedia for factual verification. Supports multiple languages (en, es, fr, etc.). Returns summaries and relevant article sections with source URLs. |
| Wiktionary Lookup | 🌐 Web | Looks up word definitions, etymology, and usage notes. Useful for distinguishing false friends and verifying word existence. Multi-language. |
| DuckDuckGo Instant Answer | 🌐 Web | Quick facts and topic summaries for recent events, technical specs, and niche topics not covered by Wikipedia. No API key required. |
| Date Calculator | 💻 Local | Computes time differences between dates, verifies day-of-week for historical dates, and checks chronological consistency. Pure computation, zero latency. |
| Vault Linker | 📚 Index | Finds semantically related notes within your vault. Privacy-guarded — only available to local providers (or with explicit cloud opt-in). |
| Taxonomy Scholar | 📚 Index | Retrieves the full list of existing tags to ensure consistent tagging. |
| Grammar Scholar | 📚 Index | Consults your local grammar and orthography manuals for precision checks on syntax, false friends, and orthotypography. |
Beyond the built-in skills, you can create your own HTTP-based skills to connect Horme to any REST API (local or public). You just configure the URL, method, headers, and a response path.
Example: Open Library Book Search
GEThttps://openlibrary.org/search.json?q={{query}}&limit=3docsWhen armed, typing a query (e.g., "Don Quixote") replaces the {{query}} placeholder, makes the request, extracts the docs array, and injects it directly into the AI's context so it can answer your question using real-time data.
Horme is built with a "Privacy-First" architecture with four layers of protection on vault data.
Open the chat panel from the ribbon icon (▵) or the command palette (Horme: Open chat panel).
Send multiple notes as context to the AI in a single conversation.
Select text in any note to access professional editing tools via right-click ➔ Horme:
| Action | Description |
|---|---|
| Proofread | Fixes grammar, spelling, and punctuation. Consults your grammar manuals for the configured language. |
| Rewrite | Opens a tone picker: Formal, Friendly, Academic, Sarcastic, Aggressive, or Humanise. |
| Expand | Adds detail while preserving meaning. |
| Summarize | Condenses text to key points. |
| Beautify Format | Fixes heading hierarchy, normalizes lists and spacing. |
| Fact Check | Verifies each claim against Wikipedia. Returns structured verdicts with source citations. |
| Translate | Opens a language input modal. Translates to any language. |
Before any text is changed, Horme shows a side-by-side Original vs. Replacement modal. You review the changes and explicitly click Accept or Cancel. All changes are fully undoable with Ctrl+Z.
A professional progress indicator appears in the Obsidian status bar during background tasks:
The indicator is color-coded and disappears automatically when the task is finished.
Horme estimates the total token count of the conversation before sending. If the context (system prompt + note context + documents + history) exceeds ~6,000 tokens, a warning notice is displayed to prevent silent truncation.
Toggle "Use current note as context" to inject the active note's content. The plugin tracks the last focused markdown editor live, so switching tabs updates the context automatically.
Upload .txt and .md files directly into the chat. Horme injects the file content as context for the model.
Manage your past conversations via the History panel (🕑):
Export any conversation as a formatted Markdown note (⬇). The file is saved to the configured export folder with a timestamped filename, preserving the distinction between User and Assistant messages.
Create reusable system prompts (e.g. "Constitutional Law Professor", "Code Auditor", "Spanish Tutor") in settings. Switch between them from the preset dropdown in the chat header — no need to retype.
Override the global system prompt for specific notes by adding a horme-prompt key to the YAML frontmatter. This allows for note-specific personas that activate automatically when the note is in context.
---
horme-prompt: "You are an expert in constitutional law. Always cite legal precedent."
---
Horme supports multiple AI providers. Local providers are recommended for privacy.
| Provider | Type | Notes |
|---|---|---|
| Ollama | 🏠 Local | Default. Full feature access including Vault Brain. |
| LM Studio | 🏠 Local | Full feature access including Vault Brain. |
| Claude | ☁ Cloud | Vault Brain requires explicit opt-in. |
| Gemini | ☁ Cloud | Vault Brain requires explicit opt-in. |
| OpenAI | ☁ Cloud | Vault Brain requires explicit opt-in. |
| Groq | ☁ Cloud | Vault Brain requires explicit opt-in. |
| OpenRouter | ☁ Cloud | Vault Brain requires explicit opt-in. |
| Setting | Default | Description |
|---|---|---|
| Ollama Base URL | http://127.0.0.1:11434 |
Endpoint for the Ollama API. |
| Embedding Model | nomic-embed-text |
Model used for indexing (e.g. nomic-embed-text, mxbai-embed-large). |
| Vault Brain | Off |
Toggle for the semantic RAG engine and background indexer. |
| Allow Cloud RAG | Off |
Explicitly allow vault content to be sent to cloud providers. |
| Cloud API Keys | — | Stored in Obsidian Secret Storage (not in data.json). |
| Grammar Manual Folder | Gramática |
Folder containing your grammar reference notes. |
| Grammar Language | Español |
Language your grammar manuals cover. Proofreading only consults manuals for this language. |
| Summary Field | summary |
Frontmatter key where generated summaries are stored. |
| Summary Language | Español |
Language summaries are written in. |
| Max Tag Candidates | 250 |
Number of existing tags considered for semantic suggestions. |
| Debug logging | Off |
Enables extra developer-console logs (may include file paths). |
| Export Folder | HORME |
Vault-relative path for saved notes and exports. |
To install Horme, you need exactly three files:
| File | Purpose |
|---|---|
main.js |
Bundled plugin logic. |
styles.css |
Chat panel and modal styling. |
manifest.json |
Plugin metadata for Obsidian. |
DuckTapeKiller
MIT