证据快照复核于 2026-08-20GitHub 数据核对日期: 2026-08-21
证据已验证Plugin Bundledsh-cctui Profile

dsh-ccTUI

面向 Deepseek-Harness 的类 Claude 终端界面插件包,提供流式转录、工具轨迹、审批和会话控制。

快速了解

它能做什么

面向 Deepseek-Harness 的类 Claude 终端界面插件包,提供流式转录、工具轨迹、审批和会话控制。

本站提供的是中文说明,不代表该项目或 Plugin 自身提供中文界面;语言支持请以上游文档为准。

使用场景
终端 UIagent-workflow会话管理tool-review
适配技术
deepseek-harnessdshnodejs
兼容性

dsh-cctui Profile
@deepseek-ai/cordis ^4.0.1; dsh-agent, dsh-llm, dsh-session, and dsh-tools ^0.1.0-rc.7; schemastery ^3.18.1

可信度与状态

证据已验证
核对日期 2026/8/20 UTC 12:08

有代码证据的贡献

它为 DSH 增加什么

类 Claude 的终端界面

在终端界面中提供流式转录、工具调用轨迹、审批提示、计划审查、会话切换和模型选择。

机制证据
dsh-cctui 配置档案插件包

将 dsh 插件包与面向配置档案的启动流程和 cordis 补丁清单打包在一起。

机制证据

选择前先看

dsh-ccTUI 被描述为 Deepseek-Harness 的进程内终端界面。README 介绍了流式 Markdown 转录、工具结果视图、审批和提问提示、计划审查、会话切换、斜杠命令及模型选择。

适合谁

希望在 Deepseek-Harness 会话中使用键盘优先终端界面的 DSH 用户。

常见任务

  • 在终端查看工具活动
  • 管理和恢复会话
  • 查看审批和计划提示

权限与数据

该界面连接已配置的 harness 服务,并可能通过 harness 使用本地凭据和文件系统能力。

权限
  • 使用 README 所述的 Deepseek-Harness 服务
  • 当用户授予或配置相应能力时,可能通过 harness 访问本地文件
数据处理
  • README 表示终端界面本身不保存 API 密钥
  • 请求由已配置的 harness 和提供商处理;本流程未测试数据流向
外部服务
  • Deepseek-Harness 服务
  • 已配置的模型/提供商
  • 配置后使用的 DeepSeek API
凭据
  • 按照 README 的说明,可能需要通过 harness 凭据存储或环境变量配置 DeepSeek API 密钥
  • 用户负责文件权限和凭据管理

局限

  • 未执行运行或安装测试
  • 未找到 dsh-cctui@0.3.16 的 npm 渠道
  • 未执行 prepare 生命周期脚本
  • Git Bundle 证据不代表运行时兼容性或性能

DSHub 已核对

  • 已在提交 a19f0fa8c02e59079d4117f09976abbdb7293f09 观察仓库
  • 已保存包清单、插件包补丁和安装脚本
  • README 已固定到该提交并保存
  • Git Bundle 结构和安装脚本检查通过

DSHub 未核对

  • 运行行为、性能和 harness 兼容性
  • prepare 生命周期脚本的行为
  • dsh-cctui@0.3.16 的 npm 注册表可用性和完整性
  • 运行时凭据和外部服务行为

固定版本安装

安装 dsh-ccTUI

./install.sh
目标dsh-cctui ProfilePackageagentforce314/dsh-ccTUI#a19f0fa8c02e59079d4117f09976abbdb7293f09核对日期2026/8/20 UTC 12:08

复制操作固定到已经审查的 package 版本。证据已验证表示结构和分发已经核对,不是安全认证或运行保证。

维护者编写的上游内容原文于 2026/8/20README.md 获取,正文和仓库相对媒体固定到 commit a19f0fa8c02e,内容哈希为 bbdc179b1353。以下是未经 DSHub 翻译的上游原文,语言可能与当前页面不同;第三方托管的 badge 可能独立更新。

dsh-ccTUI

Claude Code style TUI for Deepseek-Harness — 🐳 ported from the clawcodex ui-tui and packaged as a dsh bundle plugin (npm package dsh-cctui).

