Introduction¶
When using DeepSeek Harness Web for development or debugging, if you need to maintain a long-running terminal session, directly switching to a native window can interrupt the context, and running a terminal in the browser often involves PTY or native Node.js modules, which can make deployment complex. dsh-tmux-cc provides a persistent, control-mode cockpit that lets you manage sessions without interrupting the tmux process.
Plugin Introduction¶
dsh-tmux-cc is a client-side plugin for DeepSeek Harness Web, maintained by adrianleb. It renders native tmux panes through xterm.js and keeps the dock visible when switching between chats, providing capabilities such as session management, client detachment, and mobile-device adaptation.
Core Capabilities¶
- Cross-chat persistence: The dock belongs to the DSH Web shell, rather than to a specific conversation.
- Native tmux panes: Pane layout, window tabs, focus, zoom, splitting, and resizing stay synchronized with tmux.
- Non-destructive resizing: Uses
ignore-sizein mirror mode and provides a clean 1:1 grid in takeover mode. - Safe input transport: Input is forwarded byte-by-byte via hex-encoded
send-keys -H, including Enter, pasted text, and Unicode characters. - Session and client management: Supports creating, renaming, or attaching sessions, as well as viewing and safely detaching native clients without stopping processes.
- Faithful mobile cockpit: On mobile devices (width < 768px), the dock becomes a full-screen drawer while preserving the real tmux pane grid and native pane zoom, with touch panning support.
- Bilingual UI: The interface language follows DSH’s locale settings.
- No native dependencies: The control channel uses standard stdin/stdout pipes.
Installation and Activation¶
Run the following command in a terminal to install the plugin:
dsh plugin --profile web add github:adrianleb/dsh-tmux-cc
After installation is complete, restart the existing dsh web process and refresh the Web GUI. A tmux button will appear in the lower-right corner of the interface, and the dock can also be opened via the tmux option in Settings.
Basic Usage¶
- Open the tmux dock.
- Select an active tmux session from the dropdown menu.
- Click a pane to focus it and type as usual.
- With a pane focused, use the keyboard shortcuts (see below).
- Drag a pane title onto another pane to swap their positions (desktop or mobile). Drag the divider between panes to resize them.
Notes and Dependencies¶
- System requirements: tmux must be installed on the host where DSH is running (versions 3.4 and 3.7b are supported). Node.js 22 or higher must be installed on the same host.
- Permissions and mode: The plugin runs with the permissions of the current DSH process. It does not run a browser-based terminal and does not depend on PTY or native Node.js plugins; it acts only as another view into tmux.
- Session limitations: The plugin refuses to kill the last pane in a session.
- Build dependencies: To build from source, pnpm must be installed locally (Corepack is recommended).
Summary¶
dsh-tmux-cc addresses the pain points of managing long-running tmux sessions in a browser environment. Through native synchronization and a persistent dock, it provides developers with a stable and secure console.
Links: GitHub repository | Plugin catalog