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

终端交互模式 lcgash/dsh-cli-mode

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

在终端里与智能体对话、切换会话并审批操作

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

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

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

状态速览

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

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

验证判据与等级说明 →
社区实装还没有人打卡 · 装过的第一个就是你
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

读写/删除本地文件发起外部网络请求
查看扫描证据(共 13 处,展示前 12 条)
  • 读取本地文件
    bin/dsh-cli.mjs:53
    try { return JSON.parse(readFileSync(CONFIG_FILE, 'utf8')) } catch (e) { return {} }
  • 写入本地文件
    bin/dsh-cli.mjs:57
    mkdirSync(CONFIG_DIR, { recursive: true })
  • 写入本地文件
    bin/dsh-cli.mjs:58
    writeFileSync(CONFIG_FILE, JSON.stringify(newCfg, null, 2) + '\n')
  • 发起网络请求
    bin/dsh-cli.mjs:132
    const res = await fetch(BASE + '/api/respond', {
  • 读取本地文件
    bin/dsh-cli.mjs:337
    try { st = statSync(abs) } catch (e) { return null }
  • 读取本地文件
    bin/dsh-cli.mjs:341
    try { entries = readdirSync(abs) } catch (e) { return null }
  • 读取本地文件
    bin/dsh-cli.mjs:344
    try { isDir = statSync(path.join(abs, n)).isDirectory() } catch (e) { }
  • 读取本地文件
    bin/dsh-cli.mjs:359
    try { content = readFileSync(abs, 'utf8') } catch (e) { return null }
  • 发起网络请求
    bin/dsh-cli.mjs:384
    const res = await fetch(BASE + path, opts)
  • 发起网络请求
    bin/dsh-cli.mjs:390
    const res = await fetch(BASE + '/api/' + method, {
  • 读取本地文件
    bin/dsh-cli.mjs:424
    const txt = readFileSync(p, 'utf8')
  • 发起网络请求
    bin/dsh-cli.mjs:757
    const res = await fetch(url, { signal: ctrl.signal })
扫描于 2026/11/3(0 天前) · 范围 入口闭包 + 发布文件清单 · 来源 GitHub 仓库

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

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

终端优先的命令行,专为 DeepSeek Harness 打造——和智能体聊天、切换会话/模型/权限、批准操作,codex 风格工作区。

README

由 DeepSeek 最新模型翻译生成
dsh-cli-mode 把 DeepSeek Harness 会话变成终端可交互的 CLI——在 terminal 里直接和智能体对话、开发代码,不用一直盯着网页。逻辑类似 codex:在哪个目录启动 CLI,哪个目录就是工作区。 - 插件(Cordis,Host-only):在 harness 的 web 端口上注册 /dsh-cli/ 路由,桥接会话、事件流、权限与审批。 - 客户端(dsh-cli,纯 Node 零依赖):逐 token 流式输出、markdown 渲染、竖排菜单、会话切换、模式/模型/权限切换、审批 y/n。 特性 | 能力 | 说明 | | 流式输出 + markdown 渲染 | 回答逐 token 流式显示,标题/加粗/代码块/表格实时渲染;思考内容默认折叠(/think 查看) | | codex 式工作区 | 启动目录即会话工作区,workspaceRegistry 绑定 | | 会话管理 | /open /resume /switch /attach /close,/sessions 按工作区过滤 | | 竖排菜单 | 输入 / 弹出(claude 式:↑↓ 选择、打字过滤、备用屏幕渲染、主屏零滚动) |
展开完整文档(README 剩余 1 节)
dsh-cli-mode

把 DeepSeek Harness 会话变成终端可交互的 CLI——在 terminal 里直接和智能体对话、开发代码,不用一直盯着网页。逻辑类似 codex:在哪个目录启动 CLI,哪个目录就是工作区。

- 插件(Cordis,Host-only):在 harness 的 web 端口上注册 /dsh-cli/ 路由,桥接会话、事件流、权限与审批。
- 客户端(dsh-cli,纯 Node 零依赖):逐 token 流式输出、markdown 渲染、竖排菜单、会话切换、模式/模型/权限切换、审批 y/n。

特性

| 能力 | 说明 |
| 流式输出 + markdown 渲染 | 回答逐 token 流式显示,标题/加粗/代码块/表格实时渲染;思考内容默认折叠(/think 查看) |
| codex 式工作区 | 启动目录即会话工作区,workspaceRegistry 绑定 |
| 会话管理 | /open /resume /switch /attach /close,/sessions 按工作区过滤 |
| 竖排菜单 | 输入 / 弹出(claude 式:↑↓ 选择、打字过滤、备用屏幕渲染、主屏零滚动) |
| 模式/模型/权限 | /mode(agent preset)、/model、/permission(read-only / workspace-write / danger-full-access) |
| 授权桥接 | 智能体需要审批时终端弹出 🔐,y/n 答复(走 harness mux 通道,与网页同源) |
| 工具折叠 | 工具调用默认折叠为一行汇总(/tools on 看详情),任务完成显示 ✓ 完成 标记 |
| 自举安装 | 首次运行自动把插件装进 harness(经 session.prompt + cordis_define/cordis_run) |
| 底部状态行 | 提示符上方常驻显示当前模型与 reasoning 级别(灰色小字) |

安装

方式 A:作为 composition 插件挂载(推荐,重启自动加载)

在 harness 的 cordis.yml(或 agent preset)里加一行:

- id: cli-mode
name: 'dsh-cli-mode'

或通过 dsh CLI 安装依赖:

dsh plugin --profile web add dsh-cli-mode

方式 B:客户端自举(无需改配置)

dsh-cli 首次连接时若发现插件未激活,会自动安装并启用(需要一个 cordis preset 会话,没有则自动创建一个)。

使用

npm install -g dsh-cli-mode # 安装客户端(或 npx / 本地运行 bin/dsh-cli.mjs)
dsh-cli # 首次会询问 web 地址,记录到 ~/.dsh/cli.config dsh-cli --resume [id] # 恢复历史会话 dsh-cli --attach <id> # 接到某个 live 会话

内置命令

/help /sessions /switch /attach /open /resume /close
/mode /model /permission /tools /think /transcript /cancel /clear /exit

输入 / 弹出命令菜单;行尾 \ 续行多行输入。

引用文件/目录:输入 @ 弹出文件选择器(codex 式,前缀/模糊搜索,↑↓ 选择),选中自动插入 @路径;也可以手写 @路径。内容会自动内联给智能体;相对路径基于 CLI 启动目录(即工作区);超过 64KB 或二进制文件不内联。

授权交互

🔐 授权请求 (bash) escalate sandbox to danger-full-access: 目标文件 ... 位于会话工作区之外...
y = 允许一次 | n = 拒绝

配置

- ~/.dsh/cli.config:{ "url": "http://127.0.0.1:3080" }(web 地址,--url 覆盖并写入)
- API key 等基础配置在网页页面完成,CLI 不做密钥管理。

架构

┌─ dsh-cli(终端)──────────────────────────────┐ │ bin/dsh-cli.mjs │ │ · /dsh-cli/ HTTP 路由调用(会话/权限) │ │ · /dsh-cli/stream SSE(对话流式输出) │ │ · /api/events.mux WebSocket(审批请求) │ │ · /api/respond(审批答复) │ └──────────────┬───────────────────────────────┘ │ http://127.0.0.1:3080 ┌──────────────▼───────────────────────────────┐ │ harness(web 进程) │ │ lib/index.js —— cli-mode 插件(Host) │ │ · /dsh-cli/* 路由(webServer) │ │ · session/event → SSE 流(assistant/chunk 等)│ │ · permissionPresets 切换权限 │ │ apiProxy —— 会话/模型/预设 RPC、审批 pending │ └──────────────────────────────────────────────┘

- 会话流:输入经 agent.followup() 注入(与网页同通道),输出由 session/event 渲染为 SSE。
- 审批:网页 answerer 拥有 approval/request 瀑布;客户端订阅 mux 流拿到 approval/requested(含 rpcId),经 /api/respond 答复。
- 自举:客户端把 lib/plugin-source.txt(插件原始体)内嵌进安装消息,让 cordis preset 会话的智能体执行 cordis_define + cordis_run。

开发

git clone <gitee 仓库地址>
cd dsh-cli-mode
npm run check # 语法检查
npm test # 冒烟测试

保持 lib/index.js 与 lib/plugin-source.txt 同步:自举安装用的是 plugin-source.txt(原始函数体文本),挂载安装用的是 lib/index.js。修改插件逻辑后执行:

npm run sync-source # 从 lib/index.js 重新生成 plugin-source.txt

发布

项目托管于 Gitee。发布到 npm(发布包内容由 package.json 的 files 决定):

npm version patch # 或 minor / major
npm publish # 需 npm 账号与包名

CI/自动发布可在 Gitee 上自行配置(如 Gitee Go),本仓库不携带平台特定的工作流配置。

License

MIT
预览分享卡片长什么样 ↓lcgash/dsh-cli-mode
分享 · DeepSeek Harness Hub
lcgash/dsh-cli-mode

在终端里与智能体对话、切换会话并审批操作

这是你的仓库?认领条目

回到顶部