🎁 福利专区全网大模型免费应用 + 新用户福利 + 注册活动入口,低成本玩转 AI

全局会话搜索 wanetcn/dsh-advancesearch

DeepSeek 客户端
wanetcn33 天前有提交已提供中文文档扫描:含敏感能力兼容 / 相关生态

跨工具检索本机所有编码会话历史

30/100
综合分
0
GitHub 星标
—
npm 周下载
—/5
用户评分

数据截至 2026/9/30 · 周下载取自 npm 全网(含 CI / 镜像),非本站安装数;综合分由星标、活跃度与兼容性检查合成。

相关生态插件(非 dsh 原生,按其对应运行时安装)
git clone https://github.com/wanetcn/dsh-advancesearch.git

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:已验证
是什么
生态应用
桌面端 / Web 外壳,不以 dsh plugin add 安装
装得上吗
本站已真实安装成功
非静态推断
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
更新放缓:最近一次提交在 33 天前
档位由哪些信号合成

本站实装验证(真实安装 L4 覆盖全站;L5 为运行时冒烟或实机截图,覆盖范围小于 L4) · 验证所用 dsh 版本 · 静态安装检查 · 风险分级 · 仓库维护状态。 下方各区块是它的证据明细。

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查需源码安装

仓库 package.json 标记 private,未发布到 npm,需从源码安装

展开查看检查明细 ↓

以下结论由程序自动检查 npm 包、engines 声明与入口文件得出,未做人工实机验证——能装不等于用着没问题。

✗npm 包dsh-advancesearch(未发布到 npm,仅可源码安装)
✓Node 引擎未声明 engines.node
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

源码安装时若 pnpm 拦截 prepare 脚本,按其提示在 pnpm-workspace.yaml 的 allowBuilds 中放行后重跑。

验证方式:npm registry 存在性 + package.json 静态校验 · 最后检查 2026/10/8 09:41:17

安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

静态扫描发现插件具备触达本地系统的能力:执行外部命令、读写/删除本地文件、读取剪贴板或密钥类环境变量(至少其一)。这是能力清单,不是危险判定——具体能力项与证据见下方,安装前请自行判断是否需要。

