Keyboard-driven TUI for testing HTTP endpoints
API management through directory and file structures rather than monolithic JSON files. Eliminates merge conflicts and maintains git compatibility with individual request files. Support for .http, .yaml, .json, .jsonc, .ws, and OpenAPI formats.
Features
File-Based Organization
Multiple format support: .http, .yaml, .json, .jsonc, .ws, and OpenAPI. Request organization through categories and filtering systems. Run requests by name without extension using the CLI.
Variable System
Template syntax with {{varName}} and shell command execution via $(cmd). Environment-specific profiles with multi-value variable support. Load variables from .env files or override inline.
Request Execution
Dependency chaining with automatic variable extraction. Real-time streaming for SSE and WebSocket protocols. GraphQL and HTTP protocol support with cancellation.
Authentication
OAuth 2.0 with PKCE flow authentication. mTLS support with client certificate management. Dynamic certificate loading through variable interpolation.
Response Analysis
JMESPath and bash-based filtering with bookmarked filters. Response comparison and regression testing through pinning. Error reporting with stack traces and embedded documentation.
Analytics & History
Per-endpoint analytics and aggregated metrics. Persistent request history with search functionality. Automatic session cleanup on profile switch.
Performance Testing
Configurable load generation with concurrency controls and gradual ramp-up. Real-time metrics: latency, throughput, percentile analysis. Historical test result comparisons.
Developer Utilities
YAML-based mock server implementation. HTTP traffic inspection via debug proxy. CLI mode with JSON/YAML output for automation.
Converters
HAR file conversion for browser recordings. cURL to request file conversion. OpenAPI spec to request files conversion.
Check the documentation for the complete list.
Quick Start
# Start the interactive TUI
restcli
# Run by filename (no extension needed)
restcli run get-user
# Override variables inline
restcli run get-user -e id=123 -e env=prod
# Load environment from .env file
restcli --env-file .env.local request.http
# Convert cURL to YAML format
pbpaste | restcli curl2http --format yaml -o request.yaml
# Import OpenAPI as JSON
restcli openapi2http swagger.json --format json -o requests/
# Convert HAR file to request files
restcli har2http recording.har -o requests/
Get Started
Download for macOS and Linux and start testing HTTP endpoints, WebSocket connections, and GraphQL queries from your terminal. Join the community on Discord for support and updates.