English | 日本語
Native Claude Code IDE integration for Sublime Text 4 — in-editor diff review (accept/reject), live selection sharing, and @-mentions, speaking the same WebSocket/MCP protocol as the official VS Code and JetBrains extensions.
Unofficial community plugin — not affiliated with or endorsed by Anthropic. "Claude" and "Claude Code" are trademarks of Anthropic, PBC.
Status: core features working — server + context sharing (M1), in-editor diff review (M2), and parallel multi-session support are implemented and tested end-to-end against the real Claude Code client. Package Control submission in progress; manual install below works today.
Now that an agent writes much of the code, what should an editor be? Our answer:
- Instant and lightweight. Sublime opens in a blink and stays at ~100–300 MB while agent sessions, terminals, and browsers eat the rest of your RAM. The editor is where you read and judge code; it should never be the heavy part of the stack.
- Trivially extensible by you. In an LLM-first workflow, the editor is personal infrastructure: when Claude can write a Sublime plugin in minutes, a scriptable Python API beats a marketplace of prebuilt features. You compose exactly the cockpit you want — this plugin itself is proof.
- No bundled AI, by choice. AI-native IDEs (Cursor, Windsurf, …) and VS Code couple the agent to the editor — with their own subscription, model markup, and upgrade cadence. Claude Code is editor-agnostic; the missing piece was only the thin protocol layer that lets Sublime talk to it. This plugin adds that layer, so the editor stays fast and yours, and the agent stays first-class.
The longer argument — why coupling, not the editor, is the thing to choose: Don't Switch Your Editor — Connect the Agent
When Claude Code connects (via /ide or auto-connect), the plugin provides:
- In-editor diff review — Claude's proposed edits open as a side-by-side diff; accept, reject, or hand-edit before accepting (M2)
- Context sharing — current selection, open tabs, workspace folders, dirty state
selection_changedstreaming — Claude always knows what you're looking at@-mention — send the current selection range to the prompt- Show-me CLI —
scripts/open_file.py <path>surfaces any file in the side pane, from a terminal or from the agent itself — the channel for "Claude, show me what you made" (see FAQ) - Lock-file discovery — works from Terminus inside Sublime or any external terminal
- Clone this repo anywhere.
- Link it into Sublime's
PackagesasClaude Code IDE(any folder name works — imports are relative — but this one matches Package Control installs, so the Preferences menu entries resolve):- Windows:
mklink /J "%APPDATA%\Sublime Text\Packages\Claude Code IDE" "C:\path\to\repo" - macOS/Linux:
ln -s /path/to/repo "~/Library/Application Support/Sublime Text/Packages/Claude Code IDE"
- Windows:
- Restart Sublime Text. The status bar shows
Claude ○ :<port>when the server is listening. - In any terminal, run
claude, then/ideand pick Sublime Text.
Protocol core (claudeide/) is pure Python 3.8 with zero dependencies and never imports sublime, so it is unit-testable outside Sublime:
uv venv --python 3.8
uv pip install pytest
uv run pytestThe Sublime-facing layer lives in adapters/sublime_bridge.py + plugin_main.py.
Implements Claude Code's IDE integration protocol (WebSocket + MCP 2025-03-26): lock file at ~/.claude/ide/<port>.lock, localhost-only WebSocket with x-claude-code-ide-authorization, and the standard tool set (openFile, openDiff, getCurrentSelection, getOpenEditors, …).
Protocol reference: coder/claudecode.nvim PROTOCOL.md — huge thanks to that project for documenting it.
Yes — with this plugin. Claude Code has no built-in Sublime Text support (official extensions exist for VS Code and JetBrains), but its IDE integration is a documented WebSocket/MCP protocol. This plugin implements that protocol natively in Sublime, so features like in-editor diff review, selection context, and @-mentions work the same way they do in the official extensions.
No. It is an unofficial community plugin, not affiliated with or endorsed by Anthropic. It speaks the same protocol the official IDE extensions use, as documented by the claudecode.nvim project.
Two ways:
- Manual: run
claudein any terminal, type/ide, and pick Sublime Text. - Auto-connect: set a fixed
"port"in the plugin settings and exportCLAUDE_CODE_SSE_PORT=<port>andENABLE_IDE_INTEGRATION=truemachine-wide. Every newclaudesession then attaches to Sublime automatically (~2 s after launch), from any terminal — including Terminus inside Sublime.
The proposed change opens as a side-by-side diff tab in Sublime. Accept or reject it with the ✓/✗ buttons in the proposal pane (also in the command palette; ready-to-copy key bindings ship in Example.sublime-keymap), or edit the proposal by hand before accepting. Claude blocks until you decide — with default permission settings, nothing touches disk without your review.
Not via MCP — Claude Code exposes only getDiagnostics/executeCode from the ide server to the model, so the model can never call openFile itself, even while connected. The bundled CLI is the supported channel: it performs the same lock discovery + authenticated WebSocket handshake as Claude Code and calls the plugin's openFile directly — side-group placement and --preview (transient tab, no focus steal) included. It works from any terminal, even for sessions that never ran /ide:
python scripts/open_file.py path/to/report.html # show + focus
python scripts/open_file.py path/to/notes.md --preview # glance, no focus stealThen teach your agent (e.g. in CLAUDE.md): "when you produce a file I should look at, run scripts/open_file.py <path>" — deliverables start appearing in Sublime as they are made.
The CLI lives in the repository (scripts/ is excluded from the installed package), so run it from a cloned checkout — the manual-install setup above already has one.
The plugin itself sends nothing to the network. It runs a WebSocket server on 127.0.0.1 (localhost only, token-authenticated) that talks to the Claude Code process on your machine. What Claude Code itself sends to Anthropic is governed by Claude Code, exactly as when you use it without an IDE.
Yes. The server accepts concurrent clients, so several Claude sessions (e.g. one per project or task) can attach to the same Sublime instance in parallel; diff reviews from each are tracked independently.
The protocol core is dependency-free Python 3.8 (the Sublime Text 4 plugin host). Developed and tested end-to-end on Windows; macOS and Linux use the same code paths and are expected to work — issues and reports welcome.
Because the agent doesn't need to live inside the editor. Claude Code runs in a terminal; the editor's job is reading, judging, and occasionally hand-editing what the agent proposes — a job Sublime does instantly and in ~100–300 MB of RAM. Decoupling means you upgrade the agent and the editor independently, with no bundled subscription or lock-in. See Motivation.
Developed and maintained by Cognisant LLC — we help teams connect AI agents to the tools they already use. More writing at Cognisant Insights, including the Japanese companion to the motivation essay: エディタを替えるな、エージェントを繋げ.
MIT
