Dev UI

A browser-based test
dashboard for Apex

Run nimbus dev and Nimbus opens a test dashboard in the browser: test explorer, live results, coverage, watch mode, a schema browser and an Apex REPL. It needs no editor plugin, so it works without VS Code or IntelliJ.

What nimbus dev starts

Run nimbus dev and Nimbus starts a local web server (default port 8080) and opens your browser. The dashboard stays connected over WebSocket, so results update as tests run, without a page refresh. If you know the Quarkus Dev UI, this is the same idea for Apex.

It is useful on a machine without a Salesforce IDE, in a browser-only environment, when pairing with someone who does not have the plugin, or when you prefer a dashboard to terminal output.

The Dev UI runs alongside the editor integration. Both share the same daemon, so tests run from VS Code update the Dev UI too.

bash
# Start the Dev UI
nimbus dev

# → Opens http://localhost:8080 in your browser
# → Stays connected via WebSocket
# → Results update live as tests run

# Custom port
nimbus dev --port 3000

# Don't open browser automatically
nimbus dev --no-browser

# Or configure in nimbus.properties
# nimbus.devui.port=8080
# nimbus.devui.open-browser=true

The interface

A resizable sidebar holds the test explorer: every class and method in the project, grouped by class. Click to expand a class, click a method to select it. Each entry shows its live status: pending, running, passed, or failed. Run buttons on hover run a single class or method.

Nimbus Dev
✓ 24✗ 226 tests
▶ Run All↺ Run Failed◉ Watch● Ready
Test Explorer
▾AccountServiceTest6
▸AccountTriggerTest24
▾CalculatorTest8
▾CollectionUtilsTest6
ResultsCoverageExecuteSchemaOutputConfig
✗AccountTriggerTest.testBeforeInsertExpected: Other, Actual: null18ms
✗AccountTriggerTest.testAfterUpdateSystem.NullPointerException at line 3422ms
✓AccountServiceTest.testCreateAccount12ms
✓AccountServiceTest.testBulkInsert8ms
✓CalculatorTest.testAddition2ms
Results

Live test results as they complete. Pass/fail per method, duration, failure messages inline. Click any test to see its full output and error trace.

Coverage

Line coverage percentages per class, updated after every run. It shows which lines are covered and which are not, in the browser.

ExecuteUnique

An Apex REPL. Write and run anonymous Apex in the browser: query data, test expressions, prototype logic.

Schema

Every SObject in the project schema, with fields, types and required flags. Useful when writing SOQL and a field name escapes you.

Output

The raw test output log: System.debug() calls, governor limit warnings, trace entries. Scrollable and searchable.

Config

The effective nimbus.properties configuration with the active profile highlighted. It shows what is set, what is overridden, and which file each value came from.

The Execute tab

The Execute tab is an Apex REPL against the local database. Write an Apex expression or block and run it immediately, with no test class, no deploy and no org.

It behaves like nimbus exec in the browser, with structured output: results for SObjects and collections, inline System.debug() output, error messages with line numbers.

Useful for prototyping SOQL against seeded data, checking an expression before writing a test, seeing how the runtime handles an edge case, or verifying DML behavior without a full test method.

apex
// In the Execute tab - runs immediately

// Query your seeded data
List<Account> accounts = [
    SELECT Id, Name, Industry
    FROM Account
    WHERE Industry = 'Technology'
    LIMIT 5
];
System.debug('Found: ' + accounts.size());

// Test an expression
Decimal result = Math.round(3.7);
System.debug(result); // → 4

// Insert a record and query it back
Account acc = new Account(Name = 'Test');
insert acc;
Account fetched = [SELECT Name FROM Account WHERE Id = :acc.Id];
System.debug(fetched.Name); // → Test
Execute runs in a transaction that rolls back afterwards, so seeded test data stays clean between executions.

Watch mode in the Dev UI

Click the Watch button in the toolbar and Nimbus monitors your Apex source files for changes. Save a file and the relevant tests rerun; results update in the browser as they complete.

For multi-package projects, use the Watch scope dropdown to restrict watching to a specific package directory. Only tests related to that package rerun on save, which keeps reruns short in large projects.

The parallel workers panel appears during runs and shows how many test workers are active and which test each is running. Watch mode respects your nimbus.test.parallel setting, so more cores mean faster reruns.

bash
# Start Dev UI with watch mode pre-enabled
nimbus dev --watch

# Or click Watch in the toolbar after the UI opens
# → Monitors force-app/**/*.cls and **/*.trigger
# → Reruns affected tests on every save
# → Results update live in the browser

# Scope watch to a specific package
# Use the Watch ▾ dropdown in the toolbar
# → "All packages" or select a specific path

A test dashboard in the browser

nimbus dev opens a test dashboard with a test explorer, live results, coverage, a schema browser and an Apex REPL. It needs no editor plugin.