The full Claude-Code-style look, feel, and interactions — streaming markdown transcript, tool trail with diff cards, approval and question prompts, plan review, session switcher and resume, slash commands, model picker, context bar — running in-process against harness services (ctx.agents, session/event, the approval waterfall, ctx.userQuestions, ctx.commands).

 ██████╗ ███████╗██╗  ██╗         ██████╗ ██████╗████████╗██╗   ██╗██╗
 ██╔══██╗██╔════╝██║  ██║        ██╔════╝██╔════╝╚══██╔══╝██║   ██║██║
 ██║  ██║███████╗███████║ █████╗ ██║     ██║        ██║   ██║   ██║██║
 ██║  ██║╚════██║██╔══██║ ╚════╝ ██║     ██║        ██║   ██║   ██║██║
 ██████╔╝███████║██║  ██║        ╚██████╗╚██████╗   ██║   ╚██████╔╝██║
 ╚═════╝ ╚══════╝╚═╝  ╚═╝         ╚═════╝ ╚═════╝   ╚═╝    ╚═════╝ ╚═╝
 🐳 Claude Code style TUI for Deepseek-Harness

 ╭─── dsh-ccTUI v0.3.0 ─────────────────────────────────────────────────────────────────────────╮
 │                                                                                              │
 │           Welcome back, you                 │ ▾ Available Tools                              │
 │                                             │ harness: bash, create_goal, edit, …+22         │
 │                    : ' :                    │                                                │
 │                 ___'_______                 │ ▸ Available Skills (0)                         │
 │               /'  o        \--.             │                                                │
 │              |              ___\            │ ────────────────────────────────────────────── │
 │               \____________/  \/            │ 25 tools · 0 skills · /help for commands       │
 │                  \__/  \__/                 │                                                │
 │                                             │                                                │
 │                ────────────                 │                                                │
 │           Model deepseek-v4-flash           │                                                │
 │   Path ~/workspace/dsh-ccTUI                │                                                │
 │    Perms Ask for approval · /permissions    │                                                │
 │ Session cctui-56b37bee-41fd-4feb-b270-5988… │                                                │
 │                                                                                              │
 ╰──────────────────────────────────────────────────────────────────────────────────────────────╯

Install

Requires Node ≥ 22.19, npm, pnpm, and the dsh CLI (npm install -g @deepseek-ai/dsh).

git clone https://github.com/agentforce314/dsh-ccTUI.git
cd dsh-ccTUI
./install.sh           # builds, then: dsh plugin --profile dsh-cctui add "$PWD"
dsh --profile dsh-cctui # launch (or ./bin/dsh-cctui.js)

