by isomoes
Zed extension for Claude Code CLI integration
# Add to your Claude Code skills
git clone https://github.com/isomoes/claude-code-zedThis repository has been archived and is no longer actively maintained.
We now focus on VSCode integration for Claude Code CLI. If you're looking for Claude Code editor integration, we recommend using VSCode instead of Zed.
Thank you to everyone who starred this repository and supported our work! 🙏
If you want to continue development of Zed integration, feel free to fork this repository and build upon this codebase.
A two-part system that integrates Claude Code CLI with Zed editor for AI-assisted coding.

Clone the repository:
No comments yet. Be the first to share your thoughts!
git clone https://github.com/jiahaoxiang2000/claude-code-zed.git
Install the Zed extension (Development Mode):
Cmd+Shift+P (macOS) or Ctrl+Shift+P (Linux/Windows) to open the command paletteclaude-code-extension folder in your cloned repositoryThe claude-code-server is automatically downloaded:
claude-code-server binary from GitHub releasesThe Claude Code extension runs as a Language Server Protocol (LSP) server and automatically activates when you open files with the following extensions:
.rs).js).ts, .tsx).py).md)To enable Claude Code integration for additional file types, edit the claude-code-extension/extension.toml file:
[language_servers.claude-code-server]
name = "Claude Code Server"
languages = ["Rust", "JavaScript", "TypeScript", "Python", "Markdown", "Go", "Java"]
[language_servers.claude-code-server.language_ids]
"Rust" = "rust"
"JavaScript" = "javascript"
"TypeScript" = "typescript"
"Python" = "python"
"Markdown" = "markdown"
"Go" = "go"
"Java" = "java"
After modifying the configuration, reinstall extention and restart Zed for the changes to take effect.
Once the extension is installed, follow these steps to connect Claude Code CLI with Zed:
Open a supported file in Zed: Create or open a file with one of the supported extensions (.rs, .js, .ts, .tsx, .py, .md)
Start Claude Code CLI: Open your terminal and run:
claude-code
Enable IDE integration: In Claude Code CLI, run:
/ide
Select the integration: Choose claude-code-server from the menu that appears
Test the connection:
Once connected, you'll have:
To confirm everything is working:
~/.claude/ide/[port].lockwasm32-wasi target:
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
rustup target add wasm32-wasi
The easiest way to develop and test changes:
Make your changes to the server code in claude-code-server/src/
Build and deploy in one command:
make dev-build
Restart Zed to use the updated binary
Test your changes (optional guided testing):
make dev-test
| Command | Description |
|---------|-------------|
| make dev-build | Build release version and deploy to Zed |
| make dev-debug | Build debug version and deploy to Zed |
| make dev-clean | Remove development deployment |
| make dev-test | Build, deploy, and show testing instructions |
| make status | Show current deployment status |
| make help | Show all available commands |
The Makefile automatically:
By default, the extension uses production behavior (downloads from GitHub releases). For developers who want to test local changes, you can enable development mode via the FORCE_DEVELOPMENT_MODE flag in claude-code-extension/src/lib.rs:
// Set this to true to always use local development binaries instead of GitHub releases
// DEFAULT: false (production behavior - downloads from GitHub)
const FORCE_DEVELOPMENT_MODE: bool = false;
When FORCE_DEVELOPMENT_MODE = false (DEFAULT):
claude-code-zed project directoriesWhen FORCE_DEVELOPMENT_MODE = true (DEVELOPMENT):
To enable development mode:
claude-code-extension/src/lib.rsFORCE_DEVELOPMENT_MODE to truemake dev-build to deploy your local binary# Check current status
make status
# Make changes to claude-code-server/src/lsp.rs
# Build and deploy
make dev-build
# Restart Zed and test
make dev-test
If you prefer manual control:
# Build the server
cd claude-code-server
cargo build --release
# Copy to Zed extension directory (macOS ARM example)
cp target/release/claude-code-server \
"$HOME/Library/Application Support/Zed/extensions/work/claude-code-zed/claude-code-server-macos-aarch64"
"Binary not found" after make dev-build:
make status to verify deploymentmake dev-clean && make dev-buildExtension compilation errors:
rustup target list --installed | grep wasm32-wasirustup updateConnection issues:
.rs, .js, .ts, .py, .md)This project consists of two components:
claude-code-zed)claude-code-server)~/.claude/ide/[port].lock)The system implements the Claude Code protocol as documented in claudecode.nvim PROTOCOL.md:
Zed Extension Startup:
Companion Server Launch:
claude-code-server starts as native process~/.claude/ide/[port].lockCLAUDE_CODE_SSE_PORT, ENABLE_IDE_INTEGRATION)Claude Code Discovery:
Bidirectional Communication: