5.4 KiB
5.4 KiB
display_name, description, icon, verified, tags
| display_name | description | icon | verified | tags | |||
|---|---|---|---|---|---|---|---|
| JetBrains Toolbox | Add JetBrains IDE integrations to your Coder workspaces with configurable options. | ../../../../.icons/jetbrains.svg | true |
|
JetBrains IDEs
This module adds JetBrains IDE buttons to launch IDEs directly from the dashboard by integrating with the JetBrains Toolbox.
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.3.0"
agent_id = coder_agent.main.id
folder = "/home/coder/project"
}
Important
This module requires Coder version 2.24+ and JetBrains Toolbox version 2.7 or higher.
Warning
JetBrains recommends a minimum of 4 CPU cores and 8GB of RAM. Consult the JetBrains documentation to confirm other system requirements.
Examples
Pre-configured Mode (Direct App Creation)
When default contains IDE codes, those IDEs are created directly without user selection:
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.3.0"
agent_id = coder_agent.main.id
folder = "/home/coder/project"
default = ["PY", "IU"] # Pre-configure PyCharm and IntelliJ IDEA
}
User Choice with Limited Options
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.3.0"
agent_id = coder_agent.main.id
folder = "/home/coder/project"
# Show parameter with limited options
options = ["IU", "PY"] # Only these IDEs are available for selection
}
Early Access Preview (EAP) Versions
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.3.0"
agent_id = coder_agent.main.id
folder = "/home/coder/project"
default = ["IU", "PY"]
channel = "eap" # Use Early Access Preview versions
major_version = "2025.2" # Specific major version
}
Custom IDE Configuration
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.3.0"
agent_id = coder_agent.main.id
folder = "/workspace/project"
# Custom IDE metadata (display names and icons)
ide_config = {
"IU" = {
name = "IntelliJ IDEA"
icon = "/custom/icons/intellij.svg"
build = "251.26927.53"
}
"PY" = {
name = "PyCharm"
icon = "/custom/icons/pycharm.svg"
build = "251.23774.211"
}
}
}
Single IDE for Specific Use Case
module "jetbrains_pycharm" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.3.0"
agent_id = coder_agent.main.id
folder = "/workspace/project"
default = ["PY"] # Only PyCharm
# Specific version for consistency
major_version = "2025.1"
channel = "release"
}
Custom Tooltip
Add helpful tooltip text that appears when users hover over the IDE app buttons:
module "jetbrains" {
count = data.coder_workspace.me.start_count
source = "registry.coder.com/coder/jetbrains/coder"
version = "1.3.0"
agent_id = coder_agent.main.id
folder = "/home/coder/project"
default = ["IU", "PY"]
tooltip = "You need to install [JetBrains Toolbox App](https://www.jetbrains.com/toolbox-app/) to use this button."
}
Accessing the IDE Metadata
You can now reference the output ide_metadata as a map.
# Add metadata to the container showing the installed IDEs and their build versions.
resource "coder_metadata" "container_info" {
count = data.coder_workspace.me.start_count
resource_id = one(docker_container.workspace).id
dynamic "item" {
for_each = length(module.jetbrains) > 0 ? one(module.jetbrains).ide_metadata : {}
content {
key = item.value.build
value = "${item.value.name} [${item.key}]"
}
}
}
Behavior
Parameter vs Direct Apps
default = [](empty): Creates acoder_parameterallowing users to select IDEs fromoptionsdefaultwith values: Skips parameter and directly createscoder_appresources for the specified IDEs
Version Resolution
- Build numbers are fetched from the JetBrains API for the latest compatible versions when internet access is available
- If the API is unreachable (air-gapped environments), the module automatically falls back to build numbers from
ide_config major_versionandchannelcontrol which API endpoint is queried (when API access is available)
Supported IDEs
All JetBrains IDEs with remote development capabilities:
