IDE plugins
The JumPHP IDE can be extended with plugins written in PHP. A plugin can add:
- actions (menus, Find Action, shortcuts);
- tool windows;
- run configurations;
- completion and problems (underlined as you type);
- tools for Claude.
Plugins run in the desktop IDE.
Install a plugin
In the IDE, open Tools › Plugins…. You will find:
- On jumphp.net: search for a plugin, then Install. When a newer version is out, the button becomes Update.
- Install from a Folder…: installs a plugin's folder.
- The list of installed plugins: you can enable, disable or remove them.
Updates: the IDE checks jumphp.net a little after it starts, then every 6 hours. A notification offers Update; with Update plugins automatically, it installs them by itself. The new version is used at the next start.
A plugin is PHP that runs with your rights: only install the ones you trust.
Create a plugin
bin/jumphp plugin:new todo-finder "TODO Finder"
bin/jumphp install todo-finder
bin/jumphp test todo-finder
You can also use New Project › IDE plugin in the IDE.
The plugin's class, src/TodoPlugin.php, adds what it brings:
public function activate(Api $ide): void
{
$ide->action('count', 'Count the TODOs', fn (EditorState $at) => substr_count($at->text, 'TODO') . ' TODO', ['kbd' => 'Ctrl+Alt+T']);
$ide->toolWindow('todos', 'TODOs', fn () => Ui::column(
Ui::list(array_map(fn ($t) => Ui::item($t['text'], fn () => $ide->openFile($t['path'], $t['line'])), $this->todos())),
));
$ide->diagnostics('*.php', fn (string $path, string $text) => $this->fixmes($text));
}
- Tool windows are built in PHP from simple elements: texts, buttons, lists, fields, check boxes. The IDE draws them in its own style.
- Clicks and the user's other actions call your PHP back.
- Tests (
PluginTestCase) use the plugin without a window. They run an action, read a window, click in it, ask for completion.
To try it: Tools › Plugins…, then Install in the IDE beside the project's plugin.
Tools for Claude
The IDE gives its Claude an MCP server, jumphp-ide. Claude uses it to drive the IDE: open files, run tests, debug. A plugin adds its own tools to it:
$ide->mcpTool('list_todos', 'The TODO comments of the project: path, line, text.',
fn (array $args) => $this->todos($args['path'] ?? ''),
['path' => ['type' => 'string', 'description' => 'only under this folder']]);
Claude sees the tool as mcp__jumphp-ide__plugin_todo_finder_list_todos. It chooses it from its description: say what it returns and when to use it. The tool runs in PHP inside the IDE and must never block.
Publish on jumphp.net
In Tools › Plugins…, click Publish on jumphp.net beside the project's plugin. You must be signed in. The plugin then shows on the plugins page.
- The first account to publish an id becomes its owner.
- Every version stays available. To publish a new one, raise the
versionincomposer.json. bin/jumphp plugin:pack todo-findermakes the same.zip.- Anyone can give a plugin 1 to 5 stars, on its page or in the IDE (Rate…). Its public statistics: downloads and mark. Its author also sees the private statistics (views, installs, updates, versions, marks) on the page when signed in, and in the IDE (Statistics).