Introduction¶
The web interface of DeepSeek Harness (DSH) is the baseline, but when developing agents, you typically need tighter interaction with the file system and terminal. The default web interface feels limited in these scenarios.
The dsh-flykit plugin extends dsh web, transforming it from a simple chat interface into a full-featured agent cockpit. It introduces a file explorer, real coding-agent terminals, and a searchable model selector, allowing developers to manage code and conversation context directly in the browser.
What This Is¶
dsh-flykit is a plugin for DeepSeek Harness, maintained by flykit-cc and released under the MIT License.
Its core purpose is to upgrade DSH’s web GUI into a development-environment-integrated console. It registers routes inside the DSH process through the plugin system and injects React components on the browser side, enabling file editing, terminal interaction, model management, and integration with specific applications (such as WhatsApp).
Core Features¶
File Explorer
The plugin provides a file tree view, supports retrieving the file list via git ls-files, or performs plain directory traversal. It integrates the CodeMirror editor and supports saving files back to disk. It has real-time watching capability (fs.watch), automatically refreshing the tree and open file contents when files change on disk. It supports Markdown and HTML/SVG previews.
Real Coding-Agent Terminals
Run real PTY terminals within the session workspace, rendered in an xterm view. Supports Claude Code, Pi, Codex, or a plain shell. Includes sound alerts (a notification sound when the terminal becomes quiet) and individual mute controls. A subscription usage bar appears above Claude Code terminals.
View Modes
- Agent Stage view: The focused terminal occupies the main panel area, while other terminals are displayed as thumbnails below.
- Split mode: The terminal and file explorer are displayed side by side; when maximized, they cover the entire window.
Application Integration
Supports running WhatsApp Web in a panel. It runs web.whatsapp.com through a Headless Chrome instance on the host machine (path apps/whatsapp/), using the Chrome DevTools Protocol (CDP) for screen delivery and interaction forwarding.
Searchable Model Selector
Replaces the original shell’s model selector. Supports search, provider pills, favorites, recent usage, and reasoning badges. Provides a button to refresh the OpenRouter catalog.
Status Bar
Displays status (idle/thinking/running), turn timers, Git branch information, and un-staged file counts below the Composer.
Agent Tools
Provides seven dedicated tools for DSH agents (available when dsh-tools is present) to control terminals:
- flykit_agent_start: Start a terminal
- flykit_agent_send: Send text input to a terminal
- flykit_agent_read: Read terminal contents
- flykit_agent_wait: Wait for the terminal to quiet down and return output
- flykit_agent_list: List session terminals
- flykit_agent_stop: Stop and remove a terminal
- flykit_agent_run: Run a one-off silent query in no-terminal mode
Installation and Enabling¶
Use the official installation command to add the plugin:
dsh plugin --profile web add github:flykit-cc/dsh-flykit
After installation, verify that the plugin is active:
dsh --profile web --dump-config | grep flykit
Start the web GUI:
dsh web
To remove the plugin, run:
dsh plugin --profile web remove dsh-flykit
Typical Usage¶
First-time WhatsApp Setup
In the terminal, go to the WhatsApp application directory and run the login script:
cd apps/whatsapp && node wa.mjs login
This prints a QR code in the terminal and also displays it in the browser tab.
Using Agent Tools
In DSH agent configurations, you can invoke the tools above to drive terminals. For example, use flykit_agent_start to start a Claude Code session, flykit_agent_send to send instructions, and flykit_agent_read to retrieve output.
Use Cases and Cautions¶
System Requirements
- Node.js version must be ≥ 22.
- DSH version must be 0.1.2-rc.1.
- Only macOS or Linux is supported (Windows is not supported because of the node-pty dependency).
- The system must have git installed (for branch display and file list retrieval) and the claude, pi, or codex binaries available on PATH.
Security Notes
- The routes registered by the plugin have no authentication mechanism.
- The DSH web server binds only to loopback (127.0.0.1). Never expose the dsh web port to the public internet, otherwise anyone can access these endpoints and write terminal input.
- The catalog sync feature writes OpenRouter model lists directly into DSH settings (llm-pi-ai.providers.openrouter.models), overwriting the existing list with no undo. Make sure to back up your configuration yourself.
Summary¶
dsh-flykit greatly enhances the DSH web interface through a plugin-based approach, giving it capabilities for file editing, multi-terminal management, and model scheduling. It is suitable for scenarios requiring deep agent development and debugging in a browser environment. For more information, see the GitHub repository.