Files
coder-jetbrains-coder/README.md
2026-03-13 15:50:18 +01:00

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
ide
jetbrains
parameter

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"
}

JetBrains IDEs list

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 a coder_parameter allowing users to select IDEs from options
  • default with values: Skips parameter and directly creates coder_app resources 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_version and channel control which API endpoint is queried (when API access is available)

Supported IDEs

All JetBrains IDEs with remote development capabilities: