Unofficial community port — This is an independent Eclipse IDE adaptation of the Claude Code VS Code extension. It is not affiliated with, endorsed by, or maintained by Anthropic.
An Eclipse IDE plugin that integrates Claude Code — Anthropic's AI-powered CLI — directly into your Eclipse development environment.
- Open Eclipse and go to Help → Install New Software
- Click Add and enter:
- Name:
Claude Code - URL:
https://eilonwy06.github.io/claudecode-eclipse-ide/com.anthropic.claudecode.eclipse.site/
- Name:
- Select the Claude Code for Eclipse IDE feature and follow the install prompts
- Restart Eclipse when prompted
- Eclipse IDE (tested with Eclipse 2023-12+)
- Java 21 or later
- Claude Code CLI installed and available on your PATH
- A valid Anthropic API key
- Windows: x86_64
- Linux: x86_64 and aarch64 (ARM64)
- macOS: aarch64 (Apple Silicon) and x86_64 (Intel)
The Claude Terminal view embeds the Eclipse Terminal, so these bundles must be present (version 1.1.0 or newer, within the 1.x range):
org.eclipse.terminal.controlorg.eclipse.terminal.connector.processorg.eclipse.terminal.connector.local
…plus their transitive dependencies (notably CDT's native PTY support, org.eclipse.cdt.core.native), which p2 resolves automatically.
These bundles ship with most Eclipse packages (Eclipse IDE for C/C++ Developers, for Committers, for Enterprise Java Developers, and the full SDK), and the plugin's feature declares them, so p2 normally pulls them in during installation. If you're on the minimal Eclipse IDE for Java Developers and installation reports them as missing, install them first via Help → Install New Software from the main Eclipse release update site (search for Terminal). A reasonably recent Eclipse release is required, since Terminal 1.1+ ships only in newer versions.
- Install Node.js (v18 or later) from nodejs.org if you don't have it
- Install Claude Code CLI globally via npm:
npm install -g @anthropic-ai/claude-code
- Verify the install — open a terminal and run:
You should see a version number. If the command is not found, ensure your npm global bin directory is on your PATH.
claude --version
Claude Code CLI requires an Anthropic API key to function. You have two options:
Option A — Interactive login (recommended):
claude authFollow the prompts to log in. Your credentials are stored securely and reused automatically.
Option B — Environment variable:
Set ANTHROPIC_API_KEY in your environment before launching Eclipse:
- Windows: In System Properties → Environment Variables, add
ANTHROPIC_API_KEY=sk-ant-... - macOS/Linux: Add to your shell profile (
~/.bashrc,~/.zshrc, etc.):export ANTHROPIC_API_KEY="sk-ant-..."
You can get an API key from console.anthropic.com.
Go to Window → Show View → Other → Claude Code and open the views you want:
- Claude Code — a VS Code-style graphical chat panel. A row of directory tabs sits on top, one per working folder, each with its own conversations and its own session history; beneath it, multiple conversation tabs run concurrently, each backed by its own Claude process. Model, reasoning effort, extended thinking and permission mode are set per conversation. Also: an in-panel status bar (live model, context usage, cost, session and weekly usage), inline permission / question / diff-review cards, live extended-thinking reveal, image paste, per-message fork / rewind / delete, session history, inline file diffs, Scroll Lock, and a light or dark palette that follows Eclipse's theme
- Claude Terminal — dedicated interactive terminal, built on the Eclipse Terminal with full ANSI/24-bit color, scrollback, copy/paste, customizable colors, an optional Claude status line, and Ctrl/⌘-click navigation to file paths and links mentioned in Claude's answers
- Open the Claude Code view for a graphical chat experience, or the Claude Terminal view for the interactive CLI
- Claude can read your open files, selection, and workspace context automatically via MCP tools
Note (all platforms): The Claude Terminal view embeds the Eclipse Terminal control and launches
claudeover a local PTY (ConPTY on Windows, native PTY on Linux/macOS), with full ANSI/24-bit color, scrollback, and resize. Copy/paste is available via the right-click menu or the keyboard, and every paste trigger handles both text and images:Ctrl/⌘+V,Ctrl/⌘+Shift+V, orShift+Insertto paste;Ctrl/⌘+Shift+CorCtrl/⌘+Insertto copy; andCtrl/⌘+Ccopies when text is selected (otherwise it passes through to interrupt Claude).Image paste on Linux relies on a clipboard helper that the Claude CLI shells out to — install
xclip(X11) orwl-clipboard(Wayland), e.g.sudo apt install xclip. Without it the CLI reports "No image found in clipboard"; text paste is unaffected.
Open files, links, and Java references: Claude often references file paths, URLs and Java type/member names in its answers. Ctrl-click (⌘-click on macOS) any such token in the Claude Terminal view to jump straight to it — a file opens in an editor, an
http/httpsURL opens in your browser, and a Java reference (e.g.java.util.List,com.foo.Bar:21,Bar#baz(int)) opens in the Java editor (only if JDT is installed). Paths and file names containing spaces are fully supported — absolute or workspace-relative, even when the path wraps across terminal lines or a file name appears mid-sentence — clicking any segment opens the right file. You can also select text and choose Open from the right-click menu.
Font customization (all platforms): The console font can be changed in Window → Preferences → General → Appearance → Colors and Fonts → Basic → Claude Terminal Console Font. By default it inherits from Eclipse's "Text Font" setting. Linux users: If you see horizontal lines or other rendering artifacts, try setting the font to one commonly used by terminal emulators (e.g., MesloLGS NF, JetBrains Mono, or your terminal's default font).
Color customization (all platforms): The Claude Terminal's background/foreground colors — can be set in Window → Preferences → Claude Code ("Claude Terminal background" and "Claude Terminal foreground"). These are independent of Eclipse's built-in Terminal colors and apply immediately without restart.
| Shortcut | Action |
|---|---|
Ctrl+` |
Activate Claude Terminal view |
Ctrl+Alt+S |
Send current editor selection to Claude |
Ctrl+Alt+A |
Add current file to Claude's context |
Esc |
Dismiss the card currently awaiting an answer (Ctrl+G on the Emacs scheme) |
These are also available from the Claude Code menu in the menu bar and from the right-click context menu in any text editor. A project's context menu carries Open Claude Here, holding Claude Code and Claude Terminal, and Show In ▸ Claude Code opens the selected folder as a directory tab.
In the Claude Code view:
- New Session — opens a fresh conversation tab (multiple run concurrently)
- New Claude root directory — adds a directory tab, so a conversation can run in any folder rather than only the workspace root
- Model picker — sets the model, reasoning effort, and extended thinking for the current conversation
- Permission mode — Manual, Edit automatically, Plan or Auto, remembered per conversation and applied immediately
- History — browse, resume, or delete past conversations
- Scroll Lock — holds your place while Claude writes; a Jump to latest button appears while you're held back
- Clear — clears the current conversation's display
Hovering a message you sent reveals per-message actions: Fork conversation from here, Rewind code to here, Fork conversation and rewind code, and Delete, which removes that message from the conversation's history for every Claude Code client reading the project. Slash commands including /compact, /rewind and /advisor work from the composer, and a banner offers to run Claude Code's own updater when a newer CLI release is published.
Claude has access to the following MCP tools, which it invokes automatically:
| Tool | Description |
|---|---|
openFile |
Open a file at a specific line/column with optional text selection |
getOpenEditors |
List all open editor tabs |
getCurrentSelection |
Get the currently selected text and its location |
getLatestSelection |
Get the most recent selection (even after focus change) |
getWorkspaceFolders |
List all open Eclipse projects |
getDiagnostics |
Get errors and warnings from Eclipse's problem markers |
saveDocument |
Save a file |
checkDocumentDirty |
Check if a file has unsaved changes |
openDiff |
Show a diff view comparing proposed vs. current file content |
acceptDiff / rejectDiff |
Apply or discard a diff being reviewed |
closeAllDiffTabs |
Close all open diff tabs |
refresh |
Refresh projects from the filesystem, so files changed outside Eclipse are picked up |
clean |
Discard build output and problem markers |
build |
Clean and/or rebuild projects and report the resulting compile errors |
runAs |
Run a project the way Run As does, or a saved launch configuration by name |
findReferences † |
Find every reference to a Java type or member |
getSymbolInfo † |
Resolve the Java symbol at a position — kind, declaring type, signature |
getTypeHierarchy † |
Show a Java type's supertypes and subtypes |
runTests † |
Run JUnit tests and report the results |
† Requires the Java Development Tools (JDT). The plugin never hard-depends on JDT — these tools are simply absent from the tool list when it isn't installed, and everything else works without it.
Go to Window → Preferences → Claude Code to configure:
| Setting | Default | Description |
|---|---|---|
| Open new Claude Terminal automatically on Eclipse launch | Off | Opens a Claude Terminal tab when Eclipse starts |
| Track editor selection in real-time | On | Continuously track cursor/selection for Claude context |
| Claude command | claude |
Path to the Claude CLI executable |
| Arguments | (empty) | Additional CLI arguments (e.g., --model claude-opus-4-7-20260418) |
| Port range (min/max) | 10000–65535 | Port range for the internal HTTP+SSE server |
| Claude Terminal background / foreground | #121314 / #E5E5E5 |
Terminal colors, independent of Eclipse's Terminal; apply immediately |
Claude status bar — a status line for the Claude Terminal, assembled from the parts you choose:
| Setting | Default |
|---|---|
| Show status bar (applies to newly launched sessions) | On |
| Show model | On |
| Show effort level | On |
| Show thinking indicator | Off |
| Show context-window usage | On |
| Show session cost (USD) | Off |
| Show 5-hour (session) usage limit | On |
| Show weekly (7-day) usage limit | On |
| Status refresh interval (seconds) | 60 |
Network / Proxy — HTTP_PROXY, HTTPS_PROXY and NO_PROXY. Empty by default, in which case they are auto-detected from your shell.
Decision card timeouts — how long an unanswered card waits before Claude Code assumes an answer and continues. Set independently for Permission approval, Ask-user question and Diff review; each is Default (30 minutes), Never, or a custom number of seconds.
Miscellaneous Configuration — additional options, including which sets of working-indicator verbs the Claude Code view and the Terminal cycle through.
The plugin follows a Rust-first approach: the heavy logic — HTTP/SSE server, MCP/JSON-RPC protocol, chat process management, session-history reconstruction, shell and proxy environment detection, and lock-file handling — lives in a native Rust library (claude-eclipse-core) loaded via JNI. Java is a thin glue layer for Eclipse/SWT API calls.
Claude CLI <--NDJSON--> Rust (chat.rs) --JNI callbacks--> Java (NativeCore → ChatProcessManager)
Rust (mcp.rs) --JNI tool call--> Java (McpToolRegistry)
Rust (server.rs) --SSE--> Claude CLI
| Project | Description |
|---|---|
claude-eclipse-core |
Rust native library — HTTP+SSE server, MCP/JSON-RPC protocol, chat process manager, lock-file management. Built as a cdylib (claude_eclipse_core.dll / libclaude_eclipse_core.so / libclaude_eclipse_core.dylib) |
com.anthropic.claudecode.eclipse |
Eclipse plugin — UI views, MCP tool implementations, JNI bridge, chat HTML/JS |
com.anthropic.claudecode.eclipse.feature |
Eclipse feature definition — declares the plugin and its metadata |
com.anthropic.claudecode.eclipse.site |
p2 update site — the installable artifacts hosted via GitHub Pages |
The Rust library must be compiled for each target platform:
Windows (native build):
cd claude-eclipse-core
cargo build --release
cp target/release/claude_eclipse_core.dll ../com.anthropic.claudecode.eclipse/native/windows/x86_64/Linux (via Docker):
From Linux/macOS:
cd claude-eclipse-core
docker run --rm -v "$(pwd):/src" -w /src rust:slim-bullseye cargo build --release
cp target/release/libclaude_eclipse_core.so \
../com.anthropic.claudecode.eclipse/native/linux/x86_64/From Windows (CMD):
docker run --rm -v "%cd%:/src" -w /src rust:slim-bullseye cargo build --release
copy claude-eclipse-core\target\release\libclaude_eclipse_core.so ^
com.anthropic.claudecode.eclipse\native\linux\x86_64\From Windows (PowerShell):
docker run --rm -v "${PWD}:/src" -w /src rust:slim-bullseye cargo build --release
copy claude-eclipse-core\target\release\libclaude_eclipse_core.so `
com.anthropic.claudecode.eclipse\native\linux\x86_64\Linux aarch64 (via Docker, emulated ARM64 container):
Add --platform linux/arm64 to the same command — Docker Desktop (or QEMU binfmt on Linux) runs the build inside an ARM64 container, so the output is a native aarch64 .so. Note it lands in the same target/release/ folder as the x86_64 build, so copy it out before rebuilding for the other architecture:
docker run --rm -v "${PWD}:/src" -w /src --platform linux/arm64 rust:slim-bullseye cargo build --release
copy claude-eclipse-core\target\release\libclaude_eclipse_core.so `
com.anthropic.claudecode.eclipse\native\linux\aarch64\macOS (native build — must be built on a Mac):
rustup target add aarch64-apple-darwin x86_64-apple-darwin
cd claude-eclipse-core
cargo build --release --target aarch64-apple-darwin
cargo build --release --target x86_64-apple-darwin
cp target/aarch64-apple-darwin/release/libclaude_eclipse_core.dylib \
../com.anthropic.claudecode.eclipse/native/macos/aarch64/
cp target/x86_64-apple-darwin/release/libclaude_eclipse_core.dylib \
../com.anthropic.claudecode.eclipse/native/macos/x86_64/Cross-compiling to macOS from Windows/Linux requires Apple's SDK and is not supported — build on a Mac.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change.
This repository also hosts the update site, so nobody pushes to it directly — a change reaches users through a pull request, and then through a release the maintainer publishes.
- Fork the repository on GitHub and clone your fork.
- Create a branch for your change.
- Import the projects into Eclipse: File ▸ Import ▸ Existing Projects into Workspace, pointing at the clone.
- Make your change. If it touches Rust, run
cargo testinclaude-eclipse-coreand rebuild the native library for your own platform (see Building the Native Library) so you can run what you wrote. - Try it — Run As ▸ Eclipse Application launches a second Eclipse with the plugin installed. Confirm the behaviour there before sending anything.
- Push to your fork and open a pull request against
master, describing what changed and how you tested it.
Please leave these to the maintainer, and keep them out of your pull request:
- the version numbers in
MANIFEST.MF,feature.xmlandsite.xml - the
CHANGELOG.mdentry - the generated p2 artifacts under
com.anthropic.claudecode.eclipse.site/ - native libraries for platforms you cannot build and test on yourself
Once a release is published, GitHub Pages redeploys the update site within about a minute and the new version becomes available to install.
See CHANGELOG.md for the full release history.
Special thanks to xgsa and jmoraleda for the fixes and improvements they have contributed to the plugin.
Copyright (c) 2026 Carlo Louis Felipe (eilonwy06). Not affiliated with Anthropic.
NOTICE: This project is an unofficial, community-made Eclipse IDE plugin. It is not affiliated with, endorsed by, or maintained by Anthropic, PBC. "Claude" and "Claude Code" are trademarks of Anthropic, PBC.