HTTP/API debugging toolset: full-control HTTP requests (method/headers/body/auth), curl command parsing and one-step execution, in-session request history with side-by-side response comparison, pagination-aware Link headers, and DeepSeek-branded UI cards (optional dsh-http-tools-ui).
Install
# from npm (prebuilt)
dsh plugin --profile web add dsh-http-tools
# from GitHub (first run asks for allowBuilds approval — follow the hint, retry)
dsh plugin --profile web add github:lussey820/dsh-http-tools
Any plugin you install runs third-party code with your own permissions — it can read your files, use your credentials, and reach the network, and tool approvals don’t sandbox it. GitHub-sourced plugins also run build scripts at install time — pnpm blocks those until you allow them, so an install can stop with ERR_PNPM_GIT_DEP_PREPARE_NOT_ALLOWED or ERR_PNPM_IGNORED_BUILDS; dsh prints the exact key to add under allowBuilds in your profile’s pnpm-workspace.yaml, and the install works on the next run. Allowing a build is a trust decision: only install sources you trust, and pin a commit (github:owner/repo#sha).
README
HTTP / API debugging tools for DeepSeek Harness (DSH).
dsh-http-tools gives your DeepSeek Harness agent a complete REST client: send any request with full control over method, headers, body, and auth, paste a curl command and let the agent run or tweak it, and review or compare past requests — all inside the chat.
Comes with an optional UI companion package (dsh-http-tools-ui) that renders every http_request / curl_parse call as a DeepSeek-branded card in the web UI.
Features
http_request— full REST client: GET/POST/PUT/PATCH/DELETE/HEAD, custom headers, body, basic/bearer auth. Returns status, duration, size, response headers, truncated body, and an equivalent redactedcurlcommand.curl_parse— parse acurlcommand into structured parts, or execute it in one step (execute: true).request_history— query in-session requests, inspect one, or diff two responses.- Pagination-aware — the
Linkresponse header is surfaced to the model, so it can followrel="next"/rel="last"without re-reading raw headers. - Preview-slimmed logging — persisted session logs carry a 6000-char body preview, so logs stay readable as request volume grows.
- DeepSeek-branded UI cards (with
dsh-http-tools-ui) — fish logo, brand-colored method badge, official state dot (running chase animation), theme-aware colors, collapsible JSON body (JsonTree), and copy-body / copy-curl buttons.
Tools
| Tool | Description |
|---|---|
http_request |
Send an HTTP request (GET/POST/PUT/PATCH/DELETE/HEAD) with custom headers, body, and auth. Returns status, duration, size, response headers, truncated body, and an equivalent curl command. |
curl_parse |
Parse a curl command into its structured parts (method, URL, headers, body, auth). Optionally execute it in one step with execute: true. |
request_history |
Query requests made in the current session, inspect one in detail, or compare two responses side by side. |
Install
dsh plugin --profile web add dsh-http-tools
# optional: DeepSeek-branded UI cards for the web client
dsh plugin --profile web add dsh-http-tools-ui
Works out of the box with zero configuration. Node.js >= 22 is required (uses the native fetch).
UI cards
dsh-http-tools-ui is a separate package that registers keyed tool views for http_request and curl_parse. Once installed, each call renders as a card in the conversation:
- Fish logo + brand-colored method badge (
GET/POST/ …) - Official state dot: green on success, amber on non-2xx, red on error, animated chase while running
- Status · duration · size · truncated summary on the row head
- Expandable response: key headers inline, JSON body as a collapsible tree (with copy actions), non-JSON bodies as text
- Copy / Copy curl buttons, all colors theme-aware (
--dsw-*tokens)
Try it
Tell your agent things like:
用 http_request 调 https://api.github.com/repos/deepseek-ai/deepseek-harness 看看 star 数
POST https://httpbin.org/post,body 传 {"hello":"world"},看看返回什么
粘贴这个 curl 命令解析一下,然后改个 header 再重发:
curl -X POST https://api.example.com/v1/users -H "Content-Type: application/json" -d '{"name":"ada"}'
用 request_history 对比 #1 和 #3 两次请求的响应差异
Configuration
All options are optional. Set them in your profile's cordis.patch.yml:
- id: http-tools
name: dsh-http-tools
config:
maxBodyChars: 524288 # cap on response body characters returned to the model
timeoutMs: 10000 # per-request timeout in milliseconds
blockedHosts: [] # hostnames the plugin refuses to contact (e.g. ['169.254.169.254'])
localOnly: false # true = only loopback / private-network targets
historyLimit: 50 # in-session request history retention
auditHeader: true # tag every request with an X-DSH-Request audit header
Security model
- By default every URL is allowed; the request is tagged with an
X-DSH-Requestaudit header so the server can identify agent traffic. blockedHostsrejects exact hostnames and their subdomains before any network I/O (e.g. block cloud metadata endpoints like169.254.169.254).localOnly: truerestricts requests to loopback and private networks — a one-switch "local debugging mode".- Response bodies are capped at
maxBodyChars(default 512 KB) and timeouts attimeoutMs(default 10 s) so a runaway call can never flood the model context. - Credentials (Bearer tokens, basic-auth pairs) are sent only as request headers. Generated
curlcommands redactauthorization,cookie,proxy-authorization, andx-api-keyvalues as***, so secrets do not leak into session logs or request history.
Development
pnpm install
pnpm test # vitest unit tests
pnpm run typecheck
pnpm run build # tsdown -> lib/
pnpm --filter dsh-http-tools-ui run build # UI client bundle -> ui/lib/
To smoke-test against a local DeepSeek Harness checkout, mount the built plugin with a patch overlay that references the built file:
pnpm run build
# http-tools.patch.yml — reference the built entry
# (on Windows, absolute paths must be file:// URLs, percent-encoded)
- insert:
- id: http-tools
name: /absolute/path/to/dsh-http-tools/lib/index.js # POSIX
# name: file:///C:/Users/.../dsh-http-tools/lib/index.js # Windows
# from the deepseek-harness repo root:
pnpm dsh web --patch /absolute/path/to/http-tools.patch.yml
License
MIT
Links
More in this category
Tencent/WeKnora#dsh-weknora★ 31292
Four read-only tools over a WeKnora knowledge base: list knowledge bases, hybrid passage search, reassemble one document's chunks in order, and WeKnora's own cited RAG or ReAct-agent answer with a resumable session id.
superdesigndev/treg★ 3854
Tool catalog for agents: search ~2,600 external endpoints (SEO and SERP, backlinks, social, people and company enrichment, ad libraries, scraping) by the task you want done, read each one's parameters and per-call price, then call it with the credential injected server-side. Ships the skill plus an MCP row that stays disabled until TREG_TOKEN is set.
TencentCloudBase/CloudBase-AI-Toolkit#dsh-plugin★ 1128
Tencent CloudBase backend for DeepSeek Harness — scaffold and deploy full-stack apps from chat, render query results as table cards with paging, sorting and CSV export, preview a deployment on its domain, and call the CloudBase MCP toolset (`mcp__cloudbase__*`) with device-code login.
gitroomhq/postiz-agent#dsh-postiz★ 499
Connects DeepSeek Harness to Postiz over MCP: list connected social media channels, fetch per-platform posting rules, and schedule, draft, or publish posts to X, LinkedIn, Instagram, Facebook, Threads, TikTok, YouTube, Reddit, Bluesky, Mastodon, Discord, Slack, Telegram and more; adds a postiz workflow skill.
EthanYoQ/Invoice-Downloader#dsh-invoice-downloader★ 474
Local IMAP invoice download, OCR, archive, and Excel reimbursement summaries for DeepSeek Harness.
anysearch-team/anysearch-dsh★ 438
AnySearch-powered real-time web and vertical search provider for DeepSeek Harness.
Community comments
Comments are public GitHub Discussions. Loading them connects to GitHub and Giscus; a GitHub account is required to post.