Model/provider configuration comes from your dsh profile (agent-default-model settings or an - id: cctui config override in the profile's cordis.patch.yml: provider, model, cwd, sessionId).

API key

The TUI stores no key; the harness resolves one per request. Write it to the managed store at $DSH_HOME/.credentials.yaml (default ~/.dsh/.credentials.yaml) — a YAML mapping of credential reference to value and nothing else:

DEEPSEEK_API_KEY: sk-…

chmod 600 that file and chmod 700 ~/.dsh: dsh-credentials-local refuses to read a document carrying any group or other permission bit, and fails at boot naming the repair. The document is watched, so a key stored while the TUI is running takes effect on the next request — first run is "browse models, store the key, prompt again", no restart in between. Until one resolves, the route stays registered and /model stays browsable; it is the request that fails, with MISSING_CREDENTIAL naming every entry point it looked at.

The launching environment beats the store (DEEPSEEK_API_KEY=… dsh --profile dsh-cctui) and is deliberately read-only from inside; the store in turn beats <cwd>/.env and ~/.dsh/.env. Keep the key itself out of cordis.patch.yml — adapter config carries only apiKeyEnv, the reference to resolve. One key covers both the conversation and the web_search tool.

Mode 0600 stops other OS users, not the model: the harness never hands it the document's path and never loads the value into the environment, but bash and the filesystem tools run as you and the shipped policy confines writes rather than reads.

Highlights

  • Conversation loop: streamed deltas render live; reasoning behind Ctrl+O/Ctrl+R density toggles; busy verbs and spinners; Esc interrupts (Ctrl+C never kills the app).
  • Tools: Claude-style ⏺ Tool(args) / ⎿ result trail, each result summarised the way the original does it — Read 3 lines, Found 37 files, Received 1.2KB (200 OK), Did 1 search in 2s — with a failed call carrying the tool's own message and a running one its own clock; write/edit diffs render as structured diff cards; sandbox-escalation approvals pop the approval box (1 approve / 2+Enter deny); todo lists pin under the busy line.
  • Subagents: a delegation reads ⏺ Subagent(Review the diff) / ⎿ Done (2 tool uses · 1.2k tokens · 11s), and its children stream into /agents — goal, live tool calls, tokens, spawn tree.
  • Sessions: /sessions (Ctrl+X) lists live and persisted sessions; /resume <id> replays a persisted transcript, tool results and all; /new, /title, /rename.
  • Commands: every harness ctx.commands entry (e.g. /plan, /goal) appears in the completion menu and dispatches through the harness; /model opens the picker backed by the llm catalog; /effort, /context, /usage, /help, /status.
  • Modes: Shift+Tab cycles default → plan → bypassPermissions (mapped onto the harness plan-mode controller and approval policy).

Configuration

Environment knobs use the DSH_CCTUI_ prefix — e.g. DSH_CCTUI_INLINE=0 (alternate screen instead of inline scrollback), DSH_CCTUI_THEME=light|dark, DSH_CCTUI_HOME (data dir, default ~/.dsh-cctui), DSH_CCTUI_FPS=1. CLAUDE_CODE_SCROLL_SPEED is still honored as a migration fallback for people coming from Claude Code.

Development

npm install
npm run typecheck && npm test    # 149 files / ~1900 tests
npm run e2e                      # PTY e2e against a real dsh boot + scripted LLM
npm run e2e:install              # the real `dsh plugin add` install path

Tool rows are the fiddliest surface to eyeball, so they have their own harness: python3 scripts/tool-gallery.py [tool…] [--expand] drives a real dsh boot through one harness tool per scenario (via the scripted test/e2e/probe-llm.mjs) and prints the trail it rendered — the thing to diff against the same call made to Claude Code.

Versioning

Each shipped change increments the patch digit by one; it runs to 99 before rolling over into the minor digit:

0.2.0 → 0.2.1 → … → 0.2.13 → … → 0.2.99 → 0.3.0 → 0.3.1 → …

Write patch numbers without leading zeros (0.3.1, not 0.3.01 — the latter is not valid semver and npm rejects it). Bump package.json in the change's own commit, then tag v<version> on main after it merges.

Architecture and porting details: docs/ARCHITECTURE.md, docs/PLAN.md, docs/PORTING-NOTES.md. The adapter boundary (src/harness/ is the only place that may import @deepseek-ai/*) is CI-gated.

Provenance & license

MIT. Substantial portions are ported from the MIT-licensed clawcodex ui-tui (including its forked Ink renderer) with integration patterns from the MIT-licensed dsh-TUI project — see NOTICE.md.

有意识地管理

安装与管理

前置条件与目标 Profile

目标 dsh-cctui Profile

交付方式 Git Bundle — agentforce314/dsh-ccTUI#a19f0fa8c02e59079d4117f09976abbdb7293f09

验证、更新与移除

显示生命周期命令
验证
dsh plugin --profile dsh-cctui list

兼容性与访问范围

Node.js >=22.19 and listed Deepseek-Harness peers required; runtime untested. @deepseek-ai/cordis ^4.0.1; dsh-agent, dsh-llm, dsh-session, and dsh-tools ^0.1.0-rc.7; schemastery ^3.18.1

检查兼容性证据

风险事实

lifecycle-script

The manifest declares a prepare lifecycle script; this pipeline did not execute it.

证据
凭据

The README describes DeepSeek API key configuration and filesystem credential permissions; users manage credentials themselves.

证据
external-service

The TUI depends on Deepseek-Harness services and a configured model/provider.

证据
证据与编辑审查Manifest、Bundle patch、分发与新鲜度

不可变证据

审查状态与源码活动

AI 已审查

Content uses only the supplied pinned repository evidence. The npm and lifecycle soft checks are resolved by the fixed Git Bundle alternative; final publication still depends on the shared gate.

AI 审查于 2026/8/20 UTC 12:10GitHub 事实核对日期: 2026/8/20 UTC 12:10

自当前证据基线以来,没有记录到重要源码变化。

下一步

按 Plugin 安装流程操作

订阅重要变化: dsh-ccTUI