Search...Search plugins and themes...
⌘K
Sign in
  • Get started
  • Download
  • Pricing
  • Enterprise
  • Account
  • Obsidian
  • Overview
  • Sync
  • Publish
  • Canvas
  • Mobile
  • Web Clipper
  • CLI
  • Learn
  • Help
  • Developers
  • Changelog
  • About
  • Roadmap
  • Blog
  • Resources
  • System status
  • License overview
  • Terms of service
  • Privacy policy
  • Security
  • Community
  • Plugins
  • Themes
  • Discord
  • Forum / 中文论坛
  • Merch store
  • Brand guidelines
Follow us
DiscordTwitterBlueskyThreadsMastodonYouTubeGitHub
© 2026 Obsidian

Lina

Anselmo PinheiroAnselmo Pinheiro195 downloads

Lina — Privacy-Focused AI Note Assistant

Add to Obsidian
  • Overview
  • Scorecard
  • Updates14

AI-powered note assistant and hybrid search engine for Obsidian. Features local indexing, semantic search, contextual slash commands, and privacy-first AI analysis.

User Manual | Commands Guide | Changelog


Overview & Key Features

Lina helps you find, connect, and enrich Markdown notes in Obsidian without taking control away from you.

  • 🔍 Hybrid Search: Combines fast local text indexing with semantic vector embeddings into a single ranked list.
  • ⚡ Contextual Slash Commands: Execute /ask (AI note query), /tags (smart tag suggestions), and /yaml (frontmatter generation) directly from the sidebar input.
  • 🔒 Privacy First: All indexing data is stored locally in .lina/index/. Zero network requests by default. Remote AI providers are contacted only when explicitly configured and triggered.
  • 🛡️ Explicit Confirmation: AI responses, tag additions, and YAML fields are applied to active notes only after your explicit confirmation.
  • 📱 Mobile & Sync Friendly: Memory-aware safeguards for mobile devices (validated on Android) with opt-in binary shadow sets and Syncthing support.

Quickstart & Installation

