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

终端全屏界面 Qyn77/dsh-tui

DeepSeek Harness
Qyn7752 天前有提交已提供中文文档扫描:含敏感能力

在终端里用全屏 REPL 与 Agent 对话干活

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

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

安装命令 · 需先装 dsh CLI 引擎
dsh plugin --profile web add Qyn77/dsh-tui
该包不可直接 npm 安装,改从 GitHub 源安装(明细见下方安装检查)

状态速览

判定依据:实装验证 · 静态安装检查 · 自动扫描 · 仓库维护状态
信任档位:需留意
是什么[目录]—
dsh 原生插件 · ui
暂无时间戳·判据 →
装得上吗[实装验证]!
实装验证未通过(dependency_conflict),装前请到仓库确认最近更新与 issue
L4 · 真实安装等级说明 →
数据截至 2026/10/12·判据 →
安全吗[自动扫描]—
本站尚未对该插件做风险分级
暂未覆盖,不等同于无风险
数据截至 2026/11/04·判据 →
还在维护吗[仓库]—
更新放缓:最近一次提交在 52 天前
暂无时间戳·判据 →
图例:✓ 通过! 需注意— 未判定 / 无数据· 「未判定」= 本站尚无数据,不代表插件有问题
档位由哪些信号合成

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

验证判据与等级说明 →

可信度证据

⚠︎ 实装验证未通过(dependency_conflict · 2026/10/12) ——可能是验证环境差异,装前建议到 GitHub 仓库确认最近更新与 issue。
安全扫描自动 · 静态分析源码
v2.7.0
🔵 扫描:含敏感能力尚无人工评估
展开查看扫描说明与证据 ↓

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

