$ sondev0.9.2

Debug HTTP without leaving the shell.

sonde sends, records, replays and diffs API requests as plain files on disk. One static binary. No GUI, no cloud sync, no account — just your prompt.

# macOS / Linux — one static binary $ curl -fsSL https://get.sonde.sh | sh
# or via Homebrew $ brew install sonde-sh/tap/sonde

##Flags

The whole surface fits on one screen; every flag has a config-file twin in .sonde/config.toml.

flagargdefaultwhat it does
-H, --headerkey: valueAttach a request header. Repeatable; $VARS expand from the environment.
--envnameLoad host, headers and secrets from .sonde/<name>.toml.
--savenameRecord request and response as plain text files under .sonde/runs/.
--diffreflastCompare the response against a saved run; print a structural diff.
--replayreflastRe-send a recorded request byte-for-byte, headers included.
-o, --outputmodeautoauto, json, headers, raw, or silent for scripting.
--timeoutdur30sAbort after a duration: 500ms, 10s, 2m.
-v, --verboseoffPrint DNS, TLS, redirect and timing phases for each request.

Full reference: sonde --help · man sonde(1)

##Runs are files

Plain text, on disk
Requests and responses land as readable text under .sonde/. Grep them, commit them, code-review an API change like code.
One binary, anywhere
No runtime, no plugin directory, no background updater. Works the same in ~/bin or on the far side of an ssh session.
Diff over pretty-print
The interesting question is rarely “what did it return” — it is “what changed since Tuesday”. One flag answers it.
.sonde/
|-- config.toml
|-- staging.toml      # --env staging
`-- runs/
    `-- launches-baseline/
        |-- request.http
        `-- response.json  # no database