feat(jetbrains): add JetBrains IDE plugin + npm/build/refresh fixes - #300
Open
rlarin wants to merge 10 commits into
Open
feat(jetbrains): add JetBrains IDE plugin + npm/build/refresh fixes#300rlarin wants to merge 10 commits into
rlarin wants to merge 10 commits into
Conversation
Thin Kotlin plugin that embeds the existing React webview via JCEF and manages Claude Code terminal lifecycle in JetBrains IDEs. - Gradle scaffold: IntelliJ Platform Gradle Plugin 2.16, Kotlin 2.1.21, Gradle 9 - ServerManager: starts/detects npx pixel-agents server, non-blocking (portFuture) - TerminalManager: opens IDE terminal with claude --session-id, EDT-safe, IOException-safe - PixelAgentsBrowserPanel: JCEF browser with JS bridge for launchAgent, deferred URL load - PixelAgentsService: project service with Node.js availability check and notification - PixelAgentsToolWindowFactory: bottom panel tool window - Webview: JetBrains runtime detection via ?ide=jetbrains URL param, JetBrainsTransport - GitHub Actions CI: jetbrains-release.yml triggered on jetbrains-v* tags - Windows-compatible: cmd /c npx for process launching, @volatile on shared state
Keeps the working tree clean of npx/Gradle leftovers from building the JetBrains plugin: IntelliJ Platform sandbox, the stray org/ output dir, and *.stackdump crash files.
Without a files whitelist, npm publish falls back to .gitignore, which excludes dist/ — so the published tarball shipped without dist/cli.js and the `pixel-agents` bin was non-functional (the JetBrains plugin relies on `npx pixel-agents` to launch the standalone server). Add a files whitelist (dist + icon) and a prepublishOnly build so the package always ships the CLI bundle, webview, assets, and hook script.
The prettier/eslint invocations single-quoted the output path, which cmd.exe does not strip, so `npm run package` failed on Windows with "No files matching the pattern" — breaking prepublishOnly and any production build/publish from Windows. Quote with double quotes on win32, single quotes elsewhere.
The IntelliJ Platform Gradle plugin defaults untilBuild to 251.* when building against 2025.1, so the plugin was flagged "Not compatible" on PyCharm/WebStorm 2026.1. Raise the cap to 261.* so it installs on 2026.1.x. Note: the embedded-terminal API (TerminalView.createLocalShellWidget) is deprecated and may be non-functional on 2026.1; "+ Agent" terminal launch needs verification there and a possible migration to TerminalToolWindowTabsManager. Also add SCREENSHOT_PROMPT.md with instructions to produce the Marketplace screenshot.
- Webview: a refresh button in the zoom controls re-sends webviewReady over the transport, prompting the host to re-broadcast full state (agents, layout, assets) without losing camera/zoom. - JetBrains: a native "Reload" title action on the tool window that re-navigates the embedded JBCef browser as a hard fallback.
On a machine without the package cached, `npx pixel-agents` can prompt to confirm the install; the plugin spawns it non-interactively so the prompt would stall server startup. Add -y to auto-confirm.
|
@rlarin is attempting to deploy a commit to the pablodelucca's projects Team on Vercel. A member of the Team first needs to authorize it. |
3 tasks
rlarin
force-pushed
the
upstream-jetbrains
branch
from
June 4, 2026 14:53
70cff4f to
8fb8972
Compare
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds a JetBrains Platform plugin (PyCharm/WebStorm and other IntelliJ-based IDEs) plus a few general fixes, all under the existing
pixel-agentsnaming.pixel-agentsserver (?ide=jetbrains);+ Agentopens an IDE terminal runningclaude --session-id <uuid>through a nativeJBCefJSQuerybridge;ServerManagerboots/reuses the standalone server via~/.pixel-agents/server.json; WebSocket transport for other messages. Plugin icon + description,build:jetbrainsscripts.fileswhitelist sonpm publishshipsdist/— without it npm falls back to.gitignore(which ignoresdist) and thepixel-agentsbin is shipped non-functional.generate-messagessonpm run packageworks on Windows.untilBuildto261.*so the plugin installs on 2026.1 IDEs; pass-ytonpxso first launch doesn't block on a confirm prompt.webviewReady) and a native JetBrains "Reload" tool-window action.Notes
pixel-agentspublished on npm with a workingbin(thefilesfix above) for the plugin'snpx pixel-agentslaunch.TerminalView.createLocalShellWidgetis deprecated upstream; a future migration toTerminalToolWindowTabsManagermay be warranted.Test plan
npm run build:jetbrainsproduces the plugin zip+ Agentopens a terminal and spawns a character🤖 Generated with Claude Code