zapreq
zapreq is a Rust-based HTTP client for API workflows. It provides a fast command-line interface for sending requests, plus local tooling for saved requests, environment profiles, regression testing, security scanning, performance benchmarking, notes, a terminal UI, and a Tauri desktop app.
Highlights
- Fast native CLI with HTTPie-style request syntax
- Support for JSON, forms, multipart uploads, sessions, and authentication
- Saved requests, collections, and environment profiles for repeatable workflows
- Built-in regression testing, response diffing, performance benchmarks, and security checks
- Local-first tooling with TUI and desktop interfaces on top of the same core engine
Installation
Cargo
Prebuilt Binaries
Release binaries for Linux, macOS, and Windows are available on the GitHub releases page.
Quick Start
# Simple request
# JSON body fields
# Custom headers and query parameters
# Persist a session
# Save and rerun a request
Request Syntax
zapreq interprets request items by operator:
| Operator | Meaning | Example |
|---|---|---|
: |
Header | Authorization:Bearer token |
= |
String field | name=faizan |
:= |
Raw JSON field | active:=true |
== |
Query parameter | page==2 |
@ |
File upload | avatar@/tmp/avatar.png |
=@ |
String from file | body=@./payload.txt |
:=@ |
JSON from file | config:=@./payload.json |
Run zapreq --help for the full CLI surface.
Core Commands
# Saved requests
# Collections and request workspaces
# Validation and analysis
Development
Prerequisites
- Rust stable toolchain
- Node.js for the desktop frontend
Common Commands
# Run the CLI locally
# Run tests
# Frontend dependencies
&&
# Start the desktop app from the repository root
Project Structure
src/: core CLI, request engine, testing, security, storage, and TUI codefrontend/: React frontend for the desktop appsrc-tauri/: Tauri host applicationtests/: integration and CLI tests
Contributing
Contributions are welcome. For documentation, bug fixes, and feature work:
- Create a branch from
main. - Make focused changes with tests where applicable.
- Run
cargo testbefore opening a pull request.
License
Licensed under either of the following, at your option: