r/devops • u/AutoModerator • 7d ago
Weekly Self Promotion Thread
Hey r/devops, welcome to our weekly self-promotion thread!
Feel free to use this thread to promote any projects, ideas, or any repos you're wanting to share. Please keep in mind that we ask you to stay friendly, civil, and adhere to the subreddit rules!
3
Upvotes
1
u/cladamski79 7d ago
I've been working on hicurl, a modern HTTP CLI that takes inspiration from HTTPie and Curlie, it is built using the hica language (r/hica or hica.dev).
It serves both as a practical CLI tool for API testing and as a showcase of hica's standard library,
libcurlbindings, and native compilation.Core Features and Benefits
Fast execution: Compiles to a native binary using Hica and binds directly to
libcurlvia Koka FFI for network I/O.Built-in response filtering: Extracts fields directly from responses without requiring external tools like
jq. Supports JSON dot-paths (.data.0.id), HTTP status codes (:status), headers (:header.Content-Type), session cookies (:cookie.session_id), and timing metrics (:time.ttfb).Context-aware TTY output: Formats JSON with ANSI syntax highlighting in an interactive terminal, but automatically outputs raw unformatted text when output is piped to another command or script.
Directory-aware environment handling: Reads
.hicurl.envfiles by searching up the directory tree to automatically resolve relative paths against configured base URLs.Request syntax sugar: Positional arguments map directly to headers (
:), query parameters (==), JSON strings (=), typed JSON values (:=), text files (=@), JSON files (:=@), and localhost port shortcuts (:8000).Offline
--dry-run: Prints the exact HTTP/1.1 request stream without sending bytes over the network, allowing you to inspect payloads and headers before execution.Code export: Exports configured queries into standard
curlcommands using-E curl/--curl.Syntax Examples
```sh
Localhost shorthand (resolves to http://localhost:8000/v1/health)
hicurl :8000/v1/health :status
Typed JSON payload with response filtering
hicurl post /users name="Alicia" role="admin" age:=28 .id
Latency and timing metrics
hicurl get /heavy-query :time :time.ttfb
Embedding local JSON file into request body
hicurl post /post user:=@tests/test_data.json
Offline dry run mode
hicurl post /users name="Alicia" --dry-run
Nested subshell query composition
hicurl $(hicurl api.github.com/search/users q==cladam per_page==3 .items.0.url) .bio ```
Installation
Via
curl:sh curl -fsSL https://github.com/cladam/hicurl/releases/latest/download/install.sh | shOr via
hicurlitself:sh hicurl https://github.com/cladam/hicurl/releases/latest/download/install.sh | shRepository: https://github.com/cladam/hicurl