Desktop HTTP client

Code-first requests, on desktop.

Run .http files with envs, secrets, JavaScript scripts, and built-in load testing. History stays next to your file.

macOS + Windows
requests.http
# Environments
@env.dev.baseUrl = http://localhost:3000
@env.prod.baseUrl = https://api.example.com

# Globals (optional)
@contentType = application/json

### Login
@name login
@timeout 15000
POST {{baseUrl}}/auth/login
Content-Type: {{contentType}}
{
  "email": "dev@rawrequest.dev",
  "password": "{{secret:password}}"
}
> {
  assert(response.status === 200, `Expected 200, got ${response.status}`);
  setVar('token', response.json.token);
}

### Get Profile
@depends login
GET {{baseUrl}}/profile
Authorization: Bearer {{token}}
Accept: application/json

Screenshots

A quick look at the editor, load testing, and results.

RawRequest main window
Request editor + response viewer
Load test running
Load test in progress
Load test results
Load test results

Features

Practical tooling for day-to-day API work.

Code-first editor

CodeMirror 6 with search, folding, linting, and variable diagnostics that match your current file + env.

Built-in load testing

Turn a request into a load test with @load, then watch progress and results without switching tools.

Secrets & envs

Use {{secret:key}} placeholders and environment variables without sprinkling secrets into request files.

Portable history

History and responses live beside your .http file (or working directory for unsaved files). Predictable, reviewable.

Scripts & chaining

Pre/post scripts (goja) with setVar/getVar, request patching, and simple assertions via assert(...).

Workflow

Keep requests in text, keep outputs nearby, and make changes you can review.

1

Author .http files

Use ### separators, env placeholders, and scripts. Run any request instantly.

2

Wire secrets + envs

Use the vault + per-environment vars; lint catches missing placeholders before you hit send.

3

Keep history nearby

Responses and history sit beside your file (or your run location for unsaved work) so it’s easy to inspect and share.

Install

Grab a release, or use the macOS installer script/Homebrew.

macOS

Quick install:

curl -fsSL https://raw.githubusercontent.com/portablesheep/RawRequest/main/scripts/install.sh | bash

Or Homebrew cask:

brew tap portablesheep/rawrequest https://github.com/portablesheep/homebrew-rawrequest
brew install --cask rawrequest

Windows

Download RawRequest-*-windows-portable.zip, extract it, and run RawRequest.exe.

If SmartScreen warns you, choose “More info” → “Run anyway”.

License

RawRequest is licensed under the PolyForm Noncommercial License 1.0.0.

Read the license

Try RawRequest

Download a release for macOS or Windows, then start from a .http file.