Show HN: Explain Curl Commands
A new CLI tool, explain-my-curl, offers a local-first way to dissect curl commands, providing step-by-step insights into DNS, TLS, and HTTP interactions. This project appeals to the Hacker News crowd by offering transparency and deep technical understanding for network requests. It's a valuable utility for developers troubleshooting or learning the intricacies of web communication.
The Lowdown
The new explain-my-curl project introduces a command-line interface and a terminal user interface (TUI) designed to demystify what a curl command actually does under the hood. It meticulously breaks down the lifecycle of a network request, from DNS resolution through TLS handshakes and HTTP exchanges, offering users an unprecedented level of visibility into these operations.
Key features of explain-my-curl include:
- A robust CLI capable of parsing and explaining various
curlinputs. - An interactive TUI for real-time exploration and diagnosis of command execution.
- Detailed telemetry covering DNS, TCP connect times, TLS handshake duration, and time-to-first-byte.
- Automatic secret redaction to ensure sensitive information isn't exposed in explanations or error messages.
- Evidence labels like 'Observed', 'Inferred', and 'Estimated' to clearly indicate the source and reliability of protocol transparency data.
- A transparent 'transparency contract' document outlining how data is handled and presented.
- Convenient quick-start commands for immediate usage and a doctor mode for setup verification.
- Automated release processes with GoReleaser, ensuring multi-platform binary availability and embedded build metadata.
This tool serves as an excellent resource for developers, network engineers, and anyone looking to gain a deeper, step-by-step understanding of how curl commands interact with the internet, providing critical debugging and educational insights into network protocols.