Native speed
The request path is Rust: TLS, redirects, decompression, cookies and streaming all happen outside the web view, so the interface stays responsive while a 30 MB response downloads.
ReqForge is a native desktop API client and test runner. Collections, environments, scripting and assertions, plus load testing, security scanning and a headless command-line runner. No cloud workspace, no sync service, no request of yours leaving your network: your work stays as plain JSON files in a folder you choose.
Five seats, fourteen days, no card. Buy at £96 per seat per year when it has earned it.
Your data never leaves your machines Works offline for up to three weeks One JSON file per collection Rust HTTP engine macOS · Windows · Linux No analytics, no crash reporting
Sending a request is the start of the work, not the end of it. The things an API client usually sends you elsewhere for are here.
The request path is Rust: TLS, redirects, decompression, cookies and streaming all happen outside the web view, so the interface stays responsive while a 30 MB response downloads.
A collection is one JSON file in a directory you pick. Diff it in a pull request, copy the folder to another machine, carry on working. No proprietary database, no export step.
Four scopes with a clear precedence, autocomplete on
{{ showing what each name resolves to, and a hover
preview of the fully resolved value and where it came from.
Pre-request and test scripts in JavaScript with a
Postman-compatible pm API, run in an embedded engine
with time limits so a runaway loop cannot hang the app.
In the app with live results, or headlessly with
reqforge-cli: JSON and JUnit reporters, CI-shaped
exit codes, and the same engine behind both.
Integrates with k6, the open-source load testing tool. Turn the open request into a script, pick virtual users and a duration, and get p90, p95, p99 and max latency, throughput and failure rate as it runs.
Integrates with ZAP, the open-source web security scanner. Scan one request, a collection, or everything: spidering plus an opt-in active scan, with findings grouped by risk.
Open ReqForge on a repository and commit, branch, pull and push
from inside the app. libgit2 is bundled, so it works whether or
not git is installed.
Import Postman v2.1 collections and environments, cURL commands and OpenAPI 3.x documents. Export back to Postman, optionally with every credential blanked.
ws://, wss:// and Server-Sent Events
render as a timestamped conversation. Binary frames are decoded
when they are text and hex-dumped when they are not.
Press F1 for a searchable user guide covering every feature, written for someone who has never opened the app. No undocumented features ship.
Send, save, close, filter, new request, new window and the guide are all a chord away, and the tree and tab strip are fully navigable without a mouse.
Every screenshot on this page is the real application, captured from the current build.
Test scripts use the same pm API you already know:
pm.test, Chai-style pm.expect,
pm.environment.set to pass a value to the next
request, and pm.sendRequest when a call needs a
token first.
Press on a collection or a folder to run every request in order. Each row shows the status, the time and every assertion; failures expand to the URL that was reached and what the assertion expected.
reqforge-cli command.
No second definition of the request. ReqForge integrates with k6, the open-source load testing tool: choose virtual users and a duration or an iteration count, and the open request becomes a script that runs on your own machine, with the tool's output streamed as it goes.
ReqForge integrates with ZAP, the open-source web application security scanner: it finds the ZAP installed on your machine and starts and stops it for you, or talks to a daemon you already run. Point it at the active request, a whole collection, or everything, and it spiders first, with an active scan as an opt-in second pass.
A workspace is just a directory: a repository, or the folder beside the service under test. ReqForge lists the API files it finds there (its own, Postman exports, OpenAPI documents), imports them on a press, and reads the folder's git branch and remote.
reqforge .
reqforge-cli runs your collections without the UI,
through the same engine: same variables, same scripts, same
settings, same cascade. Its options mirror Newman's and it reads
the same files, so an existing pipeline usually only needs the
command name changed.
$ reqforge-cli run ./billing.postman_collection.json
ReqForge · Billing API · 3 request(s)
Billing API / Invoices / List invoices GET http://127.0.0.1:8099/v1/invoices
200 OK · 3 ms · 123 B
✓ status is 200
✓ returns a page of invoices
Billing API / Invoices / Create invoice POST http://127.0.0.1:8099/v1/invoices
201 Created · 1 ms · 30 B
✓ status is 201
Billing API / Health check GET http://127.0.0.1:8099/healthz
200 OK · 0 ms · 55 B
✓ status is 200
✓ every dependency is up
3 request(s) · 0 failed · 5 assertion(s) · 0 failed · 46 ms
Exit code 0 when everything passed, 1 when a
request or an assertion failed, 2 for bad usage, so a CI
job fails for the right reasons. Add -r junit
--reporter-junit-export results.xml and your runner shows the
failures as tests. The
CLI reference is in the docs.
run and diagnose read a licence token from
REQFORGE_LICENCE_TOKEN, and that token is bound to the
machine it was issued for. There is no way to issue one for a build
agent today, so a pipeline cannot hold a seat yet. That part is
being built. list, logs and
doctor need no licence at all.
What that means for a pipeline.
Click any of these to see it full size.
Fourteen days, five seats, no card: the whole product, not a cut-down version of it. Builds for macOS, Windows and Linux are on the releases page; the seat is what makes them run.
After that it is £96 per seat per year, billed annually, with every feature in every seat. Your collections are files on your own disk throughout: whether you buy or not, they stay open, editable and exportable. What a lapsed licence stops is sending requests, not reading your own work.