skills/xh/SKILL.md
HTTPie-compatible HTTP client for REST API calls
npx skillsauth add athal7/dotfiles xhInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
xh CLI — HTTPie-compatible, cleaner than curl.
xh --ignore-stdin --session=agent [METHOD] https://endpoint Key:Value [key=value] [key==value]
Key:Value (no space after colon)key=value (string) or key:=value (raw JSON)key==valuexh --ignore-stdin --session=agent --json POST https://...--ignore-stdinAlways use --ignore-stdin in agent/non-TTY contexts. Without it, xh tries to read stdin and conflicts with body arguments.
Sessions are pre-configured per host at chezmoi apply time. --session=agent resolves the correct credentials for each host automatically.
Never pass an Authorization: header or a $*_API_KEY value — the session already carries the credentials for the host.
If a request returns 401, the session may be stale — re-run chezmoi apply to refresh.
Pass query as a string field and variables as raw JSON:
xh --ignore-stdin --session=agent POST https://api.example.com/graphql \
query='{ issues { nodes { id title } } }' \
variables:='{"id":"ABC-123"}'
Queries are read-only; mutations modify data and may require ask permission.
@/path/to/file.json sends a file as the request body (useful for complex JSON like ES queries):
xh --ignore-stdin --session=agent POST https://api.example.com/search @/tmp/query.json
Cannot mix @file with key=value body items — pick one per request. Alternative for inline complex JSON: key:='{"nested":"json"}' — single-quoted bash avoids escaping inner double quotes.
development
Zoom meeting captions — file locations and format
tools
macOS dictation custom vocabulary — sync knowledge base names and terms to the system spelling dictionary
testing
Look up people, projects, products, and decisions locally first: contact info (email, Slack ID, GitHub handle), titles and teams, project/product status, who works on what, and past decisions. Check before searching Slack, email, calendar, or GitHub — this is the first stop for any contact detail, project context, or decision-history question.
testing
Communication style, audience awareness, and AI-authorship markers for human-facing prose — load when composing chat messages, review comments, merge request descriptions, emails, doc bodies, or ticket descriptions