Nix Flake to download any plugin from Jetbrains Marketplace [maintainer=@theCapypara]
Rust
63
280 commits
updated Sep 23, 2026
This repository contains derivations for ALL plugins from the Jetbrains Marketplace.
It is regularly updated to include all current plugins in their latest compatible version.
If any derivations fail to build or plugins are missing, please open an issue.
The plugins exported by this Flake are indexed by their IDE, version and then plugin ID. You can find the plugin IDs at the bottom of Marketplace pages.
The plugin list is only updated for IDEs from the current year, as well as the last minor release line from the previous year, for other IDEs the list may be stale.
Supported IDEs:
jetbrains.idea, jetbrains.idea-oss)jetbrains.phpstorm)jetbrains.webstorm)jetbrains.pycharm, jetbrains.pycharm-oss)jetbrains.ruby-mine)jetbrains.clion)jetbrains.goland)jetbrains.datagrip)jetbrains.dataspell)jetbrains.rider)android-studio)jetbrains.rust-rover)jetbrains.mps)Supported legacy IDEs:
pycharm-community, pycharm-professional)idea-community, idea-ultimate)jetbrains.aqua)jetbrains.writerside)inputs.nix-jetbrains-plugins.url = "github:nix-community/nix-jetbrains-plugins";
let
pluginList = [
nix-jetbrains-plugins.plugins."${system}".idea."2025.3"."com.intellij.plugins.watcher"
];
in {
# ... see "How to use"
}
let
system = builtins.currentSystem;
plugins =
(import (builtins.fetchGit {
url = "https://github.com/nix-community/nix-jetbrains-plugins";
ref = "refs/heads/main";
rev = "<latest commit hash>";
})).plugins."${system}";
pluginList = [
plugins.idea."2025.3"."com.intellij.plugins.watcher"
];
in {
# ... see "How to use"
}
The plugins can be used with jetbrains.plugins.addPlugins:
{
environment.systemPackages = [
# See "How to setup" for definition of `pluginList`.
(pkgs.jetbrains.plugins.addPlugins pkgs.jetbrains.idea pluginList)
];
}
lib)The flake exports some convenience functions that can be used to make adding plugins to your IDEs easier.
These functions are only compatible and tested with the latest stable nixpkgs version.
buildIdeWithPluginsUsing this function you can build an IDE using a set of named plugins from this Flake. The function will automatically figure out which IDE and version the plugins need to be for.
pkgs from Nixpkgs.pkgs.jetbrains key of the IDE to build or download.{
environment.systemPackages = with nix-jetbrains-plugins.lib; [
# Adds the latest IDEA version with the latest compatible version of "com.intellij.plugins.watcher".
(buildIdeWithPlugins pkgs "idea" ["com.intellij.plugins.watcher"])
];
}
pluginsForIdeUsing this function you can collect a set of plugins from this Flake. The function will automatically figure out which IDE and version the plugins need to be for.
pkgs from Nixpkgs.pkgs.jetbrains key of the IDE to build or download.{
environment.systemPackages =
let
inherit (pkgs.jetbrains) idea;
plugins = nix-jetbrains-plugins.lib.pluginsForIde pkgs idea [
"com.intellij.plugins.watcher"
];
in
[
(pkgs.jetbrains.plugins.addPlugins idea (lib.attrValues plugins))
];
}
pluginsForIdeWithLike pluginsForIde, but get's a first attribute set argument that allows to
configure the plugin overrides behaviours. By default some plugins (e.g. github-copilot)
are patched, this behaviour can be controlled.
{ applyPluginOverrides :: Bool , dontOverride :: [ String ], extraOverrides :: AttrSet of (Derivation -> Derivation)}, all the items are optionals.pkgs from Nixpkgs.pkgs.jetbrains key of the IDE to build or download.{
environment.systemPackages =
let
inherit (pkgs.jetbrains) idea;
plugins = nix-jetbrains-plugins.lib.pluginsForIdeWith {
applyPluginOverrides = true;
dontOverride = [ "com.github.copilot" ];
extraOverrides = {
PythonCore = old: old.overrideAttrs (oldAttrs: {
src = pkgs.fetchurl { ... };
});
};
}
pkgs
idea
[
"com.intellij.plugins.watcher"
"com.github.copilot"
"PythonCore"
];
in
[
(pkgs.jetbrains.plugins.addPlugins idea (lib.attrValues plugins))
];
}
96 commits
75 commits
65 commits
17 commits
Rust
68.8%
Nix
31.2%
Nix Flake to download any plugin from Jetbrains Marketplace [maintainer=@theCapypara]
Rust
63
280 commits
updated Sep 23, 2026
This repository contains derivations for ALL plugins from the Jetbrains Marketplace.
It is regularly updated to include all current plugins in their latest compatible version.
If any derivations fail to build or plugins are missing, please open an issue.
The plugins exported by this Flake are indexed by their IDE, version and then plugin ID. You can find the plugin IDs at the bottom of Marketplace pages.
The plugin list is only updated for IDEs from the current year, as well as the last minor release line from the previous year, for other IDEs the list may be stale.
Supported IDEs:
jetbrains.idea, jetbrains.idea-oss)jetbrains.phpstorm)jetbrains.webstorm)jetbrains.pycharm, jetbrains.pycharm-oss)jetbrains.ruby-mine)jetbrains.clion)jetbrains.goland)jetbrains.datagrip)jetbrains.dataspell)jetbrains.rider)android-studio)jetbrains.rust-rover)jetbrains.mps)Supported legacy IDEs:
pycharm-community, pycharm-professional)idea-community, idea-ultimate)jetbrains.aqua)jetbrains.writerside)inputs.nix-jetbrains-plugins.url = "github:nix-community/nix-jetbrains-plugins";
let
pluginList = [
nix-jetbrains-plugins.plugins."${system}".idea."2025.3"."com.intellij.plugins.watcher"
];
in {
# ... see "How to use"
}
let
system = builtins.currentSystem;
plugins =
(import (builtins.fetchGit {
url = "https://github.com/nix-community/nix-jetbrains-plugins";
ref = "refs/heads/main";
rev = "<latest commit hash>";
})).plugins."${system}";
pluginList = [
plugins.idea."2025.3"."com.intellij.plugins.watcher"
];
in {
# ... see "How to use"
}
The plugins can be used with jetbrains.plugins.addPlugins:
{
environment.systemPackages = [
# See "How to setup" for definition of `pluginList`.
(pkgs.jetbrains.plugins.addPlugins pkgs.jetbrains.idea pluginList)
];
}
lib)The flake exports some convenience functions that can be used to make adding plugins to your IDEs easier.
These functions are only compatible and tested with the latest stable nixpkgs version.
buildIdeWithPluginsUsing this function you can build an IDE using a set of named plugins from this Flake. The function will automatically figure out which IDE and version the plugins need to be for.
pkgs from Nixpkgs.pkgs.jetbrains key of the IDE to build or download.{
environment.systemPackages = with nix-jetbrains-plugins.lib; [
# Adds the latest IDEA version with the latest compatible version of "com.intellij.plugins.watcher".
(buildIdeWithPlugins pkgs "idea" ["com.intellij.plugins.watcher"])
];
}
pluginsForIdeUsing this function you can collect a set of plugins from this Flake. The function will automatically figure out which IDE and version the plugins need to be for.
pkgs from Nixpkgs.pkgs.jetbrains key of the IDE to build or download.{
environment.systemPackages =
let
inherit (pkgs.jetbrains) idea;
plugins = nix-jetbrains-plugins.lib.pluginsForIde pkgs idea [
"com.intellij.plugins.watcher"
];
in
[
(pkgs.jetbrains.plugins.addPlugins idea (lib.attrValues plugins))
];
}
pluginsForIdeWithLike pluginsForIde, but get's a first attribute set argument that allows to
configure the plugin overrides behaviours. By default some plugins (e.g. github-copilot)
are patched, this behaviour can be controlled.
{ applyPluginOverrides :: Bool , dontOverride :: [ String ], extraOverrides :: AttrSet of (Derivation -> Derivation)}, all the items are optionals.pkgs from Nixpkgs.pkgs.jetbrains key of the IDE to build or download.{
environment.systemPackages =
let
inherit (pkgs.jetbrains) idea;
plugins = nix-jetbrains-plugins.lib.pluginsForIdeWith {
applyPluginOverrides = true;
dontOverride = [ "com.github.copilot" ];
extraOverrides = {
PythonCore = old: old.overrideAttrs (oldAttrs: {
src = pkgs.fetchurl { ... };
});
};
}
pkgs
idea
[
"com.intellij.plugins.watcher"
"com.github.copilot"
"PythonCore"
];
in
[
(pkgs.jetbrains.plugins.addPlugins idea (lib.attrValues plugins))
];
}
96 commits
75 commits
65 commits
17 commits
Rust
68.8%
Nix
31.2%