Option 1: Manual Installation

  1. Download manifest.json, main.js, and styles.css from the latest release.
  2. Create the directory <Vault>/<configDir>/plugins/lina/ (where <configDir> is your vault's Obsidian config directory, default .obsidian).
  3. Copy the downloaded files into that folder.
  4. Enable Lina under Obsidian Settings > Community Plugins.

Option 2: Community Plugins

Search for Lina in Obsidian Community Plugins once officially listed.

First-Time Indexing Note:
When installed for the first time, Lina does not auto-build the full index. Open the Lina side panel and click Rebuild Index (or run the rebuild index command). Once a valid index exists, Lina keeps it updated automatically in the background.


Features & Side Panel

The Lina panel lives in Obsidian's right sidebar. It serves as your search interface and AI assistant hub.

Search Modes

  • Hybrid (Recommended): Combines text (default weight 0.7) and semantic similarity (default weight 0.3).
  • Text: Fast local search by note title, path, or content. Supports exact, prefix, and substring matching.
  • Semantic: Meaning-based search powered by vector embeddings. Requires generated embeddings.

Contextual Slash Commands (/ask, /tags, /yaml)

Type a slash command in the sidebar input to interact with your notes using AI:

  • /ask <prompt>: Queries the configured AI provider about the active note context. Insert responses below selection, replace selection, or append to note after confirmation.
  • /tags: Asks AI to suggest tags for the context. Displays checkboxes to apply non-duplicate tags with confirmation.
  • /yaml: Asks AI to suggest frontmatter fields. Displays checkboxes to safely apply new fields without overwriting existing data.

Context Selection Order:

  1. Selected text in active Markdown editor.
  2. Preserved selection captured from the active note (if focus shifted to panel).
  3. Active note content.

[!NOTE] All slash commands recheck context against configured path and term exclusions before contacting an AI provider.


AI Providers & Model Configuration

Lina allows separate provider and model configurations for Analysis AI (Chat/LLM) and Embeddings.

Provider Type Embeddings Chat / Analysis Recommended / Default Models
Ollama Local ✅ ✅ Embeddings: nomic-embed-text-v2-moe
Chat: gemma4:e2b
Mistral Remote (API) ✅ ✅ Embeddings: mistral-embed
Chat: mistral-small-latest
OpenRouter Remote (API) ❌ ✅ Chat: Configurable model

Configuration Details

  • Base URLs: Automatically populated for Ollama (http://localhost:11434), Mistral (https://api.mistral.ai/v1), and OpenRouter (https://openrouter.ai/api/v1), customizable.
  • Model Selection: Ollama and Mistral select models via dropdown catalog; OpenRouter uses a free-text input field for model identifiers.
  • API Keys: Per-device structure. Keys start empty and require explicit save or clear actions.
  • Batch Size: Configurable (1–50) for native batching with Mistral and modern Ollama (/api/embed). Legacy Ollama endpoint fallback processes 1 item per request.

Mobile & Multi-Device (Syncthing)

Desktop & Mobile Support

  • isDesktopOnly: false. Manually validated on Desktop (Windows) and Android (Samsung Galaxy S23 Ultra, One UI 8.5, 8 GB RAM).
  • On mobile devices, local Ollama is usually unavailable. Remote providers (or text-only search) are recommended.
  • Memory safeguards prevent dangerous allocations. If embeddings exceed safe memory budgets, Lina reports no-safe-source and falls back to text search.

Recommended Syncthing Workflow ("PC Producer / Mobile Consumer")

  1. PC Producer: Generate the text index and canonical embeddings.jsonl on desktop. Optionally maintain the experimental binary shadow copy (embeddings.vectors.f32).
  2. Sync Vault: Sync the .lina/index/ directory to your mobile device via Syncthing.
  3. Mobile Consumer: Mobile syncs the pre-built index and validates the publication id, using the safe index for search without high-memory rebuilding overhead.

For full .stignore rules and step-by-step instructions, see the Syncthing Guide in the User Manual.


Experimental Binary Embedding Storage

An opt-in derived shadow copy (embeddings.binary.manifest.json, embeddings.meta.jsonl, embeddings.vectors.f32) is available for advanced users:

  • Canonical Source: .lina/index/embeddings.jsonl remains the source of truth.
  • Preference: maintainBinaryEmbeddingCopy (default off) and embeddingStorageReadPreference (prefer-binary).
  • Safety: Binary is accepted only when all three files are valid and match the canonical publicationId. Falls back safely to JSONL or text search.

Privacy & Local Data Storage

  • Data Path: Local index operational data is stored strictly in .lina/index/.
  • No Web Storage: Lina does not use localStorage or sessionStorage. Settings use Obsidian's loadData/saveData APIs.
  • Network Boundaries: Zero network traffic by default. External APIs are called only when you explicitly configure a remote provider and run an action.

Development

# Install dependencies
npm ci

# Build plugin bundle
npm run build

# Run official Obsidian linters
npm run lint:obsidian
npm run lint:obsidian:strict

Key build artifacts: manifest.json, main.js, styles.css.


License

MIT License

HealthExcellent
ReviewCaution
About
Lina creates a local textual index (`.lina`) of your Obsidian notes, splitting them into searchable text blocks. It supports search by note name, path or content, plus hybrid search that combines textual and local semantic search with relevance, similarity and source indicators. With local AI through Ollama, Lina can analyse notes and suggest YAML, tags, links, tasks and folder organisation without automatically modifying your files.
SearchAI
Details
Current version
0.1.15
Last updated
2 weeks ago
Created
2 months ago
Updates
14 releases
Downloads
195
Compatible with
Obsidian 1.13.0+
Platforms
Desktop, Mobile
License
MIT
Report bugRequest featureReport plugin
Sponsor
Buy Me a Coffee
Author
Anselmo PinheiroAnselmo Pinheiroanselmopinheiro
GitHubanselmopinheiro
  1. Community
  2. Plugins
  3. Search
  4. Lina

Related plugins

Smart Connections

Find related notes and excerpts while writing. Your AI link building copilot displays relevant content in graph + list view. A local embedding model powers semantic search. Zero setup. No API key.

Smart Lookup

Semantic search for your vault. Ask in natural language, find notes by meaning when exact words fail, preview matching notes, and turn forgotten ideas into links, context, and next steps.

Similarity

Bring semantic search to Obsidian — find related notes by meaning, not just shared keywords. All embedding generation and search runs 100% locally on your device: no API keys.

Claudian

Embeds Claude Code/Codex and other local Agents as AI collaborators in your vault.

Tag Wrangler

Rename, merge, toggle, and search tags from the tag pane.

Fast Note Sync

Real-time sync of your vaults across server, mobile, and web; shareable with anyone; supports REST and MCP integrations to build your personal AI knowledge base.

Copilot

Your AI Copilot: Chat with Your Second Brain, Learn Faster, Work Smarter.

Quick Switcher++

Enhanced Quick Switcher, search open panels, and symbols.

Omnisearch

Intelligent search for your notes, PDFs, and OCR for images.

Agent Client

Chat with Claude Code, Codex, Gemini CLI, and more via the Agent Client Protocol — right from your vault.