Back to marketplace

dsh-tui-pi

UI & Experience

fan56/dsh-tui-pi

pi-style terminal UI for DeepSeek Harness: provides pi-tui look and feel, dsh slash commands, GitHub light/dark themes, and a powerline footer.

  • dsh
  • dsh-plugin
GitHub Stars
5GitHub
Views
0DSH Plugin Hub
Forks
0GitHub
Open issues
2GitHub Issues
Manifest version
2.4.0@aiwayds/dsh-tui-pi
Latest push
Sep 3, 2026GitHub
License
MITTypeScript
Plugin type
HostRuns in the DSH Host

Verification and compatibility

This section shows evidence collected by the catalog. Undeclared information is labeled as unknown.

Runtime verified
01Exact source: npm · @aiwayds/dsh-tui-pi@2.4.002Validated: Sep 3, 202603Verified Harness: 0.1.0-rc.7
Current-version compatibility
Verified on the catalog Harness version
Declared Harness range
Not declared
Declared platforms
Not declared
Profiles
tui
Build approval
No requirement detected
Permissions
Not declared
External services
Not declared
Telemetry
Unknown
No known risk flags found

This is not a security endorsement. Review source, permissions, and configuration before installing.

View evidence and scope

Verification covers only the named source, version, and Harness environment. It does not guarantee future compatibility.

  • @aiwayds/dsh-tui-pi@2.4.0
  • The plugin completed a load check in an isolated environment.

README

View source

English | 简体中文

dsh-tui-pi

pi-style terminal UI for DeepSeek Harness (dsh) — a plugin suite that turns dsh into a pi-like coding-agent experience: pi-tui look & feel, dsh slash commands, GitHub light/dark themes and a powerline footer.

Requires dsh >= 0.1.2-alpha.4 — the plugin tracks the rolling @alpha host line (currently 0.1.2-alpha.5); the 0.1.1-rc stable line is not supported (see ADR 0002). A startup guard logs a one-line warning and exits cleanly when the host is older than the floor (opt out with DSH_TUI_SKIP_HOST_CHECK=1). The support strategy will move to stable-only once dsh ships a stable line past the alpha era.

https://github.com/user-attachments/assets/6a7e00bb-1fd0-4bc5-9070-457f1e9fa54d

A live recording of a session (MP4, 1.5× speed) — todos, running subagents, think/tool panels and the powerline footer in action.

✨ Features

Each item links to its own doc under docs/features/ — one line here, the details (and demo videos) there.

  • Footer — live session overview — provider/model, context pressure and the session cache-hit rate at a glance, always in view.
  • Think & tool panels — reasoning and tool activity stay out of the transcript, so the conversation reads clean.
  • Subagents — every running subagent gets a status line; watch and steer it live.
  • Ask User Question — the model can pause and ask you structured questions, answered without leaving the TUI.
  • Feishu integration — dsh-tui-pi on the desktop and Feishu/Lark on the phone driving (and answering for) the same dsh session.
  • Dynamic context pruning (DCP) — context stays within limits automatically, with zero LLM calls.
  • Persistent context — your ground rules ride along on every request, hot-applied with no restart.
  • Model profiles & favorites — switch a whole model setup per project and keep the picker small.
  • Agent preset switchingTab / /preset between the shipped agent compositions (standard, minimal, …); what a preset really gates, and exactly when a switch takes effect.
  • Sessions & resume — sessions stay tidy automatically and resume in a few keystrokes; a cross-process writer guard keeps the log single-writer.
  • Themes — GitHub light/dark palettes, hot-switchable; auto follows your terminal.
  • Search, selection & imagesCtrl+Shift+F over the whole transcript, drag-select copies to the OS clipboard, attachments from web/Feishu render inline, LaTeX replies draw as Unicode math.
  • Slash commands/model, /resume, /btw, /profile-switch, … plus everything dsh-native.
  • Startup plugin tree — every profile plugin with its installed npm version, printed at launch.

Install and launch

dsh plugin --profile tui add @aiwayds/dsh-tui-pi
dsh --profile tui          # launch (or: dsh-tui-pi)

