Pre-releasev0.1.0 is not published yet — Tauri v2, Rust and SQLite·Build status →
pre-release · local SQLite · Rust core

An API client that stays out of the way.

ReqTone is a native desktop client for REST, GraphQL and Server-Sent Events. No account and no cloud — your collections, secrets and history live in one SQLite file on your own disk. It is not released yet; the status page says what builds today and what does not.

No installer is published yet. Windows, macOS and Linux are at different stages — the first builds will also be unsigned.
The native ReqTone desktop client — multi-project navigation, colour-coded tabs, and formatted response viewer.
Tauri v2
native shell
the webview your OS already runs, not a browser bundled with the app
3
protocols
REST, GraphQL and Server-Sent Events, natively
0
accounts
no sign-in and no licence server to reach
1 file
db.sqlite
your whole workspace, copyable and greppable
What it does

Six things it gets right

Not a feature list for a pricing page — the parts of the day-to-day loop that other clients make you work around.

Rust does the networking

Requests leave the OS through async reqwest on a native thread, not through a bundled Chromium. Large payloads render without the webview stalling.

SSE is a first-class citizen

The send path is always the streaming one, so any response arrives as it is written — including a POST with a JSON body, which is what LLM endpoints need. Frames are tagged message / error / done as they land.

Tabs that survive a restart

Projects colour their tabs, unsaved edits raise a dirty dot, and closing the app keeps every open tab, sub-tab and draft body exactly where you left it.

Monaco, split the right way

GraphQL document above, JSON variables below, operation names resolved. JSON bodies validate as you type; form and multipart bodies get real key-value grids.

Variables with a clear winner

Request beats project beats global — no guessing which {{base_url}} applied. Select text, press Space N to promote it, Space V to insert one back.

One SQLite file, yours

Collections, history, environments and credentials live in db.sqlite on your disk. Back it up, diff it, encrypt it, or point the app at a different one.

In the app

Four screens you'll spend the day in

Real captures from v0.1.0. Click any of them to see it full size.

Watch the stream, not a spinner

Streaming is not a separate request type. Every request goes down the same streaming path, so the response renders as it arrives and the UI stays usable while the stream is still open.

  • No separate event-stream mode and no second code path
  • Chunks arrive live with an elapsed timer while the stream is open
  • Frames categorised message / error / done, each chunk copyable on its own
More on this
Set-up

Never type an endpoint twice

No collection to import? Give your coding agent the ready-made prompt, point it at the backend, and it writes the ReqTone file for you — controllers become folders, routes become requests.

01

Copy one prompt

A single block, nothing to fill in first. It pins the output to the import schema rather than describing your project.

02

Hand it to your agent

Any coding agent with read access to the repository walks the controllers and writes reqtone-import.json.

03

Import it

A folder per controller, a request per route, query params, headers and example bodies built from your own DTOs.

Themes

Obsidian dark, or crisp light

Both themes are tuned for the same contrast targets, so syntax colours stay legible after eight hours either way.

Deep Obsidian: #101116 base, #171922 panels, accent #5b9dff.
Light: #f4f5f8 base, white panels, accent #2f7ff0.
Questions

The ones people actually ask

It is built to. Workspaces, projects, requests, variables and history live in an embedded SQLite database on your device, there is no sign-in or licence check, no auto-updater, and nothing on the startup path waits on the network — the app opens with the cable out. A source review found no analytics or telemetry library anywhere in the code or its dependencies. We will publish a network capture of the built app alongside the first release so you can check that rather than take our word for it.

Yes. ReqTone reads Postman Collection v2.1, OpenAPI / Swagger 3.0 (JSON or YAML), raw cURL commands, and its own .reqtone archives. Folder trees, headers, query params, auth profiles and body payloads all come across.

Not yet — v0.1.0 has not been released for any platform. The first builds will also be unsigned, which means Windows SmartScreen and macOS Gatekeeper will warn about them until code signing is in place. We would rather tell you here than have you meet it as a dialog box. The release status page tracks where each platform stands.

Self-hosted team sync is in beta testing — a server you deploy and administer, not a cloud of ours. It is not generally available yet, and the client works fully without it. Today, teams share workspaces by committing exported .reqtone or Postman collections to Git, or by passing around the portable db.sqlite file.

No. ReqTone imports Postman Collection v2.1, OpenAPI and Swagger 3.0 in JSON or YAML, raw cURL commands and its own .reqtone archives — and if none of those exist for your service, there is a ready-made prompt that has a coding agent read your backend and write the import file for you, with a folder per controller and example bodies taken from your DTOs.

Get started

Not out yet. Here is exactly where it stands.

No account to create and no folder in someone else’s cloud. v0.1.0 has not been published for any platform — the status page says what builds today and what does not.

v0.1.0 · not released yet · Windows, macOS and Linux planned