In the main interface of DeepSeek Harness, the input box and workspace are merged into one. When you need to ask a question about the content you are currently reading, shifting focus not only interrupts the reading flow but also sends the question into the main conversation context, thereby changing the context of all subsequent operations. The Side Chat plugin provides a solution that does not disrupt the main workflow through global shortcuts and a side panel.
What Is This¶
@omdsh-plugins/omdsh-sidechat is an input-type plugin maintained by omdsh-plugins. It allows users to invoke an independent conversation session via a shortcut key from any text input field or page location. This session is anchored to the current viewport and is isolated from the main conversation by default. Unsaved sessions are hidden in the sidebar until the user saves them.
Core Features¶
This plugin provides the following capabilities:
- Global invocation: Supports triggering the side chat with a global shortcut (
⌘Lon Mac). The shortcut listener covers in-app text fields, thedata-omdsh-sidechat-yieldsubtree, and theomdsh-shortcutsplugin. - Draggable panel: The side panel exists as an overlay (
shell.overlay, order 100). Its position is draggable, and the last position is remembered vialocalStorageafter a page refresh. - Side service: Provides the
sidechatservice with theregisterAnchorSource,summonChord, andsetSummonChordinterfaces for registering anchor sources and customizing invocation chord keys. - Context isolation and forking: By default, the side chat is independent. Clicking the “Embed” button in the panel header loads the current main conversation context as a fork into the side chat, supporting both embedding and detachment.
- Display filtering: The panel displays only
textblocks as responses.reasoningblocks andtool-callblocks are filtered out, with no collapsible or hidden reasoning process shown. - Session persistence: Unsaved sessions are hidden from the sidebar and only appear in the sidebar session list after clicking the save button. Session state is stored in
localStorage, and session history is restored after a page refresh. - Theme adaptation: The panel styles are rendered through Harness’s
MarkdownTextandMessageText, automatically adapting to the application theme. - Command integration: Registers the
sidechat.opencommand and integrates with theomdsh-shortcutsplugin.
Typical Usage¶
- Invoke the chat: Press
⌘L(or another custom chord key) anywhere, and the side panel pops up. - Fork the context: Click the button in the panel header (branch icon) to embed the current main conversation context into the side chat. When the button lights up, the current conversation is a branch of the main conversation.
- Save the session: Click the save button in the panel corner. The current conversation becomes visible from its hidden state and appears in the workspace list in the sidebar.
Installation and Dependencies¶
This plugin depends on support from the omdsh-chatmode and omdsh-sidepanel plugins. The installation command is not explicitly provided in the documentation, but the plugin can be obtained via the plugin directory or GitHub repository.
插件目录: https://www.skillhub.cn/plugins/omdsh-plugins/omdsh-sidechat
GitHub 仓库: https://github.com/omdsh-plugins/omdsh-sidechat
Notes¶
- Code mode limitation: In code mode, the context embedding feature is unavailable, and the button is grayed out and disabled.
- Data safety: All session state is stored in the browser’s
localStorage.
Summary¶
The Side Chat plugin solves the problem of frequently switching context while reading or working by detaching the conversation window from the main workspace. It provides a clean reading area that displays only text answers, while retaining the ability to reuse the main conversation context through the fork mechanism. It is suitable for scenarios where the stability of the main workflow needs to be maintained across multiple turns of conversation.