Legacy session_projcache records (missing identity.isSeeded/identity.inheritedEventCount, written before dsh 0.1.2-alpha.4) are migrated at the profile layer: the bundle patch replaces the stock session-projection-cache row with a wrapper (@aiwayds/dsh-tui-pi/projcache) that backfills the records while its module loads — strictly before the stock plugin could open the domain and crash the boot — so every dsh --profile tui start is covered, launcher or not. Migration is idempotent, backs up every rewritten file next to the original, and never blocks startup. The dsh-tui-pi launcher additionally runs the same migration as a CLI preflight before exec dsh.

Everything that used to need manual patching — the canvas background, the @deepseek-ai module closure, the compaction backend — now happens automatically. Upgrade an existing profile after a release:

node scripts/dev-upgrade.mjs                  # latest
node scripts/dev-upgrade.mjs 1.0.5 --dry-run  # preview the plan first

Companion plugins

Default dependencies — the eight plugins below ship with this package (installed into the profile's node_modules); activation still follows the profile's bundles list — list each one there to activate it.

Recommended install@aiwayds/dsh-topics-memory, OKF topic memory for dsh (zero-LLM hot-path injection + a local git-tracked bundle; formerly dsh-llmwiki-memory):

dsh plugin --profile tui add @aiwayds/dsh-topics-memory

Optional@aiwayds/dsh-feishu — drives the same dsh session from Feishu/Lark on your phone (demo).


Keyboard shortcuts

KeyAction
EnterSend the prompt
EscDouble-press to stop (single press arms; a popup open closes it instead)
Ctrl+CMid-turn: first press cancels, second quits; idle: clears editor / quits. Held-key auto-repeat never quits.
Ctrl+DQuit (only when the editor is empty)
Ctrl+LOpen the model/think picker
Ctrl+GOpen the subagent picker (viewer Enter opens steer)
Ctrl+OPending-message queue (s steer now · d remove)
Ctrl+Shift+FTranscript search (Enter/Ctrl+G next · Shift+Enter/Ctrl+Shift+G previous · Esc close)
TabCycle agent presets
/ Browse submitted-message history

Remap any app key through ~/.dsh/keybindings.json (a partial JSON map, live-applied) or interactively with /hotkeys.


Configuration

Session-store knobs under the dsh-tui settings namespace in ~/.dsh/settings.yaml (each also has an env override, DSH_TUI_RETENTION_* / DSH_TUI_RESUME_*; precedence: settings.yaml > env > default):

dsh-tui:
  retention:        # startup janitor for ~/.dsh/sessions — DELETES old logs. Once per startup.
    maxCount: 100   # <= 0 disables the janitor
    maxAgeDays: 7
    minIdleHours: 24
  resume:           # /resume display filter — only HIDES picker rows, never deletes.
    maxAgeDays: 7
    minBytes: 20480

Other knobs: dsh-tui.panelHeight (think/tool panel height), dsh-tui.iconSet (auto/nerdfont/plain — powerline glyphs adapt to your font; install a Nerd Font with node scripts/install-font.mjs), dsh-tui.footerHints (toggle each footer hint segment, incl. search), DSH_TUI_COPY_ON_SELECT=0 (keep drag-selection visual-only), ~/.dsh/keybindings.json (key remaps).


Development

pnpm check    # tsc --noEmit
pnpm build    # emit lib/
pnpm test     # unit tests, node --test against lib/ (pretest builds; 1,100+ tests across 60+ files — see HANDOFF.md for the current baseline)

pi-tui runs pristine from npm — no patches, no fork. See AGENTS.md for the iron rules and quality gates.


Documentation

  • docs/features/ — one doc per feature, with demo videos.
  • ARCHITECTURE.md — full design: process model, layers, data flow.
  • HANDOFF.md — session history and current state (Chinese).
  • CHANGELOG.md — release history.
  • AGENTS.md — working conventions and quality gates for contributors.
  • docs/ — design notes (steer/follow-up flow, showcase drafts, …).

Credits

The Ask User Question interaction is inspired by juicesharp/rpiv-ask-user-question (adapted to this TUI's docked-panel and dsh userQuestions provider architecture; all code here is original).

Comments

0
Newest first