Local JSON / JSONL inspection and manipulation toolkit. Inspect deeply nested structures (path tree, types, sample values per path), query with a jq-style pa...
浏览器
Clean HTTP Toolkit
试用Local HTTP client + tiny server toolkit for AI agents. GET / POST / PUT / PATCH / DELETE with retries on 5xx/429, gzip decoding, redirect following, --bearer...
它能做什么
Local HTTP client + tiny server toolkit for AI agents. GET / POST / PUT / PATCH / DELETE with retries on 5xx/429, gzip decoding, redirect following, --bearer / --basic auth, JSON pretty-print, custom headers, --query params, --status-only mode. Stream large file downloads with progress, resume, SHA-256 / MD5 checksum verification. Run a local static-file or JSON-echo server for tests. Pure Python 3 standard library, no requests, no httpx, no remote calls.
技能文档
clean-http-toolkit
v0.1.0
Fifth member of the clean-* family. AI agents constantly need to fetch a URL, POST to an API, download a dataset, or run a mock server for tests — and currently the only option is shell-out to curl (no retry logic) or pip-install requests. This toolkit gives them all four in pure stdlib.
Scripts
scripts/get.py— HTTP GET with retries (5xx/429), gzip decoding, redirect-following,--bearer TOKEN,--basic USER:PASS,--header 'Name: V',--query K=V,--jsonpretty-print,--print-headers,--status-only,--fail(exit 1 on non-2xx).scripts/post.py— POST / PUT / PATCH / DELETE via--method. Body sources:--json '',--json-file PATH,--form K=V(repeatable),--raw-file PATH(with--content-type). Same auth + retry options asget.py.scripts/download.py— streaming file download with progress bar on stderr, retries on transient errors,--resumefor incomplete files,--sha256 HEX/--md5 HEXverification, configurable--chunk-size. Memory stays bounded regardless of file size.scripts/serve.py— tiny local HTTP server for tests. Two modes:static(serve a directory, likepython3 -m http.serverbut with--max-requests Ncutoff so CI tests can run and exit cleanly) andecho(reply to every request with a JSON envelope describing the request itself — perfect for webhook smoke tests). Binds to127.0.0.1by default for safety.scripts/check_deps.sh— verifypython3.
Quick start
# Simple GET
python3 scripts/get.py https://api.example.com/users
# GET with auth, query params, JSON pretty-print
python3 scripts/get.py https://api.example.com/users \
--bearer "$TOKEN" \
--query 'limit=20' --query 'page=1' \
--json
# Just the status code (great for health checks)
python3 scripts/get.py https://example.com --status-only
# POST JSON
python3 scripts/post.py https://api.example.com/users \
--json '{"name":"Alice","email":"alice@example.com"}' \
--bearer "$TOKEN"
# POST a form
python3 scripts/post.py https://example.com/login \
--form 'user=alice' --form 'pass=secret'
# PUT a JSON file
python3 scripts/post.py https://api.example.com/items/42 \
--method PUT --json-file payload.json
# Download with progress + SHA-256 verification
python3 scripts/download.py \
https://releases.example.com/model.tar.gz \
~/Downloads/model.tar.gz \
--sha256 abc123def456...
# Resume an incomplete download
python3 scripts/download.py URL out.bin --resume
# Local static server for tests
python3 scripts/serve.py --directory ./public --port 8080
# Echo server for webhook smoke tests (auto-exits after 5 requests)
python3 scripts/serve.py --mode echo --port 9000 --max-requests 5
Exit codes
| Code | Meaning |
|---|---|
| 0 | success / 2xx response (or any response if --fail not set) |
| 1 | --fail and response was non-2xx; or --sha256 / --md5 mismatch on download |
| 2 | bad arguments / unsafe path / bad URL / network error / non-2xx download |
Safety properties
- Pure Python 3 standard library (
urllib,http.server). Norequests, nohttpx, no pip install. - All file paths validated against the same safe-path policy as the other
clean-*toolkits. - All URLs validated: must be
http://orhttps://with a host. serve.pybinds to127.0.0.1by default; you must pass--bind 0.0.0.0explicitly to expose it.--insecureis opt-in only — TLS verification is on by default.- Retries are bounded (
--retries N, default 3) with exponential backoff capped at the backoff base × 2^attempt.
Why pure stdlib
Agents are usually run in restricted environments (sandboxes, CI runners, ephemeral containers) where pip install either fails, is forbidden, or burns minutes of setup time. Every script here uses only Python stdlib so it can run anywhere Python 3 is present.
Pairs well with
clean-text-toolkit— pipeget.py URLintohtmlstrip.pyto scrape a page to plain text in one command.clean-json-toolkit— pipe API responses intoquery.py/validate.py/merge.py.clean-log-toolkit—serve.pystatic mode is useful for replaying captured log files over HTTP for parser tests.clean-csv-toolkit— download a CSV withdownload.py, theninspect.py/validate.pyit.
v0.1.0 changes
- First public release. Four scripts:
get.py,post.py,download.py,serve.py. - Shared
_common.pywithsafe_path,safe_url,parse_headers,fetch(with retry + gzip + redirect handling). - All five
clean-*toolkits now share the same safe-path policy, the same 0 / 1 / 2 exit-code contract, and the same zero-dependency principle.
License
MIT
相关技能
Fetch any public web page and get back clean, LLM-ready markdown (polite, robots-respecting)
Lightweight HTTP endpoint health checks with curl. Use when an agent needs to (1) verify one or more URLs are reachable, (2) collect status codes, TLS info, and timing, or (3) loop-check a service during deployment or incident triage without standing up a full monitoring tool.
Web extraction for LLMs and agents. Scrape, crawl, map, search, extract, summarize, diff, monitor, and research any URL into clean Markdown, text, or JSON, i...
Deploy an HTTP(S) proxy that exposes OpenClaw agent capability as a REST API over your network IP (e.g. http://<your-server-ip>:7720). Use when asked to "start agent-easy-http", "expose openclaw agent as HTTP", "deploy openclaw agent HTTP service", "create internal HTTP API for agent", or "start the agent gateway". HTTP by default (zero-friction); optional HTTPS with self-signed SAN certificates for production / cross-host scenarios. Includes mandatory API Key auth, deny-list filter, prompt-injection hardening, and direct integration with OpenClaw native /hooks/agent (millisecond dispatch + automatic hook:<uuid> session isolation per request). Thin proxy layer; use skill-to-http-flash for per-skill API endpoints.
Turn any web page into clean, readable content an agent can use — fetch a URL and get the main text/markdown back without ads, nav, or boilerplate. Use whene...