Skip to content
| Marketplace
Sign in
Visual Studio Code>Testing>HTTP Smoke RunnerNew to Visual Studio Code? Get it now.
HTTP Smoke Runner

HTTP Smoke Runner

Arun Brahma

|
45 installs
| (1) | Free
Turn your .http files into runnable smoke tests, right inside VS Code.
Installation
Launch VS Code Quick Open (Ctrl+P), paste the following command, and press enter.
Copied to clipboard
More Info

HTTP Smoke Runner

Turn your .http files into runnable smoke tests, right inside VS Code.

Marketplace Version VS Code TypeScript License: MIT GitHub Stars

Run .http and .rest files like smoke tests with pass/fail, latency, and jump-to-failure, directly in VS Code's Testing panel.

HTTP Smoke Runner in action: Testing tree, CodeLens, failing-test transcript, and status bar summary

Why

Developers already keep API requests in .http files alongside source code (popularized by the REST Client extension). That workflow is great for sending one request, but awkward for running the whole file as a smoke check. HTTP Smoke Runner adds a thin test-runner layer:

  • Works with REST Client's common file syntax (###, @var, {{var}}, # @name, {{$guid}}, {{$dotenv}}). Drop-in compatible, no rewrites required
  • Assertions are inline comments: # expect status 200
  • Results appear in VS Code's native Testing panel, not another sidebar
  • Zero external runtime: no Node install, no Python install, no cloud service
  • Zero telemetry, zero account, fully local

Install

Search "HTTP Smoke Runner" in VS Code's Extensions view, or run:

ext install arunbrahma.http-smoke-runner

Quick start

Create requests.http in your repo:

@baseUrl = http://localhost:3000

### health
GET {{baseUrl}}/health
# expect status 200
# expect body contains "ok"
# expect time < 500ms

### create user
POST {{baseUrl}}/users
Content-Type: application/json

{ "name": "Ada" }
# expect status 201
# expect body path $.id exists
# expect body path $.name equals "Ada"

Open the Testing view. Your .http file appears, each request as a test. Click ▶ next to any request, or use the CodeLens above each ### block.

How it looks

CodeLens and inline assertions

Every ### block gets a ▶ Run Request CodeLens; the whole file gets a ▶ Run File CodeLens at the top. No extra UI: the file is the test suite.

CodeLens above each request block

Native Testing panel

Each file becomes a test group, each ### block a test. Click to jump to source, re-run a single test, cancel mid-run; all native VS Code interactions you already know.

Testing panel with expanded request list

Assertion grammar

All assertions are # comment lines (so the file stays valid for REST Client). Multiple per request are AND-ed.

# expect status 200
# expect status 2xx
# expect header content-type contains json
# expect header x-request-id exists
# expect body contains "ok"
# expect body path $.id exists
# expect body path $.name equals "Ada"
# expect body path $.email matches /@example\.com$/
# expect time < 500ms

Variables

Type Syntax Example
File @name = value → {{name}} @baseUrl = http://localhost:3000
System {{$guid}}, {{$uuid}}, {{$randomInt min max}} X-Req-Id: {{$guid}}
Timestamp {{$timestamp}}, {{$datetime iso8601}}, {{$localDatetime rfc1123}} createdAt: {{$datetime iso8601}}
Process env {{$processEnv VAR}} Authorization: Bearer {{$processEnv TOKEN}}
Dotenv {{$dotenv VAR}} (first use prompts once per workspace) api_key: {{$dotenv API_KEY}}

Development

git clone https://github.com/iamarunbrahma/http-smoke-runner.git
cd http-smoke-runner
npm install

npm test          # 76 unit tests: parser, assertions, HTTP runner (with a live stub server)
npm run typecheck # tsc --noEmit
npm run build     # bundle with esbuild → dist/extension.js
npm run package   # produce a .vsix for local install

Repo layout

Path What lives there
src/parser/ .http file lexer + request / assertion / variable parsing (pure, no VS Code dep)
src/runner/ Smoke runner (fetch + AbortController), assertion engine, JSON path, header redactor
src/testing/ vscode.tests.createTestController wiring + run handler
src/codeLens/, src/diagnostics/, src/statusBar.ts Editor integrations
test/fixtures/ Stub HTTP server + sample .http file used by unit tests

Contributing

Bug reports and feature requests welcome. Open an issue on GitHub.

License

MIT © 2026 Arun Brahma

  • Contact us
  • Jobs
  • Privacy
  • Manage cookies
  • Terms of use
  • Trademarks
© 2026 Microsoft