可执行外部命令读写/删除本地文件
查看扫描证据(共 12 处,展示前 12 条)
  • 写入本地文件
    src/index.ts:129
    appendFileSync(RESIZE_LOG, `${new Date().toISOString()} ${message}\n`)
  • 写入本地文件
    src/index.ts:150
    if (resizeDebug) writeFileSync(RESIZE_LOG, `${new Date().toISOString()} start\n`)
  • 读取本地文件
    src/mcp/mcp-patch.ts:93
    text = readFileSync(path, { encoding: 'utf8' })
  • 写入本地文件
    src/mcp/mcp-patch.ts:277
    mkdirSync(join(path, '..'), { recursive: true })
  • 写入本地文件
    src/mcp/mcp-patch.ts:283
    writeFileSync(temp, doc.toString({ singleQuote: true, flowCollectionPadding: false }), { encoding: 'utf8' })
  • 写入本地文件
    src/mcp/mcp-patch.ts:284
    renameSync(temp, path)
  • 读取本地文件
    src/prompt/file-mentions.ts:177
    entries = await readdir(join(root, relative), { withFileTypes: true })
  • 执行外部命令来自配置/变量
    src/shell/shell-runner.ts:87
    const child = spawn(file, [...args, command], {
  • 执行外部命令固定命令
    src/terminal/environment.ts:99
    const output = execFileSync('git', ['status', '--porcelain=v2', '--branch'], {
  • 写入本地文件
    src/terminal/settings.ts:196
    mkdirSync(join(home, SETTINGS_DIR), { recursive: true })
  • 写入本地文件
    src/terminal/settings.ts:197
    writeFileSync(path, next, { encoding: 'utf8' })
  • 读取本地文件
    src/terminal/settings.ts:210
    return readFileSync(path, { encoding: 'utf8' })
扫描于 2026/11/4(0 天前) · 范围 全包扫描(包内未声明入口) · 来源 GitHub 仓库

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

社区实装还没有人打卡 · 装过的第一个就是你
依赖的 DSH / Cordis 模块
@deepseek-ai/dsh-code-runtime-worker-thread@deepseek-ai/schemastery@deepseek-ai/cordis@deepseek-ai/cordis-plugin-loader@deepseek-ai/dsh-agent@deepseek-ai/dsh-agent-default-model@deepseek-ai/dsh-attachment@deepseek-ai/dsh-brand@deepseek-ai/dsh-commands@deepseek-ai/dsh-invariants@deepseek-ai/dsh-llm@deepseek-ai/dsh-scope
给这个插件打分还没有人投票↓
用户评分
还没有人投票,来当第一个

功能亮点

  • 全屏REPL终端界面
  • 终端内与Agent对话

给 DeepSeek Harness 的 Claude Code 风格终端界面。同一个智能体、同一套工具、同一个模型——只是把全屏 Ink REPL 搬进你的终端。

README

由 DeepSeek 最新模型翻译生成
@qiao-qyn/dsh-tui DeepSeek Harness 的 Claude Code 风格终端 UI。一个 Cordis bundle(tui-runner),骑在 dsh-base 之上,把默认的 Web UI 替换成全屏 Ink REPL —— 同一个 Agent、同样的工具、同样的模型,只是搬到了终端里。 ╭──────────────────────────────────────────────────────────────────────────╮ │ │ │ ██ ██ ███ ████ ████ ███ ████ ████ ████ █ █ │ │ ▄▄▄▄▄▄ ▀█▄▄█▀ █ █ █ █ █ █ █ █ █ █ █ │ │ ▄██████████▄▄ ▄▄███▀ █ █ ███ ███ ███ ████ ███ ███ ██ │ │ ████ ████ ███████████ █ █ █ █ █ █ █ █ █ █ │ │ ███████████████████████ ███ ████ ████ █ ████ ████ ████ █ █ │ │ ▀█████████████████████▀ █ █ ██ ███ █ █ ████ ████ ████ │
展开完整文档(README 剩余 1 节)
@qiao-qyn/dsh-tui

DeepSeek Harness 的 Claude Code 风格终端 UI。一个 Cordis bundle(tui-runner),骑在 dsh-base 之上,把默认的 Web UI 替换成全屏 Ink REPL —— 同一个 Agent、同样的工具、同样的模型,只是搬到了终端里。

╭──────────────────────────────────────────────────────────────────────────╮
│ │
│ ██ ██ ███ ████ ████ ███ ████ ████ ████ █ █ │
│ ▄▄▄▄▄▄ ▀█▄▄█▀ █ █ █ █ █ █ █ █ █ █ █ │
│ ▄██████████▄▄ ▄▄███▀ █ █ ███ ███ ███ ████ ███ ███ ██ │
│ ████ ████ ███████████ █ █ █ █ █ █ █ █ █ █ │
│ ███████████████████████ ███ ████ ████ █ ████ ████ ████ █ █ │
│ ▀█████████████████████▀ █ █ ██ ███ █ █ ████ ████ ████ │
│ █████████████████████ █ █ █ █ █ █ ██ █ █ █ █ │
│ ▀███████████████▀ ████ ████ ███ █ ██ ███ ████ ████ │
│ █ █ █ █ █ █ █ █ █ █ █ │
│ 探索未至之境! █ █ █ █ █ █ █ █ ████ ████ ████ │ │ │ │ tui-01e62198 · v0.1.0-rc.8 deepseek-official/deepseek-v4-flash │ │ ~/Desktop/dsh-tui (main*) Tip: /help · /status · Tab completes │ ╰──────────────────────────────────────────────────────────────────────────╯

╭──────────────────────────────────────────────────────────────────────────╮
│ > 问 dsh 任何事… │ ╰──────────────────────────────────────────────────────────────────────────╯

安装

要求:Node ≥ 22.19、一个真 TTY(iTerm / Terminal.app / Windows Terminal + PowerShell 7;老 conhost 的 cmd.exe 不行)、一个 DeepSeek API key。

本包在 npm 上的名字是 @qiao-qyn/dsh-tui(不在 @deepseek-ai scope 下)。它是 dsh 的一个 bundle,所以流程是:先把 launcher 装上,再把 bundle 挂进一个 profile。

1. launcher(每台机器一次)
npm install -g @deepseek-ai/dsh

2. 建一个挂上本 bundle 的 profile
mkdir -p ~/.dsh/profiles/tui && cd ~/.dsh/profiles/tui
npm init -y
@next 把 dsh-base 钉到和本 bundle 同一代的 0.1.0-rc.x; latest 标签目前还指向已弃用的 0.0.1-rc.1。
npm install @deepseek-ai/dsh-base@next @qiao-qyn/dsh-tui
echo '[]' > cordis.yml

3. 注册 bundle。npm install 只填了 node_modules;launcher 读的是 package.json#dsh.profile.bundles,这一步才把它写进去。
dsh plugin --profile tui install

4. 一次性写 key。dsh 每次启动都会读 ~/.dsh/.env,之后不用再 export。
echo 'DEEPSEEK_API_KEY=sk-...' > ~/.dsh/.env
chmod 600 ~/.dsh/.env

5. 启动
dsh --profile tui

Windows(PowerShell 7 + Windows Terminal):

npm install -g @deepseek-ai/dsh
$p = "$env:USERPROFILE\.dsh\profiles\tui"
New-Item -ItemType Directory -Force -Path $p | Out-Null
Set-Location $p
npm init -y
npm install @deepseek-ai/dsh-base@next @qiao-qyn/dsh-tui
Set-Content cordis.yml "[]"
dsh plugin --profile tui install
Set-Content "$env:USERPROFILE\.dsh\.env" "DEEPSEEK_API_KEY=sk-..."
dsh --profile tui

想用 pnpm 也行:同样的步骤换成 pnpm add,另外要跑一次 pnpm approve-builds (勾选 node-pty、koffi、protobufjs、dsh-subprocess-local)—— npm 默认就执行这些 build 脚本。Windows 上如果依赖树触发 ENAMETOOLONG,把 profile 装到离盘符根更近的位置(比如 C:\tui),或者把 HKLM:\SYSTEM\CurrentControlSet\Control\FileSystem 的 LongPathsEnabled 设为 1。

用起来

打一句话,Enter 发送;Esc 取消正在跑的这一轮;/exit 退出。

| /help | 列出所有斜杠命令 |
| /status | 当前模型、session id、生效中的权限预设 |
| /model | 显示当前模型;/model <名字> 切换,/model 打开选择器 |
| /clear | 清空可见对话区(session log 不变) |
| /context / /usage | 上下文窗口,以及本次 session 的 token 开销 |
| /mcp | 已连接的 MCP 服务器;/mcp add、/mcp remove <server> |
| /permission | 选择「沙箱 + 审批」打包预设 |
| /approval | 查看或切换审批策略(ask / never) |
| /skill | 挑选并运行一个可调用的 skill |
| /language、/theme | en / zh;auto / dark / light |
| /copy | 把最新回复放进剪贴板;/copy code 取最新代码块 |
| /verbose | 长输出多看几行(Ctrl-O 是同一个开关) |
| /keybinds | 输入框键位:default 或 vim |
| /provider、/plugins | 已挂载的 LLM 路由;已加载的插件 |
| /sessions、/resume | 列出已存 session;/resume <id> 或 /resume last |
| /history | 显示或隐藏接续 session 带来的已存历史 |
| !、!! | 跑一条系统命令 —— !! 还会把它给模型看 |
| /exit, /quit | 退出 REPL |
| Tab | 补全高亮的 / 命令或 @ 路径 |
| @ | 打开文件选择器 |
| ↑ / ↓、PageUp / PageDown、Ctrl-L | 滚动对话 / 清屏重画 |
| Ctrl-C | 取消这一轮、清空输入、或退出(会先问一次) |

每个命令、按键和功能的完整说明 —— ! 系统命令、MCP 服务器、图片、skill、hook、审批、session 接续、已知限制:docs/USAGE.md。

更多文档

- 项目主页 —— 长什么样、能做什么、三步装好(中英双语)。
- docs/USAGE.md —— 各功能详细说明,以及完整的命令与按键速查表。
- docs/DEVELOP.md —— 改源码:link 模式 profile、编辑 / 重建 / 重启循环、项目结构、发版流程。
- docs/SPEC.md —— 设计契约:视觉规则、路线图、贡献者约定。

License

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

在终端里用全屏 REPL 与 Agent 对话干活

这个插件是你维护的吗?
作者本人可认领并核对本条目;认领通过后,详情页会显示「作者已认领」标记。
认领条目 →
回到顶部