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

VCoder IDE

weankweank2 downloads

Connect your vault to the vcoder CLI: share selections, review proposed edits as diffs, surface broken links and note lint as diagnostics.

Add to Obsidian
  • Overview
  • Scorecard
  • Updates4

Connect an Obsidian vault to the vcoder CLI through its /ide command. Obsidian then acts as vcoder's IDE:

Capability What happens
Selection sync vcoder sees which note is open and what text you selected. The prompt footer shows ⧉ N lines selected, so you can say "rewrite this paragraph".
Send to vcoder Command, editor right-click, or file-menu entry. Inserts @note.md#L3-5 into the vcoder prompt.
Diff review When vcoder asks permission to edit a note, a diff tab opens in Obsidian (unified or side by side, with word-level highlights). Choose Accept, Reject, or Edit proposal, then accept your edited version.
Note diagnostics getDiagnostics reports unresolved [[links]] / ![[embeds]], missing #heading / #^block targets, invalid or duplicate frontmatter keys, unclosed code fences, heading level skips and duplicate headings. vcoder sees any new problems its edits introduce automatically.
openFile The model can open a note and highlight a passage for you.

Requirements

  • Obsidian desktop 1.7.2 or later. Mobile is not supported.
  • vcoder CLI 2.1.282 or later. vcoder is an AI coding agent for the terminal. Install it from either source:
    • Native binary: weank1984/vcoder-releases
    • Node.js package: npm install -g @voyah-ai/vcoder-node

The plugin does nothing on its own. It only serves a vcoder session running on the same machine.

Install

  1. In Obsidian, open Settings → Community plugins → Browse and search for VCoder IDE.
  2. Install the plugin, then enable it.

Manual install:

  1. Download main.js, manifest.json and styles.css from the latest release.
  2. Put them in <vault>/.obsidian/plugins/vcoder-ide/.
  3. Enable the plugin.

From source (development):

  1. Run npm install && npm run build.
  2. Symlink main.js, manifest.json and styles.css into <vault>/.obsidian/plugins/vcoder-ide/.

Use

cd /path/to/vault
vcoder          # then run /ide and pick "Obsidian"
  • You must start vcoder inside the vault directory (or a subfolder). vcoder only lists IDEs whose workspace contains the current directory.
  • Auto-connect: click the vcoder ○ status bar item to copy a launch command. The command includes VCODER_SSE_PORT=<port>, which makes vcoder connect to Obsidian on startup. vcoder --ide also works.
  • VS Code integrated terminal: if you run vcoder there, it prefers VS Code. Use the copied command with VCODER_SSE_PORT.
  • Diff review:
    • Closing the diff tab by hand counts as Reject.
    • Answering in the terminal closes the Obsidian tab.
    • The diff only opens when vcoder asks for permission. In auto-accept modes, edits are applied directly.
    • To turn the diff off, set Diff tool → terminal in vcoder /config.
  • openFile needs vcoder 2.1.282 or later. Older versions do not expose this tool to the model.

Settings

Setting Purpose
Lockfile directory Defaults to $VCODER_HOME/ide or ~/.vcoder/ide. If you start Obsidian from the Dock, it does not inherit shell variables. In that case, set this explicitly when you use a custom VCODER_HOME.
Share active note Sends the open note even when nothing is selected.
Diff layout Unified or side by side.
Diagnostics Turn each of the four rule groups on or off, and set the vault scan limit.

Relation to other plugins

Claude Code IDE connects Obsidian to Anthropic's Claude Code. This plugin connects to vcoder instead. Each CLI discovers IDEs through its own lockfile directory, so the two plugins do not interfere and can be installed side by side.

This plugin is an independent implementation. It is not a fork and shares no code. Besides selection sharing, it adds:

  • in-Obsidian diff review
  • note diagnostics
  • openFile

Network use, file system and clipboard access

  • Network. The plugin runs a WebSocket server on 127.0.0.1 only. Only the vcoder CLI on the same machine connects to it. The plugin makes no outbound requests and contacts no remote services.
  • Files outside the vault (Node fs). The plugin writes one lockfile, ~/.vcoder/ide/<port>.lock (or $VCODER_HOME/ide, or the Lockfile directory setting). vcoder reads this file to discover the running Obsidian instance. The plugin deletes it when it unloads. It reads or writes no other files outside the vault.
  • Vault enumeration. When vcoder calls getDiagnostics without a file, the plugin lists the vault's Markdown notes and checks them, up to the Vault scan limit (default 5000). The results go only to the local vcoder session.
  • Clipboard. The plugin only writes to the clipboard, and only when you click the status bar item or run Copy vcoder launch line for this vault. It copies the launch command. It never reads the clipboard.

