Skip to main content
Glama
Ponywen0819

Claude Code IDE for Obsidian

by Ponywen0819

Claude Code IDE for Obsidian

Connects the Claude Code CLI to Obsidian the same way the VS Code extension does: Claude can read your selection and open files, open files, show diffs you keep/reject, and run inside an embedded terminal.

Protocol is the WebSocket MCP variant reverse-engineered from the VS Code extension — compatible with coder/claudecode.nvim.

Build

npm install
npm run build        # -> main.js + styles.css
npm test             # protocol self-check (no Obsidian needed)

Install: copy main.js, styles.css, manifest.json into <vault>/.obsidian/plugins/obsidian-claude-code-ide/, then enable it in Settings → Community plugins.

Related MCP server: obsidian-mcp

Use

Enabling the plugin starts a WebSocket server on 127.0.0.1, writes ~/.claude/ide/<port>.lock, and is ready. Two ways to connect Claude:

  • Embedded terminal (auto-connect): ribbon icon → Claude Code terminal, or the command palette. Spawns claude with the env vars already set; it connects on its own.

  • Passive mode (no native deps): in any terminal, cd into the vault and run claude, then /ide → pick Obsidian.

node-pty (embedded terminal only)

The terminal needs node-pty, a native module that must match Obsidian's Electron ABI. It's an optional dependency — if it can't load, the terminal pane prints the passive-mode steps instead and everything else still works.

To enable it, rebuild against Obsidian's Electron:

npx electron-rebuild -v <obsidian-electron-version> -m node_modules/node-pty

Find the Electron version in Obsidian via Help → Debug info. Copy the rebuilt node_modules/node-pty next to main.js in the plugin folder.

Layout

File

Concern

src/ide-server.ts

WS server, JSON-RPC/MCP, auth, lock file (Obsidian-free, tested)

src/tools.ts

The 11 MCP tool handlers (Obsidian-free, tested)

src/main.ts

Plugin lifecycle + Obsidian EditorContext implementation + selection bridge

src/diff-modal.ts

openDiff keep/reject UI

src/terminal-view.ts

xterm.js + node-pty terminal

Not done

  • executeCode / getDiagnostics — no Obsidian equivalent (getDiagnostics returns []).

  • isDirty is always false (Obsidian autosaves; real dirty state isn't exposed).

A
license - permissive license
-
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
1Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/Ponywen0819/obsidian-claude-code-ide'

If you have feedback or need assistance with the MCP directory API, please join our Discord server