NitroHttp is a desktop HTTP client for fast API testing.
It focuses on a clean UI and practical workflows:
- Send requests quickly (
GET,POST,PUT,PATCH,DELETE) - Build query parameters visually
- Inspect response body, status, time, size, headers, and cookies
- Persist recent requests (history) and reusable requests (collections)
- HTTP methods:
GET,POST,PUT,PATCH,DELETE - URL input with automatic query-string sync from key/value parameter rows
- JSON request body editor (AvaloniaEdit)
- Status code + reason phrase (e.g.,
200 OK) - Response count (object/array aware for JSON)
- Elapsed time (
ms) and payload size (B,KB,MB) - Response tabs:
- Body (pretty-printed JSON when possible)
- Headers
- Cookies
- History stores up to 50 unique recent requests
- Collections lets you save named requests
- Data is stored as JSON on disk and restored at app startup
- .NET
net10.0 - Avalonia
11.3.x - AvaloniaEdit
11.3.x
Program.csβ desktop app entrypointApp.axaml,App.axaml.csβ application setup and theme wiringMainWindow.axamlβ full UI layoutMainWindow.axaml.csβ request execution, tab logic, persistence, response renderingHelpers/HttpStatusHelper.csβ status code text + status group helpersHelpers/FormatBytes.csβ human-readable response size formattingHelpers/RequestStore.csβ persisted model (History,Collections)scripts/publish-all.shβ multi-runtime publish helperscripts/package-deb.shβ Linux.debpackaging helper
- .NET SDK that supports
net10.0- Verify with:
dotnet --info
- Verify with:
- Linux/macOS/Windows desktop environment
For Debian packaging:
dpkg-debpython3+pip- Pillow (
PIL) (auto-installed by script if missing)
dotnet restore
dotnet rundotnet build -c Releasebash scripts/publish-all.shOutputs:
publish/linux-x64/publish/win-x64/
dotnet publish NitroHttp.csproj \
-c Release \
-r linux-x64 \
--self-contained true \
/p:PublishSingleFile=true \
/p:IncludeNativeLibrariesForSelfExtract=true \
/p:PublishTrimmed=false \
-o publish/linux-x64bash scripts/package-deb.sh 1.0.0Output package:
dist/nitrohttp_1.0.0_amd64.deb
Install:
sudo dpkg -i dist/nitrohttp_1.0.0_amd64.debNitroHttp stores request history and collections in a JSON file:
- Path base:
Environment.SpecialFolder.ApplicationData - Relative file:
NitroHttp/requests.json
On Linux this typically resolves to:
~/.config/NitroHttp/requests.json
Stored model:
History[]Collections[]- Each item includes
Method,Url,Body,Timestamp, and optionalCollectionName
- Select method and enter URL.
- Add query params from the Params tab (
+ Add). - Add JSON body in Body tab for write methods.
- Click NITRO to send.
- Inspect response stats and switch between Body / Headers / Cookies tabs.
- Save frequently used requests in Collections.
- Request body content type is JSON (
application/json) forPOST,PUT,PATCH. - Query parameters are applied by rewriting the URL from the Params panel.
- Response headers and cookies are currently populated for
GETflow. - Headers and Auth request input panels are present in UI but not yet applied to outgoing requests.
- History deduplicates by (
Method,Url,Body) and keeps newest first.
- Blank response or URL error: ensure URL is not empty and includes
http://orhttps://. - JSON not formatted: response is likely not valid JSON; NitroHttp shows raw text.
- Packaging fails on Linux: verify
dpkg-deb,python3, andpipare installed.
- Apply custom request headers from the Headers tab
- Apply bearer/API-key auth from the Auth tab
- Export/import collections
- Save/copy response actions wiring
- Additional body types (form-data, x-www-form-urlencoded)