Security

  • The WebSocket server binds to 127.0.0.1 only. It uses a random port and a per-start random token (crypto.randomUUID).
  • The token is checked on every connection and stored only in an owner-only (0600) lockfile. The lockfile is deleted on unload.
  • Paths outside the vault are rejected (openDiff errors, so vcoder falls back to its terminal prompt).
  • The plugin never writes your notes. Accepted diffs are applied by vcoder itself.
  • There is no code execution. executeCode is not implemented.

Protocol

The plugin implements the vcoder IDE contract:

  • Lockfile: <vcoder home>/ide/<port>.lock with contents {workspaceFolders, pid, ideName, transport:"ws", authToken}.
  • Server: MCP over WebSocket, subprotocol mcp, header X-Claude-Code-Ide-Authorization.
  • Notifications to vcoder: selection_changed, at_mentioned.
  • Tools: openDiff (blocking; returns FILE_SAVED+contents / DIFF_REJECTED / TAB_CLOSED), close_tab, closeAllDiffTabs, getDiagnostics, openFile, getWorkspaceFolders, getOpenEditors, getCurrentSelection, getLatestSelection, checkDocumentDirty, saveDocument.

Development

npm run dev        # esbuild watch → main.js
npm run lint       # eslint-plugin-obsidianmd (same rules as the community directory review)
npm test           # vitest: lockfile, MCP server wire contract, diff, diagnostics rules
npm run build      # tsc + production bundle
npm run fake-ide -- /tmp/vault   # headless IDE peer (FAKE_IDE_DIFF=accept|reject|hold) for testing a real vcoder CLI
  • src/core/ has no Obsidian imports and is fully unit tested.
  • src/obsidian/ is the adapter layer (views, editor extension, metadata cache).
  • test-vault/ contains seeded problems for every diagnostic rule. Symlink this repo to test-vault/.obsidian/plugins/vcoder-ide and open the folder as a vault.

Releasing

npm run release -- 0.1.1   # bump manifest/versions/package, lint, test, build, commit, tag
git push && git push origin 0.1.1   # push the tag on its own; CI (.github/workflows/release.yml) publishes the release

The tag must equal the manifest.json version, with no v prefix. Obsidian installs and updates the plugin from the release that matches this version. The release workflow adds GitHub build provenance attestations for main.js, manifest.json and styles.css (verify with gh attestation verify main.js -R weank1984/obsidian-vcoder-ide).

HealthExcellent
ReviewSatisfactory
About
Connect Obsidian to a local vcoder CLI session and turn your vault into vcoder's IDE, syncing the open note and selected text into the model's prompt. Send selected passages or whole files to vcoder with precise note anchors and let vcoder open files and highlight passages. Review proposed edits in a diff tab (unified or side-by-side with word-level highlights) to accept, reject, or edit proposals, and surface diagnostics for broken links/embeds, missing heading/block targets, invalid or duplicate frontmatter keys, unclosed code fences, and duplicate headings.
AIIntegrationsReview
Details
Current version
0.1.3
Last updated
7 hours ago
Created
8 hours ago
Updates
4 releases
Downloads
2
Compatible with
Obsidian 1.7.2+
Platforms
Desktop only
License
MIT
Report bugRequest featureReport plugin
Author
weankweankweank1984
GitHubweank1984
  1. Community
  2. Plugins
  3. AI
  4. VCoder IDE

Related plugins

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.

Agent Client

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

Snipd Official

Sync Snipd podcast highlights to your vault with transcript, notes, AI summaries and metadata.

Claude Sidebar

Run Claude Code in your sidebar.

Claude Code IDE

Connect your vault to Claude Code and share editor context with the CLI.

Plaud Sync

Sync Plaud voice recordings into Markdown notes with transcripts, AI summaries, and highlights.

LearnKit

A native study system for your Obsidian vault. LearnKit turns notes into durable knowledge with flashcards, spaced repetition, tests, and more.

BRAT

Easily install a beta version of a plugin for testing.

Claudian

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

Copilot

Run AI agents such as Claude Code, Codex, and OpenCode inside your vault. Turn your second brain into a smart assistant that gets knowledge work done.