Claude Code IDE
pendingby petersolopov
Connect your vault to Claude Code. Shares selections and open files with the CLI.
Obsidian as IDE for Claude Code
Minimal bridge between Obsidian and Claude Code — shares real-time editor context with the CLI, nothing more.
- Zero config — install, enable,
/ide, done - Zero dependencies — single
main.js, no runtime deps - Send to Claude — select text or a file in Obsidian
https://github.com/user-attachments/assets/79c7e68f-accd-42a8-9508-6d5953aa90c4
Install
Community plugin submission is pending review.
Install with BRAT:
- Install BRAT from Community Plugins
- BRAT settings → Add Beta plugin →
petersolopov/obsidian-claude-ide - Enable in Settings → Community plugins → toggle on Claude Code IDE
- In Claude Code: run
/ide→ select Obsidian
Manual install
- Download
main.jsandmanifest.jsonfrom the latest release - Create folder
claude-code-idein your vault's.obsidian/plugins/and put both files there - Enable and connect as above
How it works
The plugin runs an MCP server over WebSocket inside Obsidian.
Claude Code discovers it automatically and shows Obsidian in the /ide selector.
Once connected, Claude Code can see your open files and current selection.
Use the "Send to Claude" command to explicitly pass selected text as context.
Claude Code reads and edits files directly through the filesystem. The plugin provides editor context in the other direction — open files and selections. No diff view — edits appear directly in the file.
Security
- Localhost only — WebSocket server binds to
127.0.0.1, no network exposure - Per-session auth — unique token via
crypto.randomUUID(), verified on every connection - Read-only — plugin shares selections and open file names, never writes files or executes code
- Zero runtime dependencies — single bundled
main.js, no third-party code at runtime - No shared secrets — auth token readable only by your OS user, discarded on restart
Tips
Claude Code can call Obsidian CLI directly through the terminal — open daily notes, move and rename files with automatic link updates, search the vault, and more.
This plugin handles editor context, Obsidian CLI handles the rest.
Run obsidian help to see available commands.
Development
Requires Node.js 24+.
git clone https://github.com/petersolopov/obsidian-claude-ide
cd obsidian-claude-ide
npm install
npm run build
cp main.js manifest.json /path/to/vault/.obsidian/plugins/claude-code-ide/
Enable in Settings → Community plugins → toggle on Claude Code IDE.
FAQ
Why do I need this? Claude Code can already read files in my vault.
It can, and it still does. This plugin adds real-time editor context — Claude Code continuously sees which file is open and what text you selected. Instead of "I'm editing notes/project/todo.md, rewrite the second paragraph" you just say "rewrite the second paragraph".
How is this different from Obsidian CLI?
Different layers. Obsidian CLI lets Claude Code run commands — open files, search the vault, rename with automatic link updates. This plugin shares real-time editor context — which file is open, what's selected.
Is my vault data sent to Anthropic?
Yes. Claude Code sends your prompts and context to Anthropic's API — that's how it works, with or without this plugin. If your vault has personal notes you'd rather keep private, point Claude Code at a separate project vault instead.
Does it work on mobile?
No. The plugin needs Node.js APIs that only Obsidian desktop provides. Claude Code itself is a CLI tool, so desktop on both sides.
Does it work with Gemini CLI / Codex / other agents?
No. This plugin implements Claude Code's protocol only — zero dependencies, single file, instant startup. For multi-agent support (Gemini CLI, Codex, OpenCode) check out Agent Client.
More perspectives in the Reddit thread.
See also
- claudecode.nvim — Neovim integration, protocol documentation that made this plugin possible
- obsidian-claude-code-mcp — all-in-one alternative: embedded terminal, Claude Desktop support
License
For plugin developers
Search results and similarity scores are powered by semantic analysis of your plugin's README. If your plugin isn't appearing for searches you'd expect, try updating your README to clearly describe your plugin's purpose, features, and use cases.