This Eclipse plugin improves your Java coding experience.
An Eclipse plugin exposes JDT functionality over HTTP so coding agents can use it.
Eclipse already has all your Java projects, builds incrementally in the background, and keeps an extensive symbol database. This plugin lets your coding agent efficiently explore the codebase, organize imports, and quickly check compilation succeeds, without wasting tokens on grep. It also provides entire the classpath of an Eclipse project, with all dependencies, allowing the agent to run code in your projects.
Extensions are provided for the fantastic Pi coding harness.
This extension makes it easy for coding agents to use the JDT API. Tools provided:
java_grepGrep source files of Java types matched by name or pattern.java_membersShow fields and methods of a Java type.java_methodShow the source code of a Java method, without over/under reading.java_find_typeSearch Java types by name or wildcard pattern.java_organize_importsAutomatically add/remove Java imports, with conflict resolution. If there is only 1 conflict it is resolved automatically, without using an extra turn.java_errorsReport Java compilation errors and warnings. Eclipse builds in the background, so this is very fast.java_referencesShow all references to a Java type, method, or field.java_hierarchyShow subtypes/implementors, supertypes, or full class hierarchy.java_callersShow all callers of a Java method.java_classpathProvides the classpath for a Java project and all dependencies, so main classes can be run in the project.
Also Pi's built-in read tool is enhanced with a type parameter for reading Java source by type name rather than filesystem path. By specifying a type instead of a filesystem path, coding agents don't need to find or guess at where source files are located.
This extension improves the edit tool by providing context when edits fail:
- When there is no match, returns a fuzzy match for context to save a turn.
- When edits fail due to multiple occurrences, returns minimal unique context to save a turn.
- Prefixes
No edits made.when edits fail to make it clear.
Some LLM APIs give literal tabs and other bad data in their JSON response, stopping the agent. This extension monkey patches fetch to santize control characters in SSE streams that break JSON.parse. It fixes this error:
Error: Bad control character in string literal in JSON at position 123
Better tabs:
- Removes the
.javasuffix so tabs are shorter. - Removes the close button so tabs are shorter.
- Increases the number of characters for a tab to be truncated with a ellipsis to 100 so tabs are longer, but you can actually tell them apart.
Get the JAR from the latest release and put it in your Eclipse/dropins folder.
To install the Pi extension, copy or symlink them:
cp pi-extensions/*.ts ~/.pi/agent/extensions/