可执行外部命令读写/删除本地文件写入剪贴板(不计风险)发起外部网络请求
查看扫描证据(共 20 处,展示前 17 条)
  • 执行外部命令固定命令
    index.js:243
    execFile('open', ['-R', resolved], (error) => (error ? reject(error) : resolve()))
  • 执行外部命令固定命令
    index.js:252
    execFile('open', ['-b', bundleId], (error) => (error ? reject(error) : resolve()))
  • 发起网络请求
    client.js:48
    const response = await fetch("/api/dsh-advancesearch/action", {
  • 发起网络请求
    client.js:73
    const response = await fetch(url, { credentials: "same-origin" });
  • 写入剪贴板
    client.js:339
    await navigator.clipboard.writeText(item.id ?? "");
  • 读取本地文件
    mcp/lib/scanners.js:105
    entries = await readdir(dir, { withFileTypes: true })
  • 读取本地文件
    mcp/lib/scanners.js:115
    if ((await stat(full)).size <= MAX_FILE_BYTES) files.push(full)
  • 读取本地文件
    mcp/lib/scanners.js:129
    return { path, time: (await stat(path)).mtimeMs }
  • 读取本地文件
    mcp/lib/scanners.js:145
    const lines = jsonLinesOf(await readFile(path, 'utf8'))
  • 读取本地文件
    mcp/lib/scanners.js:157
    time: (await stat(path)).mtimeMs,
  • 读取本地文件
    mcp/lib/scanners.js:174
    const lines = jsonLinesOf(await readFile(path, 'utf8'))
  • 读取本地文件
    mcp/mcp-agent-session-search.js:40
    const text = readFileSync(path, 'utf8')
  • 读取本地文件
    mcp/mcp-agent-session-search.js:62
    const text = readFileSync(path, 'utf8')
  • 读取本地文件
    mcp/mcp-agent-session-search.js:125
    for (const dir of readdirSync(root)) {
  • 读取本地文件
    mcp/mcp-agent-session-search.js:128
    readFileSync(candidate)
  • 读取本地文件
    mcp/mcp-agent-session-search.js:222
    for (const line of readFileSync(path, 'utf8').split('\n')) {
  • 执行外部命令固定命令
    mcp/mcp-agent-session-search.js:258
    execFile('open', ['-b', bundleId], (error) => (error ? reject(error) : resolve())),
扫描于 2026/11/1(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 GitHub 仓库

静态扫描只反映源码中出现的调用,不构成安全背书;人工评估与自动扫描相互独立、互不覆盖。

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 跨工具检索会话历史
  • 按关键字搜索会话
  • 内置MCP检索

DeepSeek Harness 高级搜索插件:按关键字搜索所有会话 + Claude Code / Codex / ZCode 等 agent 历史记录,工作区搜索按钮、会话跳转,内置 MCP 让 agent 自己检索历史

README

由 DeepSeek 最新模型翻译生成
dsh-advancesearch DeepSeek Harness 插件:按关键字搜索所有会话的名称与会话内容,并在 Web 工作区界面提供搜索按钮。 不只搜 DSH 自己的会话——勾选后可以同时搜索本机 Claude Code、Codex、ZCode、Gemini CLI 等 coding agent 的历史会话(标题 + 内容),还内置 MCP 服务器,让 agent 自己也能检索这些历史记录。 - Host 侧(index.js):通过 DSH 官方 sessionQuery 服务(dsh-session-query-sqlite 全文索引)暴露已认证的搜索路由 GET /api/dsh-advancesearch,与 dsh-host-open-in-app 使用同一 connection.requestRejection 信任围栏。
展开完整文档(README 剩余 1 节)
dsh-advancesearch

DeepSeek Harness 插件:按关键字搜索所有会话的名称与会话内容,并在 Web 工作区界面提供搜索按钮。

不只搜 DSH 自己的会话——勾选后可以同时搜索本机 Claude Code、Codex、ZCode、Gemini CLI 等 coding agent 的历史会话(标题 + 内容),还内置 MCP 服务器,让 agent 自己也能检索这些历史记录。

- Host 侧(index.js):通过 DSH 官方 sessionQuery 服务(dsh-session-query-sqlite 全文索引)暴露已认证的搜索路由 GET /api/dsh-advancesearch,与 dsh-host-open-in-app 使用同一 connection.requestRejection 信任围栏。
- 外部 Agent 会话搜索:勾选 Claude / Codex / ZCode 后,同时扫描本机 ~/.claude/projects、~/.codex/sessions、~/.zcode/cli/db 的会话日志(标题 + 内容),勾选状态持久化保留;
- Client 侧(client.js):以官方 dsh.client 浏览器插件格式(window.__ModuleLoader__)加载,在侧边栏底部(sidebar.footer.action 槽位)注册一个 🔍 按钮,点击弹出全局搜索层(shell.overlay 槽位):输入关键字 → 回车 → 列出所有命中会话(标题 + 最佳片段,关键字高亮)→ 点击某会话展开该会话内的逐条命中。

搜索能力

| 模式 | 数据来源 | 说明 |
| 按会话搜索(默认) | sessionQuery.searchSessions() | 全文检索所有会话的标题与内容,返回每个会话的最佳命中片段 |
| 会话内搜索 | sessionQuery.searchEvents() | 在单个会话内逐条列出命中事件片段(带序号与类型) |

标题取自 readTitleSnapshots()(官方标题折叠结果);搜索覆盖进行中的会话与已持久化会话。

Agent 工具(MCP)

插件内置一个零依赖的 MCP stdio 服务器(mcp/),安装插件后自动注册,模型可直接调用:

| 工具 | 功能 |
| mcp__agent-session-search__search_agent_sessions | 关键字搜索 Claude / Codex / ZCode 会话(标题+内容),返回标题、时间、片段、路径 |
| mcp__agent-session-search__read_agent_session | 读取某个会话的最近消息全文 |
| mcp__agent-session-search__open_agent_app | 唤起对应 agent 桌面应用 |
| mcp__agent-session-search__reveal_agent_session | 在访达中显示会话记录文件 |

MCP 服务器路径通过 !!js 相对插件根动态解析,无需写死路径;command 优先取 DSH_DESKTOP_NODE_EXECUTABLE 环境变量,否则回落到 node。

不装插件、只想在 Claude Desktop 等其他 MCP 客户端里用?见 mcp/README.md 的独立接入配置。

会话内调用示例

装好重启后,直接用自然语言说话,agent 会自己调用工具。几个典型场景:

① 翻历史:「我之前让 codex 配置过某个服务,翻出来看看」

你: 我记得在 codex 里配置过某个服务,帮我找出来看看当时怎么配的

agent: (调用 search_agent_sessions,query="服务配置", agents=["codex"])
agent: (调用 read_agent_session,读取最相关会话的消息原文)
agent: 找到了 9 月 14 日的会话「XX 服务的配置文件调整」,当时的方案是: 入站监听本地端口,证书放到指定目录…
参考当时的配置,这次建议这样写:…

② 跨 agent 找方案:「所有 agent 里谁讨论过这个系统」

你: 搜一下所有 agent 里关于这个项目的讨论,把最相关那个会话的原文读给我

agent: (search_agent_sessions,query="项目部署",agents=["claude","codex","zcode"])
agent: 共 12 条命中: [Codex] 巡检任务执行记录 — 9月28日 [ZCode] 每日报表汇总生成 — 定时任务 [Claude] 代码目录迁移调整最相关的是 Codex 的「查询服务器地址端口」,原文如下:…

③ 变成 agent 的记忆:接续半个月前的任务

你: 上个月我让 zcode 改过某个驱动的下载地址,改成什么了?

agent: (search_agent_sessions → read_agent_session)
agent: 8 月 21 日的会话「更新某驱动的下载地址」里,旧地址已替换为新地址, 并同步更新了部署脚本中的引用,…

④ 操作类:「打开 zcode」/「在访达里显示那条记录」

调用 open_agent_app / reveal_agent_session,直接唤起应用或定位记录文件。

💡 工具名带 mcp__agent-session-search__ 前缀;在轨迹页可以看到每次调用的参数与结果。
搜索语义:字面、大小写不敏感、空白灵活匹配(如 web app 能命中 WebApp 这种连写形式)。

安装

在 DSH profile 目录(如 ~/.dsh/profiles/web/):

pnpm add file:/path/to/dsh-advancesearch
或发布后:
pnpm add github:/dsh-advancesearch

然后在同一目录的 cordis.patch.yml 里加一行启用:

- name: dsh-advancesearch

重启(或开启 HMR 时保存即生效)后,Web 界面侧边栏底部会出现 🔍 搜索会话 按钮;侧边栏收起时只显示图标。
API

GET /api/dsh-advancesearch?q=[&limit=20]
GET /api/dsh-advancesearch?q=&sessionId=[&limit=20]

- limit 1–50,默认 20;
- 需要浏览器会话凭据(与 GUI 同源 cookie),不可信来源按 DSH 信任围栏拒绝;
- 未挂载 session-query 后端的组合会返回 501 SESSION_QUERY_SEARCH_DISABLED。

目录结构

dsh-advancesearch/
package.json name / exports(./client)/ dsh.client.platform = web
index.js Host 侧:webServer 路由 + sessionQuery 搜索 client.js Client 侧:搜索按钮 + 搜索弹层(ModuleLoader bundle) README.md

已知限制

- 搜索走 dsh-session-query-sqlite 的全文索引,openAt: "never" 的部署不可用;
- 弹层样式使用内联样式与主题变量兜底,未接入官方 locale 体系(界面文案为中文);
- 分页游标(nextCursor)暂未在 UI 中暴露,默认每会话/每页 20 条。

License

MIT
预览分享卡片长什么样 ↓wanetcn/dsh-advancesearch
分享 · DeepSeek Harness Hub
wanetcn/dsh-advancesearch

跨工具检索本机所有编码会话历史

回到顶部