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

多智能体终端面板 asun-labs/dsh-plugin-agent-switch

DeepSeek Harnessv0.1.0
asun-labs18 天前有提交已提供中文文档扫描:含敏感能力

DeepSeek Harness 插件,提供可交互的智能体切换终端,支持标签页和网格布局。

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add @asun-labs/dsh-plugin-agent-deck
npm 源 · @asun-labs/dsh-plugin-agent-deck 的发布者账号已校验与本仓库一致

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:仅索引
是什么
dsh 原生插件 · skill
装得上吗
静态安装检查通过
未做真实安装
L4 · 真实安装等级说明 →
安全吗
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
还在维护吗
活跃:最近一次提交在 18 天前
档位由哪些信号合成

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安装兼容性检查✓ 自动检查通过
展开查看检查明细 ↓

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

✓npm 包@asun-labs/dsh-plugin-agent-deck @ 0.1.0
✓Node 引擎要求 ^22.19.0 || >=24.0.0 · 基线 Node 22.19 满足
✓dsh CLI 依赖未声明 dsh 版本约束
✓入口文件main/exports/bin 已声明

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

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

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

可执行外部命令读写/删除本地文件发起外部网络请求
查看扫描证据(共 31 处,展示前 25 条)
  • 执行外部命令来自配置/变量
    lib/index.js:34
    return spawnSync(process.platform === "win32" ? "where.exe" : "which", [command], {
  • 读取本地文件
    lib/index.js:62
    if (!(await stat(path)).isDirectory()) throw new Error("Agent Switch workspace must be a directory");
  • 启用终端会话(PTY)
    lib/index.js:108
    const terminal = pty.spawn(executable, args, {
  • 写入本地文件
    lib/index.js:235
    await mkdir(this.root, { recursive: true });
  • 读取本地文件
    lib/index.js:237
    const persisted = JSON.parse(await readFile(join(this.root, "settings.json"), "utf8"));
  • 读取本地文件
    lib/index.js:255
    return (await readdir(join(base, "codex"), { withFileTypes: true })).filter((entry) => entry.isDirectory() && SAFE_OPTION.test(entry.name)).map((entry
  • 读取本地文件
    lib/index.js:264
    const index = JSON.parse(await readFile(join(base, "codex", ".accounts", "index.json"), "utf8"));
  • 写入本地文件
    lib/index.js:283
    await writeFile(join(this.root, "settings.json"), JSON.stringify(next, null, 2), "utf8");
  • 读取本地文件
    lib/index.js:291
    const stored = JSON.parse(await readFile(join(this.root, groupKey(callId), "group.json"), "utf8"));
  • 读取本地文件
    lib/index.js:313
    const directories = await readdir(this.root, { withFileTypes: true });
  • 写入本地文件
    lib/index.js:370
    await mkdir(join(this.root, groupKey(callId)), { recursive: true });
  • 执行外部命令固定命令
    lib/index.js:392
    spawn("taskkill", [
  • 执行外部命令来自配置/变量
    lib/index.js:425
    processHandle = spawn(executable, commandArgs, {
  • 写入本地文件
    lib/index.js:446
    runtime.writes = runtime.writes.then(() => appendFile(join(this.root, groupKey(runtime.group.callId), `${child.id}.log`), value, "utf8"));
  • 写入本地文件
    lib/index.js:476
    await mkdir(directory, { recursive: true });
  • 写入本地文件
    lib/index.js:477
    await writeFile(join(directory, "group.json"), JSON.stringify(snapshot(group)), "utf8");
  • 发起网络请求
    lib/index.js:625
    async fetch(request) {
  • 发起网络请求
    lib/index.js:647
    async fetch() {
  • 发起网络请求
    lib/index.js:655
    async fetch() {
  • 发起网络请求
    lib/index.js:663
    async fetch(request) {
  • 发起网络请求
    lib/index.js:678
    async fetch(request) {
  • 发起网络请求
    lib/index.js:691
    async fetch(request) {
  • 发起网络请求
    lib/client.js:13082
    const response = await fetch(url(path), { credentials: "same-origin" });
  • 发起网络请求
    lib/client.js:13087
    const response = await fetch(url(path), {
  • 发起网络请求
    lib/client.js:13533
    const response = await fetch(endpoint(path), {
扫描于 2026/10/31(1 天前) · 范围 入口闭包 + 全包扫描 · 来源 npm 发布包

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

依赖的 DSH / Cordis 模块
@deepseek-ai/cordis@deepseek-ai/dsh-client-connection@deepseek-ai/dsh-client-ui-layout@deepseek-ai/dsh-client-ui-renderer@deepseek-ai/dsh-client-ui-settings@deepseek-ai/dsh-client-ui-tool@deepseek-ai/dsh-client-ui-sidebar-right@deepseek-ai/dsh-tools@deepseek-ai/schemastery
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 智能体切换终端
  • 标签页布局
  • 网格布局
v0.2.02026-10-08
Agent Deck 0.2.0 在 0.1.0 手动终端抽屉的基础上新增 Codex 委派。 · 亮点 · agent_deck_delegate 工具——面向模型的工具,通过 agent-switch 并行启动 1–9 个独立 Codex 命令行任务,在 DSH 会话中渲染实时任务卡片,并在原生右侧边栏打开它们的终端输出。 · 持久化任务历史——运行组以 DSH 工具调用 ID 为键,写入 $DSH_HOME/agent-deck/ 下,因此 Host 重启后可回放已完成的输出。运行中的 PTY 无法恢复。 · 设置区——Codex 账户配置档、已保存的账户 ID、默认模型,以及历史显示窗口(historyDays,1–365)。 · 原生右侧边栏标签页——委派输出,支持回放已保存的历史。 · 配置 config: workspace: '' # 留空则使用 DSH Host 工作目录 maxSessions: 9 # 1-32 defaultModel: '' # 留空则使用 Codex 命令行默认值 codexProfile: '' # 留空则使用当前 Codex 账户 codexAccountId: '' # 选定配置档时保存的 agent-switch 账户 ID historyDays: 30 # 1-365 0.1.0 的手动多命令行抽屉和 src/sessions.ts 中的 PTY 仍然可用。 · 兼容性 · DSH 客户端插槽:0.1.5-rc.2 或 0.1.7-alpha.2;@deepseek-ai/cordis 对等依赖放宽到 ^4.0.2。 · 客户端现在注入 dsh-client-ui-settings、dsh-client-ui-tool 和 dsh-client-ui-sidebar-right。 · Node.js ^22.19.0 || >=24.0.0。交互式终端使用 node-pty,必须允许其安装脚本运行。 · 安装 dsh plugin --profile agent-deck add @asun-labs/dsh-plugin-agent-deck 已发布到 npm:@asun-labs/dsh-plugin-agent-deck@0.2.0。 🤖 由 Claude Code 生成
数据来自仓库的 GitHub Release,可能与插件实际版本不一致。

README

由 DeepSeek 最新模型翻译生成
面向 DeepSeek Harness 的 Agent Switch 把 Agent Switch 插件安装为 @asun-labs/dsh-plugin-agent-switch。老用户可参考升级指南;首次启动时会自动导入已保存的设置和终端输出。 @asun-labs/dsh-plugin-agent-switch 把 Codex 子任务接入 DeepSeek Harness 会话。它提供一个面向模型的工具,通过 agent-switch 启动并行的 Codex CLI 进程,在会话里渲染实时任务卡片,并在原生右侧边栏打开这些进程的终端输出。手动多 CLI 运行时面板同样以原生右侧边栏标签页的形式提供。
展开完整文档(README 剩余 1 节)
面向 DeepSeek Harness 的 Agent Switch

把 Agent Switch 插件安装为 @asun-labs/dsh-plugin-agent-switch。老用户可参考升级指南;首次启动时会自动导入已保存的设置和终端输出。

@asun-labs/dsh-plugin-agent-switch 把 Codex 子任务接入 DeepSeek Harness 会话。它提供一个面向模型的工具,通过 agent-switch 启动并行的 Codex CLI 进程,在会话里渲染实时任务卡片,并在原生右侧边栏打开这些进程的终端输出。手动多 CLI 运行时面板同样以原生右侧边栏标签页的形式提供。

功能

- 为 Claude Code、Codex、CodeWhale、DeepSeek 兼容别名、Kimi 和 OpenCode 提供交互式终端
- 支持标签页和网格布局,各自拥有独立的终端会话
- 为 agent_switch_delegate 提供自定义会话卡片,每个 Codex 任务对应一张子卡片
- 原生 DSH 右侧边栏标签页,显示实时输出,并可为已完成任务回放已保存的输出
- Agent Switch 设置区,可配置 Codex 账号配置档、默认模型和历史显示窗口
- 运行时可用性与错误消息、尺寸调整处理、退出状态、会话清理
- 经 DSH 认证的本地 API,以及临时断连后的有界输出回放
- 可配置的工作目录和并发会话上限

环境要求

- Node.js ^22.19.0 或 >=24.0.0
- 带 0.1.5 或 0.1.7 客户端插槽和连接 API 的 DeepSeek Harness 构建
- Host PATH 中已安装 agent-switch(agent-switch --help)
- Host PATH 中至少安装一个目标编码 CLI

插件包含 node-pty 原生依赖。必须允许它的安装脚本运行,交互式终端才能工作。本实现基于 Windows 开发和测试;macOS 和 Linux 使用同一套 node-pty API,但仍需平台验证。

安装

如有需要,先初始化 DSH 配置档,然后安装 npm 包:

dsh --profile agent-switch --from-default-profile web --dump-config | Out-Null
dsh plugin --profile agent-switch add @asun-labs/dsh-plugin-agent-switch
dsh --profile agent-switch --no-open

node-pty 需要运行它的原生安装脚本。如果 DSH 提示 pnpm 阻止了 node-pty 构建,请打开 Web 插件页面,检查被点名的脚本,并对该配置档使用 Allow these scripts and retry。授权会记录在该配置档的 allowBuilds 设置中。

打开右侧边栏的 Agent Switch Panel 标签页,选择运行时,然后在面板头部切换 Grid 和 Tabs。切到右侧边栏的其他标签页时,CLI 会话会继续运行;要停止终端,请显式关闭它。
要用 Agent Switch,就对 Seal Harness/DSH 助手说:「Use Agent Switch to delegate these tasks to Codex.」它会调用 agent_switch_delegate,创建会话卡片。点击子卡片,就能在原生右侧边栏里打开对应的终端输出。右侧边栏的引导页还会打开 Agent Switch 的最近任务组,用来回放历史。

从本地检出安装

用 Node 22.19+ 或 24+ 构建这个包:

corepack pnpm install
corepack pnpm run check

如果需要,先初始化一个 DSH 配置档,然后按绝对路径安装这个包:

dsh --profile agent-switch --from-default-profile web --dump-config | Out-Null
dsh plugin --profile agent-switch add <absolute-path-to-dsh-plugin-agent-switch>
dsh --profile agent-switch --dump-config
dsh --profile agent-switch --no-open

配置

config:
workspace: '' # empty uses the DSH Host working directory
maxSessions: 9 # 1–32
defaultModel: '' # empty uses the Codex CLI default
codexProfile: '' # empty uses the current Codex account
codexAccountId: '' # saved agent-switch account id when a profile is selected
historyDays: 30 # show groups from the last 1–365 days

手动终端使用 Host 插件配置的工作目录。委派给 Codex 的任务,如果父 DSH 会话有工作区就用它,没有就回退到那个 Host 目录。浏览器发来的请求不能随便指定工作目录或命令,只接受六个固定的服务商名称。设置页会保存 Codex 配置档、选中的已保存账号 ID,以及新委派任务用的模型。它会列出 Agent Switch 本地索引里的账号标签,但不会读取或显示认证密钥。独立的 Codex 配置档必须先选中一个已保存账号,才能无人值守运行。

架构

src/index.ts 通过 DSH Connection 注册面向模型的工具和需要认证的 Host 路由。src/delegation.ts 用 DSH 工具调用 ID 给每个任务组做键,把元数据和终端输出存到 $DSH_HOME/agent-switch/ 下;任务完成后输出在重启后仍可查看。src/client-extras.tsx 提供设置区、带键的工具卡片和原生右侧边栏标签页。src/client.tsx 提供手动运行时面板,src/sessions.ts 管理它的交互式 PTY。

shell 的输出和捕获的模型对话可能包含敏感内容。agent-switch 命令行把模型捕获内容存进它常规的本地存储;这个插件也会把委派任务的终端输出留在本地,用于回放历史。它不上传日志,也不加遥测。Host 重启会终止正在运行的进程;保存的输出可以查看,但原来的 PTY 进程无法恢复。

来源与许可

这个插件改编了 OpenAgentSeal 的面板行为。见 NOTICE 和 LICENSE。终端样式表来自 xterm.js,采用 MIT License。
预览分享卡片长什么样 ↓asun-labs/dsh-plugin-agent-switch
分享 · DeepSeek Harness Hub
asun-labs/dsh-plugin-agent-switch

DeepSeek Harness 插件,提供可交互的智能体切换终端,支持标签页和网格布局。

回到顶部