Desktop HTTP client

Simple HTTP client for builders.

RawRequest is an HTTP client with folding, linting, scripts, secrets, and portable history.

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

Built for builders

Focused features for day-to-day API work.

Code-first editor

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

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(...).

A workflow that sticks

Keep requests and scripts in text, keep outputs nearby, and ship changes with confidence.

1

Author .http files

Organize requests with ### 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).

Ready to send better requests?

Grab the latest release and stay in flow. macOS & Windows supported.