New:Socket for Asana Is Now Available.Learn more
Get Started

dsh-quotebar

Package Overview
Dependencies
Maintainers
1
Versions
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

dsh-quotebar

Codex-style sidebar chat for DeepSeek Harness: select any text in a conversation and ask about it in a persistent side panel, or add it to the chat as a quoted annotation

latest
Source
npmnpm
Version
0.1.0
Version published
Maintainers
1
Created
Source

dsh-quotebar

Codex-style sidebar chat for DeepSeek Harness: select any text in a conversation and ask about it in a side panel, or add it to the chat as a quoted annotation — the ChatGPT/Codex selection workflow, as a native DSH plugin.

npm version License GitHub stars dsh-plugin

┌─────────────────────────────────────────────────────────────┐
│  conversation view                                          │
│  …some selected text… ▔▔▔▔▔▔▔                              │
│        ┌────────────────────────────────────────┐           │
│        │ Ask in side chat │ Add to chat         │  ← popover │
│        └────────────────────────────────────────┘           │
│  ┌─────────────────────────┐  ┌───────────────────────────┐ │
│  │ [1 annotation] ×         │  │ 💬 Side chat   (docked)    │ │
│  │ composer                 │  │ ┌───────────────────────┐ │ │
│  └─────────────────────────┘  │ │ Quoted text           │ │ │
│                               │ └───────────────────────┘ │ │
│                               │ user: explain this…        │ │
│                               │ model: … (streaming)       │ │
│                               └───────────────────────────┘ │
└─────────────────────────────────────────────────────────────┘

Features

  • Selection popover — select any text and a capsule appears with two plain-text actions (Ask in side chat / Add to chat), white labels, hairline border, vertical divider. Hides on scroll/click-away/Escape.
  • Ask in side chat — a persistent, Canvas-style right panel (slide-in animation, draggable divider) that stays docked until you close it (✕/Escape). The first send forks a child session of the current conversation (nested in the sidebar, inheriting its context) and sends the quoted text as context; asking again continues the same conversation, and picking new text embeds the new quote into the ongoing chat. The panel streams the reply live — the main conversation is never touched.
  • Temporary-chat lifecycle — closing the panel cancels any running turn and archives the session (temporarySessions: true by default), so nothing lingers in your session list.
  • Add to chat — adds the selection to the current conversation as a quoted annotation: a 1 annotation capsule at the composer's top-left with an ✕ to remove it. The full text never renders in the textbox (the draft carries only a placeholder chip); hover the capsule to preview, and the model receives the complete quote when you send.
  • Pure additive — registers only into shell.overlay and conversation.input.dock; nothing is replaced, and disabling the row removes everything.
  • Zero runtime dependencies, no build step — plain ESM JavaScript committed to the npm package.

Install

Requires the dsh CLI. After installation, restart the desktop app (or refresh the page).

# npm
dsh plugin --profile web add dsh-quotebar

# GitHub (no npm needed)
dsh plugin --profile web add github:Alexis-fish/dsh-quotebar

# local checkout
dsh plugin --profile web add file:/path/to/dsh-quotebar

Usage

  • Open any conversation and select a passage of text.
  • Use the floating capsule:
    • Ask in side chat — ask in the panel; Enter sends (Shift+Enter for a new line). starts a new chat with the current quote; × (or Escape) closes the panel.
    • Add to chat — a 1 annotation appears at the composer's top-left; type your question and send. Hover the capsule for the full text; ✕ removes the quote.
  • That's it.

Configuration

The row id is quotebar. Defaults (override in your profile's cordis.patch.yml; config is replaced wholesale):

KeyDefaultDescription
enabledtrueMaster switch — false removes the bar/panel/annotations entirely
maxQuoteChars20000Selections longer than this are truncated before quoting
panelWidth400Side panel width in px (clamped 240–1200)
sessionTitlePrefixSide chatTitle prefix of the panel's dedicated session
temporarySessionstrueArchive (and cancel) the panel's session when the panel closes

Development

node --test        # 38 tests: units, host apply, bundle protocol (vm sandbox + REAL SlotCore),
                   # SSR render, and a jsdom interaction suite covering selection → panel →
                   # session-window open → send → conversation continuation → reference-chip quote

The plugin is a dual-face DSH package: a host row (lib/index.js) plus a browser client bundle (lib/client.js) that rides the official module-loader protocol, the slot system, and the input-machine reference-chip codec — no build step, no runtime dependencies.

FAQ

  • Why does the side chat use its own session? The panel runs a real agent loop (tools, streaming) without polluting the main conversation; the session is archived when the panel closes.
  • Why is the quote not in the textbox? The composer draft carries only a placeholder; the input machine serializes the full quote into the message at submit time through the plugin's reference codec — the model sees the text, the UI stays clean.
  • Does it change default behavior? No. Without a selection, nothing renders.

License

MIT © 2026 Alexis-fish

中文说明

dsh-quotebar 为 DeepSeek Harness 带来 Codex 风格的侧边栏对话:在对话中选中一段文本,即可在右侧面板中提问(独立会话、不打扰主对话),或把它作为引用注记加入当前对话(ChatGPT 式 1 annotation)。

功能

  • 选中浮条:胶囊样式,纯白文字 + 竖线分隔 + 浅灰描边,两个纯文字按钮:Ask in side chat / Add to chat
  • Ask in side chat:右侧常驻面板(滑入动画、可拖拽调宽,✕/Escape 手动关闭)。首次发送会从当前对话 fork 一个子会话(侧栏中嵌套展示、继承对话上下文),把选中文本作为引用上下文;继续提问会接着同一个会话聊,换新选中则把新引用嵌入下一条消息;回复实时流式展示。关闭面板即取消进行中的回合并归档该临时会话(默认 temporarySessions: true),会话列表不留痕。
  • Add to chat:输入框左上角出现 1 annotation 胶囊(可 ✕ 移除);全文不出现在文本框里,悬停胶囊可预览;发送时模型会收到完整引用文本。
  • 纯增量:只注册 shell.overlayconversation.input.dock 槽位,禁用即完全移除;零运行时依赖、无构建步骤

安装

dsh plugin --profile web add dsh-quotebar          # npm
dsh plugin --profile web add github:Alexis-fish/dsh-quotebar   # GitHub
dsh plugin --profile web add file:/path/to/dsh-quotebar        # 本地

配置(行 id quotebar

默认说明
enabledtrue总开关
maxQuoteChars20000引用文本截断上限
panelWidth400侧栏面板宽度(240–1200)
sessionTitlePrefixSide chat面板会话标题前缀
temporarySessionstrue关闭面板时归档并取消该会话

License

MIT © 2026 Alexis-fish

Keywords

dsh

FAQs

Package last updated on 16 Aug 2026

Related posts