一套扩展集合,面向 pi coding agent,也面向 dsh DeepSeek Harness coding…
37.7/100
综合分
3
GitHub 星标
—
npm 周下载
—/5
用户评分
数据截至 2026/11/3 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。
自动兼容检查未通过:缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装。以下命令仍可尝试,但可能失败。
安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add 5aaee9/pi-agent-extensions该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)
状态速览
判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态信任档位:需留意
是什么
dsh 原生插件 · other
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 3 天前
档位由哪些信号合成
本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装缺少 main/exports/bin 入口声明;仓库 package.json 标记 private,未发布到 npm,需从源码安装
展开查看检查明细 ↓
以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。
✓npm 包pi-agent-extensions @ 0.5.6
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✗入口文件缺少入口声明
源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。
验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/31 03:46:23
安全扫描自动 · 静态分析源码v2.7.0🔵 扫描:含敏感能力尚无人工评估展开查看扫描说明与证据 ↓
安全扫描自动 · 静态分析源码
v2.7.0静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。
可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 38 处,展示前 38 条)
- 读取本地文件pi-autocompact/settings.ts:109
return object(JSON.parse(await readFile(path, "utf8")), path); - 读取本地文件pi-autocompact/settings.ts:177
const info = await stat(lockPath); - 删除本地文件pi-autocompact/settings.ts:184
await rmdir(lockPath); - 写入本地文件pi-autocompact/settings.ts:194
await mkdir(lockPath); - 写入本地文件pi-autocompact/settings.ts:201
await mkdir(lockPath); - 写入本地文件pi-autocompact/settings.ts:215
await mkdir(dirname(target), { recursive: true }); - 读取本地文件pi-autocompact/settings.ts:222
mode = (await stat(target)).mode & 0o777; - 写入本地文件pi-autocompact/settings.ts:234
if (mode !== undefined) await chmod(temporary, mode); - 写入本地文件pi-autocompact/settings.ts:235
await rename(temporary, target); - 删除本地文件pi-autocompact/settings.ts:237
await rm(temporary, { force: true }).catch(() => undefined); - 删除本地文件pi-autocompact/settings.ts:238
await rmdir(lockPath).catch(() => undefined); - 读取本地文件pi-custom-provider/cache.ts:29
const parsed = JSON.parse(await readFile(path, "utf8")) as unknown; - 写入本地文件pi-custom-provider/cache.ts:63
await mkdir(resolve(path, ".."), { recursive: true }); - 写入本地文件pi-custom-provider/cache.ts:66
await writeFile(temporaryPath, `${JSON.stringify(cache, null, 2)}\n`, { mode: 0o600 }); - 写入本地文件pi-custom-provider/cache.ts:67
await rename(temporaryPath, path); - 删除本地文件pi-custom-provider/cache.ts:69
await rm(temporaryPath, { force: true }).catch(() => undefined); - 读取本地文件pi-custom-provider/config.ts:404
const text = await readFile(path, "utf8"); - 发起网络请求pi-custom-provider/util.ts:123
const response = await fetch(url, { - 读取本地文件pi-model-trace/index.ts:23
bankPromise ??= readFile(fileURLToPath(BANK_URL), "utf8").then( - 执行外部命令来自配置/变量pi-model-trace/index.ts:64
const child = spawn(piBin, args, { cwd, stdio: ["ignore", "pipe", "pipe"] }); - 发起网络请求pi-provider-sub2api/codex-compaction.ts:616
const response = await fetch(normalizeUrl(params.relay.responsesUrl), { - 读取本地文件pi-provider-sub2api/config.ts:296
const parsed = JSON.parse(await readFile(configPath, "utf8")) as unknown; - 读取本地文件pi-provider-sub2api/model-cache.ts:272
const info = await stat(path); - 读取本地文件pi-provider-sub2api/model-cache.ts:274
return parseCache(JSON.parse(await readFile(path, "utf8")) as unknown); - 读取本地文件pi-provider-sub2api/model-cache.ts:283
permissions = (await stat(path)).mode & 0o777; - 写入本地文件pi-provider-sub2api/model-cache.ts:296
await chmod(temporary, permissions); - 写入本地文件pi-provider-sub2api/model-cache.ts:297
await rename(temporary, path); - 删除本地文件pi-provider-sub2api/model-cache.ts:299
await rm(temporary, { force: true }); - 读取本地文件pi-provider-sub2api/model-cache.ts:307
directory = await realpath(agentDir); - 读取本地文件pi-provider-sub2api/model-metadata.ts:103
await access(modelsStorePath); - 读取本地文件pi-provider-sub2api/request-mode-store.ts:21
const path = await realpath(configPath); - 读取本地文件pi-provider-sub2api/request-mode-store.ts:22
const permissions = (await stat(path)).mode & 0o777; - 读取本地文件pi-provider-sub2api/request-mode-store.ts:23
const text = await readFile(path, "utf8"); - 写入本地文件pi-provider-sub2api/request-mode-store.ts:55
await chmod(temporary, permissions); - 写入本地文件pi-provider-sub2api/request-mode-store.ts:56
await rename(temporary, path); - 删除本地文件pi-provider-sub2api/request-mode-store.ts:58
await rm(temporary, { force: true }); - 发起网络请求pi-provider-sub2api/util.ts:104
const response = await fetch(url, { ...init, redirect: "error", signal }); - 读取本地文件pi-skill/index.ts:89
const content = await readFile(skill.filePath, "utf-8");
扫描于 2026/11/2(1 天前) · 范围 全包扫描 · 来源 GitHub 仓库
静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个
README
由 DeepSeek 最新模型翻译生成pi-agent-extensions
一套扩展集合,面向 pi coding agent,也面向 dsh (DeepSeek Harness) coding agent。
包
| 包 | 说明 |
| @indexyz/pi-provider-sub2api | 动态服务商支持、模型与价格发现并缓存、配额上报、保存请求模式,以及为兼容 Sub2API 的中转提供 Grok (xAI) 条目。 |
| @indexyz/pi-custom-provider | 通用 OpenAI Chat Compatible、Anthropic Messages、OpenAI Responses 和 Ollama 服务商,支持模型发现与缓存。 |
| @indexyz/pi-continue | 用 pi 当前选中的模型继续被中断或失败的回合。 |
| @indexyz/pi-skill | 在提示词任意位置以 Codex 风格 $skill-name 调用技能。 |
| @indexyz/pi-model-trace | 通过 ModelTrace 数值指纹(/model-trace)判断实际为 pi 提供服务的模型。 |
| @indexyz/pi-autocompact | 按模型设置上下文压缩阈值,例如 /autocompact 300k,加 --save 可持久化为用户级默认值。
展开完整文档(README 剩余 1 节)
pi-agent-extensions 一套扩展集合,面向 pi coding agent,也面向 dsh (DeepSeek Harness) coding agent。 包 | 包 | 说明 | | @indexyz/pi-provider-sub2api | 动态服务商支持、模型与价格发现并缓存、配额上报、保存请求模式,以及为兼容 Sub2API 的中转提供 Grok (xAI) 条目。 | | @indexyz/pi-custom-provider | 通用 OpenAI Chat Compatible、Anthropic Messages、OpenAI Responses 和 Ollama 服务商,支持模型发现与缓存。 | | @indexyz/pi-continue | 用 pi 当前选中的模型继续被中断或失败的回合。 | | @indexyz/pi-skill | 在提示词任意位置以 Codex 风格 $skill-name 调用技能。 | | @indexyz/pi-model-trace | 通过 ModelTrace 数值指纹(/model-trace)判断实际为 pi 提供服务的模型。 | | @indexyz/pi-autocompact | 按模型设置上下文压缩阈值,例如 /autocompact 300k,加 --save 可持久化为用户级默认值。 | | @indexyz/dsh-autocompact | 为 dsh 提供同样的阈值:/autocompact 命令、设置页区块,以及输入区状态条目。 | | @indexyz/dsh-custom-provider-reasoning-efforts | 为手写的 dsh 服务商路由声明 reasoningEfforts 和 input 模态,这些路由 pi-ai 目录没有描述。 | | @indexyz/dsh-thread-summary | 用可配置的摘要模型,根据首条用户提示词生成简洁的会话标题。 | | @indexyz/dsh-prompt-suggestions | 回复成功后,在空输入框里用暗色幽灵文本提示用户下一条消息。 | 从 npm 安装包: pi install npm:@indexyz/pi-provider-sub2api pi install npm:@indexyz/pi-custom-provider pi install npm:@indexyz/pi-continue pi install npm:@indexyz/pi-skill pi install npm:@indexyz/pi-model-trace pi install npm:@indexyz/pi-autocompact dsh-<topic>/ 包则安装到 dsh 配置档里,它的命令行、配置和行为记录在各自的 README 中: dsh plugin --profile web add @indexyz/dsh-autocompact dsh plugin --profile web add @indexyz/dsh-thread-summary dsh plugin --profile web add @indexyz/dsh-prompt-suggestions 发布 每个包独立管理版本、独立发布。发布一个包时只发布该包,每个已发布的版本都打上 @indexyz/<name>@<version> 标签(例如 @indexyz/pi-skill@0.1.43),并附带一个 GitHub Release,其中包含该版本的更新日志段落。每个包的变更历史都在自己的 CHANGELOG.md 里。发布流程见 docs/releases.md。 每个新的 npm 包都从一个独立的空 0.0.0 工作区开始:所有者先用 bootstrap 标签发布它,并配置好 npm Trusted Publisher,之后才把正式版本推到 GitHub 交给 CI 发布。工作区模板、命令和发布者设置请参考 新包的首次发布。 目录结构 仓库根目录是一个私有 npm 工作区,只放共享工具和文档。每个包都放在自己的根级目录里,各自带有 package.json、tsconfig.json、vitest.config.ts、测试和变更日志:pi 扩展放在 pi-<topic>/,dsh 包放在 dsh-<topic>/。dsh 包从 TypeScript 自行构建产物,因为 Harness 加载的是构建后的文件,而不是源码。详见 docs/architecture.md。 开发 npm install npm run format npm run check pi -e ./pi-provider-sub2api/index.ts npm run check 会跑格式检查、lint、每个包的类型检查、每个声明了构建步骤的包的构建、每个包的测试,以及发布脚本的测试。想从检出目录试用某个 pi 包,用 pi -e ./<name>/index.ts。 dsh 的构建产物(lib/ 和可选的 client.js)被 Git 忽略;npm pack 会自动构建并打包进去。把 dsh 检出目录安装到配置档之前,先运行 npm run build --workspace @indexyz/<name>,再运行 dsh plugin --profile web add ./<name>。 OpenSpec 随仓库工具一起安装。共享改动在仓库根目录运行 npx openspec <command>,某个包的改动则在该包目录下运行。 贡献者和编码智能体先从 AGENTS.md 入手,这个文件会链接到 docs/ 里的其他文档。 License MIT
预览分享卡片长什么样 ↓
分享 · DeepSeek Harness Hub
5aaee9/pi-agent-extensions
一套扩展集合,面向 pi coding agent,也面向 dsh DeepSeek Harness coding…
相关插件 · 其他
模型破甲清洗YuJunZhiXue/dsh-purge
⚔️ DeepSeek Harness 网络安全红队工具dsh-purge
★ 16,148已汉化DeepSeek 客户端
73
女娲蒸馏alchaincyf/nuwa-skill
输入名人名字,提炼其思维模型与决策方式供你调用
★ 37,308已汉化DSH
72
逆向分析桥接Fanqi89/dsh-rea
REA(Reverse Engineer Anything)MCP 桥接,用来把 REA 逆向工具接入 DSH 插件
★ 51已汉化DSH
72
语音女友beiyege-01/dsh-voice-ai-girlfriend
语音 AI 女友Voice AI girlfriend for DeepSeek Harness:Whisper…
★ 888已汉化DSH
71.6
红队越狱测试套件Minglink/dsh-infinite-gen-5
DeepSeek v4.1 flash 逆向工具无限五代 求 Star 收藏 ⭐欢迎大家提交项目的改进
★ 3,759已汉化DSH
71.4
协同办公空间dream-num/univer-workspace
一个让人类与 AI Agent 共同创作、协作和审阅的开源 Office 工作空间。
★ 2,266已汉化DSH
70.7