RestRoom
A lightweight, local-only API client that lives inside VS Code — the most-used parts of Postman, with no account, no sign-in, and no cloud sync. Everything is stored on your machine using VS Code's own storage.
The initial version focused on the features people reach for most often. The code is structured (see storage.js / httpClient.js) to make adding them later straightforward.
Features
- Send requests — GET, POST, PUT, PATCH, DELETE, HEAD, OPTIONS
- Params — query params two-way synced with the URL bar
- Headers — enable/disable individual headers
- Body — None, JSON (with a "Format JSON" beautifier), Text, HTML, XML, x-www-form-urlencoded, and multipart Form Data (text fields)
- Auth — No Auth, Basic Auth, Bearer Token (adds the
Authorization header for you)
- Response viewer — status, time, size, Pretty/Raw JSON with syntax highlighting, and response headers
- Collections — save requests into named collections, rename/duplicate/delete
- Environments — named variable sets plus a always-on Globals environment; use
{{variableName}} anywhere in the URL, params, headers, body, or auth fields
- History — every send is recorded; reopen, delete, or save any past request into a collection
- Copy as cURL
- Ctrl/Cmd+Enter to send while the request tab is focused
No telemetry, no external servers, no login screen — requests go straight from your machine to the API you're calling.
Running it
This extension has no build step (plain JS), so you can run it straight from source:
- Open this folder in VS Code.
- Press F5 (or Run → Start Debugging). This launches an Extension Development Host window with the extension active.
- Click the plug/arrow icon in the Activity Bar to open the REST Client sidebar (Collections, Environments, History).
- Click New Request to open a request tab, enter a URL, and hit Send.
Packaging a .vsix you can install permanently
npm install -g @vscode/vsce
cd rest-client-lite # this folder
vsce package
That produces a .vsix file. Install it via the Extensions view → ··· menu → Install from VSIX…, or:
code --install-extension rest-client-lite-0.1.0.vsix
Using variables
- Open the Environments view, click + to create one (e.g. "Staging"), and add variables like
baseUrl = https://staging.api.example.com.
- Click the environment in the sidebar (or pick it from the dropdown in a request tab) to make it active.
- Use
{{baseUrl}} in any URL, header, param, or body field.
- The Globals environment (top of the Environments list) is always applied, regardless of which environment is active — handy for things like a shared API key.
Project layout
package.json Extension manifest (commands, views, menus)
src/extension.js Activation: wires up tree views + commands
src/storage.js All persistence (globalState) — collections, environments, history
src/httpClient.js Performs the actual HTTP request (runs in the extension host, so no CORS issues)
src/utils.js Variable substitution, URL/params sync, cURL export, formatting
src/panels/requestPanel.js Webview panel controller (one per open request tab)
src/providers/*.js TreeDataProviders for the three sidebar views
media/main.js Webview UI (vanilla JS, no framework/build step)
media/style.css Styling, built from VS Code's own theme variables
Upcoming Features
- File picker.
- Import/Export of collections
- Pre-request/Post-request scripts.
Every Feedback matters
Please share your feedback on 'samxtremes@gmail.com'
| |