Nifty REST Client
Send HTTP requests from .http files: variables, environments, request chaining, response viewer, cURL import and export, and history. No account, no cloud.
Maintained. No sign-in. No telemetry. Works in VS Code, Cursor, Windsurf, VSCodium and other editors that use Open VSX.
Features



- Requests as plain text. Write requests in
.http or .rest files next to your code, commit them with your project, and click Send Request above any of them (Ctrl+Alt+R). The response opens beside the editor. The format is the same one REST Client, httpYac and JetBrains IDEs use, so existing files just work.
- Variables and environments. Define file variables (
@baseUrl = https://api.example.com) and switch environments (local, staging, production) from the status bar. Environments come from http-client.env.json (with secrets in http-client.private.env.json, which you keep out of git) or from settings, with $shared values for all of them. Values from your .env file and the process environment are available too.
- Chain requests. Name a request with
# @name login and use its response later: Authorization: Bearer {{login.response.body.token}}, {{login.response.body.$.data.items[0].id}} or {{login.response.headers.Location}}.
- Dynamic values.
{{$uuid}}, {{$timestamp}}, {{$datetime iso8601}}, {{$randomInt 1 100}}, {{$processEnv API_KEY}} and {{$dotenv API_KEY}}.
- A clear response view. Status, time and size at a glance, colored and pretty-printed JSON, images shown inline, all headers, and the exact request that was sent (with variables filled in). Copy the body, save it, or open it in an editor.
- cURL both ways. Copy as cURL for any request, and Paste cURL as Request to turn a curl command from docs or DevTools into a request.
- Everything else you need. Request history, a cookie jar so login sessions carry over, GraphQL (
GRAPHQL method, query plus variables), body files (< ./payload.json, or <@ ./payload.json to fill in variables), multi-line query strings, and # @no-redirect / # @no-cookie-jar per request.
- Completion and hover for
{{variables}}, showing their current values.
- No account. No cloud. No telemetry. Your requests and secrets stay in your files.
- Works in the browser on vscode.dev and github.dev. Requests go through the browser there, so servers must allow cross-origin requests (CORS), and
$processEnv variables are empty.
Example
@baseUrl = {{host}}/api
### login
POST {{baseUrl}}/login
Content-Type: application/json
{ "user": "ada", "password": "{{$dotenv API_PASSWORD}}" }
###
GET {{baseUrl}}/orders?limit=10
Authorization: Bearer {{login.response.body.token}}
With http-client.env.json:
{
"local": { "host": "http://localhost:3000" },
"production": { "host": "https://shop.example.com" }
}
Commands
| Command |
What it does |
Nifty REST Client: Send Request |
Send the request under the cursor (Ctrl+Alt+R) |
Nifty REST Client: Send Last Request Again |
Repeat the last request (Ctrl+Alt+L) |
Nifty REST Client: Select Environment… |
Switch environment (Ctrl+Alt+E, or the status bar) |
Nifty REST Client: Copy Request as cURL |
Copy with variables filled in |
Nifty REST Client: Paste cURL as Request |
Convert the curl command on the clipboard |
Nifty REST Client: Request History… |
Send a recent request again |
Nifty REST Client: Clear Cookies |
Forget session cookies |
Nifty REST Client: New Request File |
Open a sample .http file |
Settings
| Setting |
Default |
What it does |
nifty.rest-client.environments |
{} |
Environments and their variables ($shared applies to all) |
nifty.rest-client.timeoutSeconds |
60 |
Request timeout (0 waits forever) |
nifty.rest-client.followRedirects |
true |
Follow redirects |
nifty.rest-client.rememberCookies |
true |
Keep cookies between requests |
nifty.rest-client.userAgent |
nifty-rest-client |
Default User-Agent |
nifty.rest-client.historySize |
50 |
Requests kept in history |
nifty.rest-client.keepFocusInEditor |
true |
Keep the cursor in the .http file |
Install
- VS Code: search for "Nifty REST Client" in the Extensions view, or install from the Visual Studio Marketplace.
- Cursor, Windsurf, VSCodium, Kiro, Antigravity: install from Open VSX.
Privacy
This extension collects no telemetry and needs no account.
- Nifty C# Templates: New Class, Record & Namespace: New C# class, interface, record, enum, test and controller files with the right namespace, plus namespace syncing. (Open VSX)
- Nifty Mermaid: Mermaid Diagram Preview & Export: Mermaid diagrams with no account: live preview beside .mmd files and Markdown, diagrams in the Markdown preview, syntax highlighting, and export to SVG or PNG. (Open VSX)
- Nifty Paste JSON as Code: JSON to Types: Turn JSON on your clipboard into types for TypeScript, C#, Go, Rust, Python, Java, Kotlin, Swift, Dart and more. (Open VSX)
- Nifty SQL: SQL Formatter for 20 Dialects: Format SQL in 20 dialects, including dbt and Jinja templates, with your team's settings. (Open VSX)
- Nifty XML: XPath, Formatter & XML to JSON: Evaluate XPath with namespaces, copy the XPath of any element, format, minify, check well-formedness and convert XML to JSON. (Open VSX)
- Nifty YAML: Formatter, Validator & Converter: Format YAML without losing comments (Kubernetes-style indents), sort keys, lint with yamllint, copy the key path, and convert to and from JSON. (Open VSX)
See all 21 Nifty tools at https://getnifty.dev
| |