turtle-ui
官方 UI 插件参考实现:最早的终端 TUI 与其快照测试、profile bundle。
dsh-external
@dsh-external
⬇ 1
★ 9
main
安装
dsh plugin --profile web add github:dsh-external/turtle-ui
需要可复现安装时,可在仓库后追加 #commit 固定提交。
官方 UI 插件参考实现:最早的终端 TUI 与其快照测试、profile bundle。
该插件未提供要点说明,请参考仓库 README。
dsh-plugindeepseek-harnessdsh
- 安装并启动 DeepSeek Harness:
npx @deepseek-ai/dsh web - 在终端执行上面的安装命令(CLI 会解析插件并核验来源)
- 用 dsh plugins list 确认已安装,必要时重启 Harness 生效
插件以当前 dsh 进程的权限运行,安装时可能执行代码。请先通读仓库源码与许可证,确认无破坏性命令与越权访问;本站只做索引,不对第三方插件安全性作担保。
| 代码仓库 | github.com/dsh-external/turtle-ui |
| 许可证 | BSD-3-Clause |
| 主要语言 | main |
| 下载量 | 1 |
| GitHub 星标 | 9 |
| 最近推送 | 2026-08-13 |
| 收录日期 | 2026-09-19 |
| 分类 | 开发与运行时 |
事实信息来自公开插件目录快照(2026-10-01),介绍文案由本站再加工。
以下为插件仓库 README 全文(原始内容,由公开目录抓取整理)。
# Turtle UI
> The very first UI of dsh in a Friday afternoon
This repository contains the former `packages/ui/tui` implementation, its unit and terminal snapshot tests, and a dsh profile bundle patch. The TUI owns terminal presentation and input; DeepSeek Harness owns the agent, model, tools, persistence, and `dsh` launcher.
## Development
Keep this repository and DeepSeek Harness as siblings:
```text
~/git/deepseek-harness
~/git/turtle-ui
```
Install and build the sibling Harness, then Turtle UI:
```sh
(cd ../deepseek-harness && pnpm install && pnpm run build)
pnpm install
pnpm run build
```
The peer APIs come from the sibling Harness checkout. The standalone TypeScript and Vitest configurations intentionally resolve those sources through `../deepseek-harness`; Vitest uses the Harness build for the goal host module instead of mixing that source module with transitive built packages. The patched `@earendil-works/pi-tui` is a devDependency bundled into `lib/` at build time, so consumers install no pi-tui and need no `patchedDependencies`.
## Run
Turtle UI is a dsh profile bundle: its `package.json` declares `"dsh": { "bundle": { "patch": "./cordis.patch.yml" } }`, so installing it into a profile activates the patch layer automatically.
From a local checkout, build and install a copied `file:` package so its Harness peers resolve through the profile's managed fallback. Re-run the add after rebuilding to refresh the copy:
```sh
pnpm run build
dsh plugin --profile tui add file:.
dsh --profile tui
```
From git, with no checkout: the `prepare` script transpiles `lib/` on the consumer's machine during install. pnpm ≥10 blocks that build until you allow it, so the first `add` fails with an `allowBuilds` hint; copy the exact key pnpm prints into the profile's `pnpm-workspace.yaml` and re-run:
```sh
dsh plugin --profile tui add github:deepseek-harness/turtle-ui # fails with the allowBuilds key
# add the printed key under allowBuilds in ~/.dsh/profiles/tui/pnpm-workspace.yaml
dsh plugin --profile tui add github:deepseek-harness/turtle-ui # builds and activates
dsh --profile tui
```
The `prepare` build (`tsdown.prepare.config.ts`) transpiles without type checking — the repo's type graph needs the sibling harness checkout, which consumers don't have. `pnpm run typecheck` in a sibling-checkout environment remains the type gate.
The bundle layer rides over `@deepseek-ai/dsh-base` and binds the TUI and configured agent to one durable session. The ordinary `tui-startup` provider injects the launcher's immutable `ctx.cmdlineArgs`, parses `--resume`, `--session`, and this app's `--help`, then provides `tuiStartup`; session-bound rows inject that service and read it from lazy config, so they cannot activate on the wrong session. A bare `dsh --profile tui` mints a fresh session id on every launch, `--session ` names a fresh session explicitly, and `--resume ` continues a persisted session. In-app `/resume` handoff and exit-message behavior still need the removed TUI-specific launcher and remain unavailable.
## Checks
```sh
pnpm run typecheck
pnpm test
pnpm run build
```
数据来源:公开的 DeepSeek Harness 插件目录与各插件 GitHub 仓库。本站为独立第三方目录,与 DeepSeek、幻方(High-Flyer)及插件作者均无隶属或背书关系。