npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2026 – Pkg Stats / Ryan Hefner

dsh-http

v0.1.1

Published

DSH plugin: structured HTTP request tool (http_request) built on the Node built-in fetch.

Readme

dsh-http

DSH 结构化 HTTP 请求工具插件。注册一个 http_request 工具,基于 Node 内置 fetch,把每次请求的结果规范化为一个结构化 JSON 对象,供模型与 Code Mode 程序化调用。零依赖、纯 ESM、无构建

简介

  • 工具名:http_request
  • 能力:任意 http/https 请求(GET/POST/PUT/PATCH/DELETE/HEAD)、自定义请求头、原始 body、JSON 自动序列化、Bearer/Basic 认证便捷参数、超时与响应体截断。
  • 行为:永不抛异常。网络错误、超时、参数错误都折叠为 { ok: false, error: { stage, message } };成功返回 { ok: true, status, statusText, durationMs, sizeBytes, ... }

安装

dsh plugin --profile <name> add file:./plugins/dsh-http
# 或发布后:
dsh plugin --profile <name> add dsh-http

参数

| 参数 | 类型 | 必填 | 默认 | 说明 | |---|---|---|---|---| | url | string | ✅ | — | 目标 URL,仅允许 http/https | | method | enum | — | GET | GET/POST/PUT/PATCH/DELETE/HEAD | | headers | object | — | — | 额外请求头,key → string | | body | string | — | — | 原始请求体;与 json 互斥 | | json | JSON | — | — | 任意 JSON 值,自动 JSON.stringify 并置 content-type: application/json;与 body 互斥 | | timeoutMs | number | — | 10000 | 请求超时(毫秒) | | maxBodyChars | number | — | 4000 | 响应体返回上限(字符数) | | auth | object | — | — | 认证便捷参数,见下 |

bodyjson 同时提供会返回 { ok: false, error: { stage: 'request', message: ... } }

输出字段

成功(ok: true):

| 字段 | 类型 | 说明 | |---|---|---| | status | number | HTTP 状态码 | | statusText | string | 状态文本 | | durationMs | number | 往返耗时(毫秒) | | sizeBytes | number | 响应体字节数 | | contentType | string | 响应 content-type,存在时给出 | | headers | object | 仅存在的响应头:content-type/content-length/location/server | | redirectTo | string | 3xx 时标注 location 跳转目标 | | json | object | 响应体 JSON 解析成功时给出;受 maxBodyChars 截断则为 nulltruncated: true | | text | string | 非 JSON 响应体的(截断后)文本 | | truncated | boolean | 响应体是否被截断 |

失败(ok: false):{ ok: false, error: { stage: 'request', message } }

认证用法

auth 参数在内存中生成 Authorization 头(不落盘、不进日志参数):

// Bearer
{ "auth": { "type": "bearer", "token": "<token>" } }
// Basic
{ "auth": { "type": "basic", "username": "user", "password": "pass" } }

token / username / password 缺失时返回 { ok: false, error: { stage: 'request', message: ... } }

安全与内网访问风险提示

⚠️ 本工具是本地个人工具不内置 SSRF 拦截。唯一的安全校验是 URL scheme 必须是 http/https

这意味着它可以访问 http://localhosthttp://127.0.0.1http://10.xhttp://192.168.xhttp://172.16–31.xhttp://169.254.x 等内网/回环地址。如果模型(或共享给模型的 Code Mode 程序)被诱导发起请求,可能扫描内网、访问本机服务或向云元数据端点(如 169.254.169.254)发起请求。

不要在不可信的 prompt 或不可信的多租户环境中使用本插件;如确有内网隔离需求,请在插件上游叠加 tools/pre-execute 策略进行 URL 门禁。

License

MIT