🚀 HTTP File Runner
A powerful tool for executing HTTP requests from .http files, available as both a command-line interface and a native GUI application. Features colored output with emojis to indicate success, failure, or skipped requests.
Originally written in Zig, ported to Rust due to limitations in Zig's standard library HTTP client APIs for configuring insecure HTTPS connections.
Graphical User Interface
🌐 Try it Now: The GUI is now available as a web application! Launch the Web App → No installation required - runs directly in your browser.
⚠️ Note: The web version is subject to browser CORS restrictions. For testing localhost/private APIs, use the desktop GUI. The desktop version is currently in an experimental phase. Desktop-only features below (file browser, OS shortcuts) are not available in the web app.
HTTP Runner is available in three interfaces: a powerful CLI for automation and scripting, a native desktop GUI for local development, and a web-based GUI for quick testing and collaboration.
GUI Features
Browse and select .http files from a directory tree
View and execute individual requests interactively
View response status, headers, and formatted body
Automatically detect and use environment files
F5 to run tests, Ctrl+O to open, Ctrl+E to switch environments
Keyboard Shortcuts
- F5 - Run all requests in selected file
- Ctrl+O - Open directory
- Ctrl+Q - Quit application
- Ctrl+E - Cycle through environments
- Ctrl+Plus - Zoom in
- Ctrl+Minus - Zoom out
- Ctrl+0 - Reset font size
Available for Windows, macOS, and Linux
Features
Multiple Files
Process multiple .http files in a single run or discover all files recursively
Auto Discovery
Find and execute all .http files in your project with --discover mode
Verbose Output
Detailed request and response information for debugging and analysis
Pretty JSON
Format JSON payloads with proper indentation for improved readability
Logging
Save all output to files for CI/CD integration and reporting
Assertions
Validate status codes, response body content, and headers
Variables
Use variables and environment files for flexible configuration
Request Variables
Chain requests by passing data between HTTP calls
Built-in Functions
Generate dynamic values with guid(), string(), number(), and base64_encode()
Conditional Execution
Execute requests based on previous results with @dependsOn and @if
Installation
Quick Start
Basic Usage
# Run a single .http file
httprunner requests.http
# Run with verbose output
httprunner requests.http --verbose
# Discover and run all .http files
httprunner --discover
# Run with logging
httprunner requests.http --log results.txt
Sample .http File
# Simple GET request
GET https://api.github.com/users/octocat
# POST with headers and body
POST https://httpbin.org/post
Content-Type: application/json
{
"name": "test",
"value": 123
}
Ready to dive deeper?
Read the Complete Guide