原文
explain-my-curl is a local-first CLI for understanding what a curl command is doing across DNS, TLS, and HTTP.
This repository currently includes:
- A CLI command to parse and explain a curl input
- A starter TUI for interactive exploration
- Execution telemetry for DNS, TCP connect, TLS handshake, and time-to-first-byte
- Secret redaction for command display and error strings
- Evidence labels (
Observed,Inferred,Estimated) to support protocol transparency - A transparency contract in
docs/transparency-contract.md
go mod tidy
go run ./cmd/explain-my-curl explain "curl https://example.com -I"
go run ./cmd/explain-my-curl tui
go run ./cmd/explain-my-curl doctor
go run ./cmd/explain-my-curl versionEnter: run current curl inputEsc: switch to inspect modeTab: switch input/inspect focusi: focus input modej/kor arrow keys: move selected timeline stepSpace: collapse/expand selected timeline stepCtrl+R: toggle response diagnostics panelCtrl+B: toggle response body preview visibilityq: quit
- Tagged releases (
v*) are built automatically with GoReleaser via GitHub Actions. - CI validates
go test ./...on pushes and pull requests. - CI also runs a GoReleaser snapshot build to verify release config continuously.
- Artifacts are published for macOS/Linux/Windows on amd64 and arm64.
- Release binaries include embedded build metadata (
version,commit,date). - A Homebrew formula is generated in
Formula/during release (tap uses this same repository).
Local execution telemetry, split-pane TUI, redaction, tests, transparency contract, and release automation are in place.
