JetBrains Plugin

Local Apex tests
inside IntelliJ IDEA.

Run and debug Salesforce Apex tests without connecting to an org. Gutter run icons, a native debug session, and a Nimbus tool window, driven by the same local runtime the CLI uses.

IntelliJ IDEA Community and Ultimate, and any JetBrains IDE from 2024.2 that ships JCEF, the embedded browser that Learn, the graph and the timeline render in. It is a hard dependency, so an IDE built without it will not load the plugin.

Gutter run iconsNative debuggerTool windowCode lensesCoverage guttersLive templatesRun configurations

Gutter run icons and a live debugger

Every discovered @IsTest class and method gets a clickable run icon in the editor gutter, the IDE's own test affordance. Run the class, run the method, debug it, or open its trace. After a run the icon carries the last outcome, and results stream into the standard IntelliJ test runner tree with per-method timings.

Code lenses sit above the declaration they act on, and each one is offered only where it means something. Above an @IsTest method: Run test, Debug, Coverage, View Trace. Above a test class: Run class, Bench class, Coverage. Above a class that holds no tests: Mutate, the one lens that belongs on the code under test rather than on the test. Prefer a saved entry point? Create a Nimbus Apex Test run configuration for a glob pattern or an explicit Class.method list.

Debugging is a real IntelliJ debug session. Set line breakpoints in .cls and .trigger files, hit Debug, and step over, into, and out while inspecting variables and the call stack. The local runtime is executing your code, so this is live stepping rather than a replayed debug log.

Tool window

The Nimbus tool window docks on the right as four workspaces over fourteen panels. Home is the runtime, the license and this project's setup. Verify holds Tests, Coverage, History and Governor. Data holds Schema, Workbench, Data Loader, Org, Drift, Events and the Apex and SOQL consoles. Release holds Releases. A live preview gets its own docked Nimbus App window, so it can sit beside your source rather than behind a tab. In Tests, double-click a test to jump to source, or run and debug the selection from the toolbar.

Coverage delta

Run a coverage pass, snapshot it with Set Coverage Baseline, then toggle the delta overlay to see which lines your change covered, and which it stopped covering, in the gutter.

Embedded panels

The dependency graph, execution traces, Trends, and run diffs open in embedded browser panels, the same views the VSCode extension ships, rendered inside the IDE.

Live templates

Native Apex and SOQL live templates: tm for an @IsTest method, soqlf for a bulk-safe SOQL for-loop, bulkt for a 200-record data block. Tab to expand, Tab through the placeholders.

The same language server and runtime as the CLI

Nothing about the Apex engine is reimplemented for JetBrains. The plugin drives the two backends that ship with the CLI: nimbus lsp for editing intelligence and nimbus daemon for the runtime (test discovery, running, debugging, coverage, traces, history, schema, and governor limits).

The editor surfaces are not identical, and the JetBrains one is the larger of the two: Nimbus Learn (ten guided workshops and a 21-system field manual, in the editor area) and the Data Loader (a CSV rehearsed against your local runtime, with triggers and validation rules firing, before anything reaches an org) have no counterpart in the VSCode extension.

Editor intelligence arrives through LSP4IJ, so completion, hover, navigation, rename, semantic tokens, call hierarchy, diagnostics, quick-fixes, code lenses, and inlay hints are the language server's, identical to what the VSCode extension consumes. A fix in the server lands in both editors at once.

LSP4IJ works in Community editions as well as the paid ones, so nothing on this page depends on an Ultimate license. The gutter run icons take a separate path entirely. They read the daemon's discovery index directly, with no PSI and no language registration, which is why they coexist with whatever else already claims Apex files in your IDE.

Read what the server does on the language server page, or compare the editor surface with the VSCode extension.

The plugin works alongside Illuminated Cloud.

Illuminated Cloud made IntelliJ a serious Salesforce IDE, and Nimbus does not replace it. Keep it for editing, org metadata, and deployment. Nimbus adds the one thing an org-backed workflow cannot: a local Apex runtime, so the test loop stops round-tripping to a sandbox.

Both plugins read the same sfdx-project.json and the same source tree. No project conversion, no second checkout, no exclusive lock on .cls files.

Read the how-to for the full side-by-side setup.

Illuminated Cloud deploys and Nimbus tests, so the two never contend for the same job.

Install

  1. plugin

    Install the plugin from the IDE

    In Settings → Plugins → Marketplace, install Nimbus — Local Apex Runtime. The Marketplace resolves the LSP4IJ dependency for you.

  2. open

    Open your Salesforce project

    The plugin installs its own runtime into ~/.nimbus/bin the first time and runs it by absolute path, so there is nothing to install first and nothing in the IDE depends on your shell. It then starts the daemon and warms the language server: tests appear in the tool window and run icons in the gutter. A copy you installed yourself is always preferred, and Settings → Tools → Nimbus takes an explicit path.

  3. terminal

    Optional: the same binary in your shell

    The IDE does not need this. If you want the nimbus command in a terminal too, install it yourself, or put ~/.nimbus/bin on your PATH.

    bash
    curl -fsSL https://install.testnimbus.dev | sh

Settings are stored per project under Settings → Tools → Nimbus: the binary and Node paths, parallel workers, the org metadata is read from, whether the language server runs and whether it defers to another Apex plugin, Salesforce file ownership, the legacy debugger, coverage collection, gutter icons and the delta overlay, following the active file and revealing Nimbus App for UI source, check-on-save, inline timings, inline governor usage, auto-run on open or save, and whether the runtime installs itself. Salesforce file ownership is the exception: the file-type table is IDE-wide, so that setting is too. The full table is in the settings reference.

Running, debugging, coverage, traces, history, governor readings, the schema and the consoles are free. Nimbus Pro adds parallel test workers, watch mode, mutation testing, benchmarking, local previews, flow debugging, and the causal field ledger behind Find Where This Was Set and Show Write History, in the IDE and the CLI alike. Pro is currently free: create an account, activate it, and run nimbus login.

The local runtime inside your JetBrains IDE.

Gutter run icons, a native debug session, coverage in the editor, and the full Nimbus tool window, with no org connection.