Probe HTTP endpoints quickly with clean CLI syntax.
Send JSON requests and inspect response headers/status.
Validate API behavior with straightforward failure handling.
Trusted Commands
xh get httpbin.org/json
xh post httpbin.org/post name=Alice age:=30
xh get api.example.com Authorization:"Bearer $TOKEN"
xh --json get api.example.com
xh --follow get example.com
xh --print=hHbB get httpbin.org/get
xh --check-status get api.example.com
xh -b get api.example.com
xh -h get api.example.com
xh --download get example.com/file.zip
Safe Defaults
Use --check-status in scripts so 4xx/5xx produce non-zero exits.
Use explicit method forms (get, post) for readability.
Use key:=value for raw JSON numbers/booleans, not quoted strings.
Combines readable defaults with strict exit handling when needed.
Repo Conventions
Prefer xh for interactive API probing.
Use curl when low-level transfer or compatibility control is required.
Trigger Examples
Should trigger: "Quickly test this webhook endpoint with JSON body."
Should trigger: "Show response headers for this API URL."
Should not trigger: "Rename a function symbol across source files."
1---2name: tool-xh-23description: tool-xh4---5# tool-xh67## When To Use89- Probe HTTP endpoints quickly with clean CLI syntax.10- Send JSON requests and inspect response headers/status.11- Validate API behavior with straightforward failure handling.1213## Trusted Commands1415```bash16xh get httpbin.org/json17xh post httpbin.org/post name=Alice age:=3018xh get api.example.com Authorization:"Bearer $TOKEN"19xh --json get api.example.com20xh --follow get example.com21xh --print=hHbB get httpbin.org/get22xh --check-status get api.example.com23xh -b get api.example.com24xh -h get api.example.com25xh --download get example.com/file.zip26```2728## Safe Defaults2930- Use `--check-status` in scripts so 4xx/5xx produce non-zero exits.31- Use explicit method forms (`get`, `post`) for readability.32- Use `key:=value` for raw JSON numbers/booleans, not quoted strings.3334## Common Pitfalls3536- `key=value` sends strings; `key:=value` sends typed JSON.37- Headers and bodies can leak secrets in shell history if not handled carefully.38- xh option behavior is not one-to-one with curl flags.3940## Output Interpretation4142- Pretty response body is written to stdout by default.43- `-b` prints body only; `-h` prints headers only.44- `--print=hHbB` controls request/response header/body visibility.4546## Why It Matters For Agents4748- Reduces curl quoting complexity for API tests.49- Combines readable defaults with strict exit handling when needed.5051## Repo Conventions5253- Prefer xh for interactive API probing.54- Use curl when low-level transfer or compatibility control is required.5556## Trigger Examples5758- Should trigger: "Quickly test this webhook endpoint with JSON body."59- Should trigger: "Show response headers for this API URL."60- Should not trigger: "Rename a function symbol across source files."
Run npx skillmds@latest add niksavis/tool-xh-2 in your terminal (requires Node.js), paste this page's agent-chat prompt into Claude, Cursor, or any MCP-connected agent, or download the SKILL.md file and copy it into your agent's skills directory.
tool-xh It is listed under Coding & Dev Tools on SkillMD.
This skill has not completed SkillMD's automated safety review yet. SkillMD never runs a skill's scripts for you; review the SKILL.md before installing.
This skill is tagged as working with Claude Code, Claude.ai, OpenAI Codex. SKILL.md is an open format, so most agents that read a skills directory can load it too.
Yes. Installing skills from SkillMD is free, and the skill stays under its author's original license.
niksavis (@niksavis) published this skill. Their other Agent Skills are listed on their SkillMD profile.