Skip to content

feat(jetbrains): add plugin pre-installation support#731

Open
Harsh9485 wants to merge 7 commits intocoder:mainfrom
Harsh9485:Pre-Install-jetBrains-Plugins-support
Open

feat(jetbrains): add plugin pre-installation support#731
Harsh9485 wants to merge 7 commits intocoder:mainfrom
Harsh9485:Pre-Install-jetBrains-Plugins-support

Conversation

@Harsh9485
Copy link
Contributor

@Harsh9485 Harsh9485 commented Feb 16, 2026

Description

Adds a jetbrains_plugins parameter to the JetBrains module.
This parameter accepts a map of JetBrains Marketplace plugin IDs and installs them automatically when the workspace starts.

/claim #208

Approach

  1. Uses the JetBrains Marketplace API to download plugins:https: <plugins.jetbrains.com/pluginManager?action=download&id=<pluginId>&build=<productCode>-<buildNumber>

  2. Stores IDE metadata (name and build number) in ide_config.json, generated during Terraform apply.
    The build number is used to construct the correct Marketplace download URL for each IDE.

  3. Plugin installation runs asynchronously using nohup, so the workspace becomes ready immediately.
    The IDE installation is not blocked, and users can start using the workspace while plugins are being installed in the background.

Changes

  • Adds jetbrains_plugins variable of type map(list(string))
    Example:
    { "PY" = [ "com.koxudaxi.pydantic", "com.intellij.kubernetes" ] }
    Allows installing different plugins per IDE.

  • scripts/install_plugins.sh:
    Downloads plugins using the Marketplace API
    Detects whether the plugin is a ZIP or JAR
    Installs it into the correct IDE plugin directory

videos

1 video setup:- https://drive.google.com/file/d/1WB5jRkCOM0w4rEUY-za_3hEvo116UCGd/view?usp=sharing

2 video proof:- https://drive.google.com/file/d/1ZeGUJPJ-gSGNvNzwq8_V-cozz2NqveUT/view?usp=sharing

Type of Change

  • New module
  • New template
  • Bug fix
  • Feature/enhancement
  • Documentation
  • Other

Module Information

Path: registry/coder/modules/jetbrain
New version: v1.0.0
Breaking change: [ ] Yes [ ] No

Testing & Validation

  • Tests pass (bun test)
  • Code formatted (bun fmt)
  • Changes tested locally

@Harsh9485
Copy link
Contributor Author

@DevelopmentCats @matifali, PR is ready for review.

@DevelopmentCats
Copy link
Contributor

I am testing this and will let you know how it goes with a review

@DevelopmentCats
Copy link
Contributor

After some testing it seems to work well. I tested with various different plugins and different IDE's in the toolbox and it is working great. I will look this over and make sure everything looks good with the module code, and I think we will be good to go.

@Harsh9485
Copy link
Contributor Author

Hey @DevelopmentCats @matifali, can we finish it today?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants

Comments