Gemini Obsidian Extension plugin
A Gemini CLI extension that connects an Obsidian vault: semantic search, link graph, daily notes and section edits.
- 102 ★ on the repository
- Last commit
- ISC
Extended access
Why this level
- The extension creates, moves and edits notes in the vault and reads terminal session logs.
- First indexing loads the CPU and writes a local index into the home folder.
Install
- Works in
Manual install
gemini extensions install https://github.com/thoreinstein/gemini-obsidianThe first install command from the README. Run `npm install` in the extension directory afterwards.
Access and checks
How we reviewExtended accessThe tool runs code or makes network calls and only reads external data.
- The extension creates, moves and edits notes in the vault and reads terminal session logs.
- First indexing loads the CPU and writes a local index into the home folder.
This is third-party code. Review the repository files before installing.
What it does
A Gemini CLI extension that gives the agent access to a local Obsidian vault. The agent reads, searches, creates and moves notes and edits frontmatter and individual sections. Semantic search builds a local LanceDB index and answers questions about your notes. The knowledge graph is covered by backlinks, outgoing links and a broken-wikilink audit. The daily note takes timestamped entries under a chosen heading. The package ships the slash commands `/obsidian:daily`, `/obsidian:recap`, `/obsidian:ask`, `/obsidian:search` and `/obsidian:index`, plus the skills `compound`, `moc-update` and `link-audit`.
Who it is for. Gemini CLI users who keep notes in Obsidian and want to query the vault with an agent and feed the daily note from the terminal.
Good fit when
- A question about accumulated notes such as "what did I write about React".
- Terminal session recaps go into the daily note through `/obsidian:recap`.
- The vault has grown and it is time to find broken wikilinks and orphan notes.
- Frontmatter of dozens of notes is updated in a batch.
Not a fit when
- You work in Claude Code or Cursor: the extension is built for Gemini CLI.
- The vault has no `.obsidian` folder: only an existing vault path is accepted.
- Tokens or passwords were pasted into terminal sessions that day: `obsidian_harvest_cli_sessions` pulls your prompts into the model context.
Example request
`/obsidian:ask "What did I learn about React?"` and list the notes the answer relies on.Limitations
Node.js 18 or newer and a manual `npm install` in the extension directory are required: without it semantic search fails with an error about `@lancedb/lancedb`. First indexing of a large vault is slow: 957 notes took about 11 minutes with nearly four CPU cores busy. The index lives in `~/.gemini-obsidian-lancedb` and the vault path in `~/.gemini-obsidian.config.json`. The harvest tool does not read legacy `.json` Gemini CLI sessions.
How to disable. Remove the extension through Gemini CLI extension management or delete `~/.gemini/extensions/gemini-obsidian`. Delete the `~/.gemini-obsidian-lancedb` index and the `~/.gemini-obsidian.config.json` file by hand.
FAQ
How do I install the Obsidian extension for Gemini CLI?
Run `gemini extensions install https://github.com/thoreinstein/gemini-obsidian`, then `npm install` in `~/.gemini/extensions/gemini-obsidian`. Without the second step the native semantic-search dependencies are missing.
How do I set the vault path?
Set the `OBSIDIAN_VAULT_PATH` variable or wait for the first call: the agent asks for the path and calls `obsidian_set_vault`. The path must point to a folder containing `.obsidian`.
How do I speed up indexing a large vault?
Run `node dist/index.js obsidian_rag_index` from the extension directory outside a chat and tune `GEMINI_OBSIDIAN_EMBED_BATCH_SIZE` and `GEMINI_OBSIDIAN_TARGET_CHUNK_CHARS`. Larger chunks speed things up but reduce retrieval granularity.
Which slash commands does the extension include?
`/obsidian:daily` opens the daily note, `/obsidian:recap` gathers session recaps, `/obsidian:ask` answers from the vault, `/obsidian:search` searches by name and text and `/obsidian:index` rebuilds the index.
Where is the semantic search index stored?
In `~/.gemini-obsidian-lancedb`. If the index gets corrupted, delete the folder: the next `/obsidian:index` or `obsidian_rag_index` recreates it.
Discussion
No questions or reviews yet.
Related
PluginsAn Obsidian vault with skills for work meetings: Gmail transcripts, participants, follow-up tasks and weekly recaps.
Obsidian Hybrid Search
obsidian-hybrid-search
Local Obsidian vault search: agents find notes by meaning, words, tags and links through MCP, CLI or a plugin.
A CLI that builds a local notes index with catalyst questions so the agent finds material faster than plain grep search
A Gemini CLI extension for working with Google Docs, Sheets, Slides, Gmail, Chat, Calendar and Drive from the terminal
An Obsidian vault template with hooks, commands and skills that gives Claude Code, Codex and Gemini CLI persistent memory across sessions
Agent Client for Obsidian
Agent Client
An Obsidian plugin that runs Claude Code, Codex and other agents via the Agent Client Protocol right inside your notes vault
Comparison with similar tools
Cards that share the main search query, and how they differ.
| Tool | Official | Authentication | Repository stars | Main difference |
|---|---|---|---|---|
| Gemini Obsidian Extension (this card) | no | 102 | ||
| Obsidian MCP | no | not required | 751 | an MCP server for vault files; this is a Gemini CLI extension with a semantic index and slash commands |
| Obsidian skills | no | 52,183 | skills about Obsidian formats; this one adds working tools for reading, searching and writing notes |
README in short
The extension combines search, link graph, note management and journaling. For the first indexing of a large vault the author recommends a separate terminal run. Extension errors go to stderr because it runs as an MCP server.