qurl
qurl is a modern command-line HTTP client built in Go, designed as a feature-rich alternative to curl for API development and testing.
Why qurl?
Standard curl is a powerful tool but lacks built-in features for modern API development and testing workflows. qurl maintains absolute compatibility with common curl flags while providing integrated response formatting, colorization, configuration profiles, and native support for modern protocols like HTTP/3.
Core Features
- Curl Compatibility: Uses familiar flags like
-X, -H, -d, -v, -L, and -fsSL.
- Response Formatting: Built-in prettification and syntax highlighting for JSON, XML, and HTML.
- HTTP/3 (QUIC): Support for HTTP/3 connections via the
--http3 flag.
- Configuration Profiles: Load environment-specific headers and settings from
qurl.yml.
- Automated Convenience:
- Auto-Scheme: Automatically prepends
https:// to schemeless URLs.
- Onion Routing: Automatic SOCKS5 proxying (127.0.0.1:9050) when targeting
.onion domains.
- Proxy Support: Native support for HTTP, HTTPS, and SOCKS5 proxies.
Installation
Install directly via Go:
go install github.com/isa0-gh/qurl/cmd/qurl@latest
Or build from source:
git clone https://github.com/isa0-gh/qurl.git
cd qurl
go build -o qurl ./cmd/qurl
Usage Examples
Follow redirects and use HTTP/3:
qurl -L --http3 -v google.com
Prettify JSON response:
qurl --prettify http://httpbin.org/json
Use a specific profile (e.g., dev headers):
qurl --profile dev api.internal/v1/resource
Configuration
qurl searches for qurl.yml in the standard user configuration directory (e.g., ~/.config/qurl/ on Linux). A default configuration is created automatically on the first run.
Contributing
Issues
Ensure the issue is not already reported. Provide clear steps to reproduce for bugs.
Features
We focus on improving the API testing and development experience. Open a proposal issue before implementing major new features.
Development
- Fork the repository.
- Create a feature branch.
- Submit a pull request to the
dev branch.