dsh-tui
リリース済みDeepSeek Harness のためのプラグインネイティブなターミナル UI。
dsh-tui はツリー外の Harness バンドルとして配布され、エージェントランタイムと同じプロセスで動作します。`ctx.agents` を通じてエージェントを作成・再開し、Web クライアントのコードに依存せず永続的な session/event ログを描画し、承認・質問・コマンドのためのターミナルアダプターを提供します。0.1.0 が最初の公開リリースです。
概要
これは独立したクライアントではなく Harness のプラグインで、エージェントランタイムと同じプロセスに同居します。同一プロセス構成は意図的な選択です。リモートトランスポートは、最初の実装に混ぜ込むのではなく、後日の別アダプター兼プロダクトモードとして残されています。
0.1.0 は Harness の依存を `0.1.0-rc.6` に厳密に固定しており、Harness のリリース候補間の互換性は主張しません。セッションが機能するには `DEEPSEEK_API_KEY` などのプロバイダー資格情報が必要です。`dsh --profile tui --doctor` は、サービス、モデルセレクター、セッション永続化、ターミナル機能を読み取り専用で確認し、セッションもエージェントも起動しません。
ターミナルの操作性こそがこのプロジェクトの中身です。Unicode のカーソル移動、選択、取り消し/やり直し、上限付き履歴、bracketed paste に対応した複数行コンポーザー。ナビゲーションで切り離すまで出力を追い続け、上限付き検索を備えたトランスクリプト。Ctrl-P では、そのエージェントの Harness コマンドと TUI のナビゲーションを統合したあいまい検索のコマンドパレット。Ctrl-O のセッションセンターは、エージェントがアイドルでコンポーザーが空のときだけ切り替えを許可し、切り替え前に旧接続を完全にフラッシュして破棄します。
できること
- 同一プロセスの Harness プラグイン:`ctx.agents` でエージェントを作成・再開し、Web クライアントのコードなしで永続的な session/event ログを描画。
- ターミナル、diff、検索、読み取り、Web 結果について、ツール自身が持つ表示意図を使用。
- Unicode のカーソル移動、選択、取り消し/やり直し、上限付き履歴、bracketed paste に対応した複数行コンポーザー。
- Ctrl-P のコマンドパレットが Harness コマンドと TUI ナビゲーションを統合するため、キーコードを送れないターミナルでもすべてのパネルに到達できます。
- アクセシビリティを内蔵:`default`/`high-contrast`/`no-color` のテーマ、色ではなく意味的なトーンで名付けたパネル、罫線を使わないスクリーンリーダーモード、モーション低減とキー割り当ての上書きを 1 つの検証済み設定にまとめています。
- 取得したエージェントハンドル、リスナー、プロンプト、ターミナルモードはすべて、明示的に所有される資源として扱われます。
使い始める
動作要件: Node.js ^22.19.0 || >=24.0.0、pnpm 11.7.0、および DEEPSEEK_API_KEY などのプロバイダー資格情報。Harness プラグインとしてのインストール手順はリポジトリの README にあります。
TUI を起動
pnpm dlx --allow-build=node-pty @deepseek-ai/dsh@0.1.0-rc.6 --profile tui読み取り専用の環境チェック
dsh --profile tui --doctor