Skip to content

JetBrains

After running unextension sync, the output/jetbrains/ directory contains:

output/jetbrains/
build.gradle.kts
gradlew
gradlew.bat
gradle/wrapper/
gradle-wrapper.jar
gradle-wrapper.properties
src/main/
kotlin/com/unextension/
<Name>ToolWindowFactory.kt
resources/
META-INF/plugin.xml
webview/ # Your built web app
  • Java 17 or higher must be installed and available on your PATH

By default, unextension sync downloads the gradle-wrapper.jar automatically. You can disable this in your config:

export default defineConfig({
// ...
jetbrains: {
downloadGradleWrapper: false,
},
})

Run unextension build jetbrains:

Terminal window
npx unextension build jetbrains

This invokes the Gradle wrapper’s buildPlugin task to compile and package the plugin. The output is a .zip file inside output/jetbrains/build/distributions/.

  1. Open SettingsPlugins in your JetBrains IDE
  2. Click the ⚙️ gear icon → Install Plugin from Disk…
  3. Select the .zip file from output/jetbrains/build/distributions/
  4. Restart the IDE when prompted
Terminal window
cd output/jetbrains
./gradlew runIde

This launches a sandboxed IDE instance with your plugin installed for testing.

Sign up at plugins.jetbrains.com and create a new plugin listing.

Go to your JetBrains Hub token page and generate a Permanent Token with the Plugin Repository scope.

Add the publish task to output/jetbrains/build.gradle.kts:

publishPlugin {
token.set(System.getenv("JETBRAINS_TOKEN"))
}

Then run:

Terminal window
cd output/jetbrains
JETBRAINS_TOKEN=<your-token> ./gradlew publishPlugin

Alternatively, go to your plugin page on plugins.jetbrains.com, click Upload Update, and select the .zip from output/jetbrains/build/distributions/.