VSCode Extension

Your editor,
wired into the test runner.

Inline test results. Live debugging. Execution traces. Governor limit tracking. Coverage gutters. All without leaving your file — no terminal tab switching, no separate tool, no lag.

Inline resultsLive debuggerTrace viewerGovernor limitsCoverage guttersWatch modeSchema explorer

Published to both the VS Code Marketplace and Open VSX — works in VS Code, Cursor, Windsurf, and VSCodium.

Run and debug without leaving the file.

Every @isTest class gets inline action buttons above the code — no menus, no sidebar hunting. Click Run Test and the result appears right next to the method, with execution time.

Non-test classes get Run and Debug buttons above each public method. Pass parameters via input boxes. See return values inline.

After every run, method execution times appear as inline annotations —// ⏱ 45ms — next to each method signature. No output channel required.

Integrates with VSCode's native Test Explorer too — tests are discovered automatically, run from there or directly from CodeLens.
DateTimeTest.cls — Nimbus: 1/1 passed
5Run All TestsValidate✓ 4/4 passed
6private class DateTimeTest {
11Run TestDebug TestView Trace
12static void testDateNewInstance() {✓ 83ms
13Date d = Date.newInstance(2024, 3, 15);
14System.assertEquals(2024, d.year());
15}
18Run TestDebug TestView Trace
19static void testDateParse() {✓ 12ms
20Date d = Date.parse('03/15/2024');
21}
24Run TestDebug TestView Trace
25static void testDateToday() {✓ 6ms
26Date d = Date.today();
27System.assertNotEquals(null, d);
28}
31public static processRecords(List<Account> accounts) // ⏱ 45ms

Three views. One sidebar.

The Nimbus activity bar icon opens a panel with three dedicated views — test run history, Salesforce governor limit tracking, and a live schema browser for the local database.

Nimbus — sidebar
▾ Test History
8 Apr, 15:561/1 passed (979ms)
7 Apr, 17:52581/581 passed (259ms)
7 Apr, 15:09581/581 passed (262ms)
7 Apr, 14:51578/581 passed (244ms)
▾ Governor Limits
testCreateAccount
SOQL12%
DML5%
CPU8%
testBulkInsert
SOQL68%
DML71%
CPU22%
testComplexQuery
SOQL88%
DML14%
CPU55%
▾ Schema Explorer
▸ Account12 rows · 47 cols
▸ Contact8 rows · 39 cols
▸ Opportunity5 rows · 61 cols
▸ CustomObj__c24 rows · 18 cols

Test History

Every test run logged, sorted newest first. Expand any run to see pass/fail by class and method. Open Trends for a 30-day pass rate chart and automatic flaky test detection. Right-click any run to diff it against another.

Governor Limits

Per-method Salesforce governor limit consumption — SOQL, DML, CPU, Heap, HTTP Callouts, and more — updated after every run. Color-coded: green under 50%, amber at 50–80%, red over 80%. Also shows inline as CodeLens above each method.

Schema Explorer

Browse the local PostgreSQL database Nimbus uses to store SObject data. See tables, row counts, column types, constraints, and foreign key relationships. Refreshes automatically after schema changes.

Click "View Trace". See everything.

After any test run, click View Trace above a method. A side panel opens with three tabs — Call Tree, Timeline waterfall, and a filterable Log — plus a variable inspector that updates as you navigate the trace.

Trace: DateTimeTest.testDateNewInstance
test.session94ms
test.method83ms
DateTimeTest.testDateNewInstance44ms
apex.assign80µs
variables.structured
variables.structured
Inspector
Span
Nametest.method
Span ID76bd52a89df36c52
Parent0f5a86425048214d
StatusOK
Duration83.532ms
Attributes
test.classDateTimeTest
duration81.471ms
test.methodtestdatene...
test.passedtrue
Call Tree

Indented method invocation tree. Each node shows name, duration, and pass/fail. Click any node to inspect variables captured at that point.

Timeline

Horizontal waterfall chart. Wider bars are slower calls. Immediately shows which part of the execution is the bottleneck.

Log

Filterable event log with timestamps. Search by method name, event type, or variable value. Every branch, assignment, and SOQL call listed.

Coverage in the gutter, not a report tab.

Enable coverage with nimbus.coverage.enabled and every test run annotates the editor directly. Green circle: executed. Red: missed. Orange half-circle: branch partially taken.

Method-level percentages appear inline after each signature: // 75% (3/4 lines). No need to open a separate report to know where coverage is thin.

Branch coverage goes beyond Salesforce's built-in metric — it tracks both sides of every if, switch, and ternary.

AccountService.cls — coverage: 75%
42
public static Account create(String name, String industry) {
43
Account acc = new Account(Name = name);
44
if (industry != null) {
45
acc.Industry = industry;
46
} else {
47
acc.Industry = getDefaultIndustry();
48
}
49
insert acc;
50
return acc;
51
}
● covered● uncovered◐ partial branch

Save. Tests run. That's it.

Toggle watch mode from the status bar or the command palette. Pick a package scope — all packages or a specific directory — and every .cls or .trigger save triggers an automatic re-run.

The status bar shows live state throughout: Watch: force-app while idle, 3/10 tests... during a run, Watch: all passed or Watch: 2 failed after.

Pairs well with a split editor: test on the left, implementation on the right. Save the implementation, watch the test turn green.

status bar — watch mode active
Idle$(eye) Watch: force-app
Running$(loading~spin) 7/20 tests...
Passed$(eye) Watch: all passed
Failed$(eye) Watch: 2 failed
Off$(eye-closed) Watch: off

Settings

All settings under the nimbus.* namespace. Configure in settings.json or the Settings UI.

SettingDefaultDescription
nimbus.binaryPath"nimbus"Path to the nimbus CLI binary
nimbus.parallel4Number of parallel test workers
nimbus.coverage.enabledfalseCollect coverage data on test runs
nimbus.coverage.showGutterIconstrueShow green/red/orange coverage icons in the editor gutter
nimbus.validateOnSavetrueValidate Apex syntax automatically on every save
nimbus.autoRun.onSavefalseAuto-run tests when a test file is saved
nimbus.autoRun.onOpenfalseAuto-run tests when a test file is opened
nimbus.performance.showInlineTimingstrueShow ⏱ method execution time annotations
nimbus.governor.showCodeLenstrueShow governor limit usage above each method

The full test runner, inside your editor.

Inline results, live debugging, execution traces, coverage gutters, and governor limit tracking — all wired into VSCode through the Nimbus daemon. Pro license required.