JetBrains Marketplace Help

OS/Architecture-specific versions

If your plugin includes native binaries, language servers, local models, or other platform-specific components, you can publish separate plugin versions for different operating systems and CPU architectures.

JetBrains Marketplace uses the OS and architecture of the user's IDE to select and deliver the matching plugin build. This lets you avoid bundling binaries for every supported platform into a single plugin archive.

Declare the target platform

Each platform-specific version must declare its target operating system and architecture in plugin.xml.

For example, a macOS ARM64 build:

<dependencies> <plugin id="com.intellij.modules.os.mac"/> <plugin id="com.intellij.modules.arch.arm64"/> </dependencies>

Common platform dependencies include:

Platform

Dependency

Windows

com.intellij.modules.os.windows

MacOS

com.intellij.modules.os.mac

Linux

com.intellij.modules.os.linux

X86

com.intellij.modules.arch.x86

X86_64

com.intellij.modules.arch.x86_64

ARM32

com.intellij.modules.arch.arm32

ARM64

com.intellij.modules.arch.arm64

Build targeted versions

Upload every OS/architecture build as a separate plugin update. For example:

1.2.3-linux-x86_64 1.2.3-windows-x86_64 1.2.3-mac-arm64

The suffix is only a naming convention. When the IDE checks for plugins, it sends its operating system and architecture to JetBrains Marketplace. Then JetBrains Marketplace determine the target platform from the dependencies declared in plugin.xml (not from the plugin archive name!) and returns the matching plugin version.

Gradle support for platform-specific plugins

The IntelliJ Platform Gradle Plugin supports native variants starting with version 2.19.0. Set since-build to 261 or later, then declare the native files for each platform:

plugins { id("org.jetbrains.intellij.platform") version "2.19.0" } dependencies { intellijPlatform { intellijIdea("2026.1") } } intellijPlatform { nativeVariants { enabled = true linux.x86_64.from(file("native/linux-x86_64")) mac.arm64.from(file("native/mac-arm64")) } }

During local development, runIde picks up the native files for the current OS and architecture. For publishing, publishPlugin invokes buildPluginVariants and publishes all the configured platform-specific archives to JetBrains Marketplace.

See the nativeVariants configuration documentation and buildPluginVariants task documentation for details.

05 October 2026