dsh-toolkit 使用指南
DSH 零依赖工具集合,一次挂载 10 个确定性小工具供 AI 调用
本文为派生内容(基于 wiki / faq / compatibility_json 自动组装),非 AI 即时创作。
本文由本站基于该插件已收录的字段自动派生(wiki / faq / compatibility_json / readme),非 AI 即时创作。每节末尾标源字段。
快速上手
dsh-toolkit
— 源: plugin_wiki.wiki_content
安装与验证
dsh plugin --profile web add github:omdsh-dev/dsh-toolkit
复制以上命令在 DSH Web Profile 内运行。安装完成后在「插件列表」启用即可。
— 源: plugins.install
常见问题
meta 包和独立 bundle 两种模式该怎么选?
推荐独立 bundle 模式,每个子包独立安装/启用/禁用/卸载,可用 scripts/install-web.sh 一键把 10 个工具批量装到 web profile;只有需要一次性原子挂载全部工具时才用 meta 包(dsh plugin ... add github:omdsh-dev/dsh-toolkit)。
已经单独装过 tool-csv,再装 meta 包会报错吗?
会,因为 10 个子包注册同名工具(time/encoding/json/calculator/csv/regex/markdown/diff/stat/schema),与已存在的同名插件冲突;此时需先移除已装的同名工具,或直接用独立 bundle 模式。
web 和 headless 是同一个 profile 吗?
不是。web 与 headless 是 DSH 中两个独立 profile,web 安装不会自动覆盖 headless;批量脚本也分 install-web.sh、install-headless.sh、install-all.sh 三种,dsh run 默认走 headless。
这套工具是离线确定性实现吗?会联网或读文件吗?
是。源码中明确所有工具零依赖、纯函数实现,diff 工具的边界注释也写明不读文件、不联网、不写文件、不调 git;编码工具只处理 UTF-8 文本,且工具参数会被记入会话日志,不应用于传密钥。
regex 工具会卡死吗?
不会,子包实现使用 worker 硬超时;其他子包也各自有 timeoutMs 兜底(time 1000ms、diff 2000ms、schema 3000ms,pattern worker 另加 1000ms),每个工具还设置了单侧输入/输出字节上限。
只想要其中一个工具,能单独装吗?
可以,每个子仓库都是独立 bundle,例如 dsh plugin --profile web add github:omdsh-dev/dsh-tool-csv;不需要走 meta 包或本 collection 仓库。
meta 包 apply 失败时会出现"装了一半"的状态吗?
不会。src/index.ts 包装 ctx.tools.register 捕获 disposer,任一子包失败时逆序回滚已注册工具并恢复原始 register,最终抛出包含"已回滚数量"的错误,不会留下部分注册。
安装命令在哪运行?需要联网下载 GitHub 仓库吗?
dsh plugin --profile web add github:omdsh-dev/dsh-toolkit 会从 GitHub 拉取;如需离线,可用 npm pack 生成本地 tarball,再把 tarball 路径作为参数传给 add。
— 源: plugin_wiki.faq_json
兼容性
- DSH: 0.1.0-rc.1+
- Node: >=22.19.0
- Platforms: macOS, Windows, Linux
— 源: plugin_wiki.compatibility_json
踩坑提醒
安装前请审阅上游仓库;本指南基于已收录字段自动派生,可能滞后于最新版本。如发现与官方文档冲突,请以上游为准。
— 来源:通用规则