dsh-web-search-ddg
aooyoo
Zero-token DuckDuckGo search provider for the DeepSeek Harness (DSH) web seam — local headless browser, no API key, no m…
PROJECT TOPICS
PROJECT README
Session hotkeys for DeepSeek Harness Web · 给 DeepSeek Harness Web 的会话快捷键插件
Manage sessions from the keyboard the way you switch browser tabs — 像切换浏览器标签页一样用键盘管理会话。
English | 简体中文 — this README is bilingual, English first and 中文在后。
Session hotkeys for DeepSeek Harness Web: manage sessions from the keyboard the way you switch browser tabs.
| Action | Windows preset | macOS preset (Chrome + Safari safe) |
|---|---|---|
| Switch to Nth session | Alt+1-9 |
⌃⇧1-9 |
| Previous session (wraps around) | Alt+↑ |
⌃⌥↑ |
| Next session (wraps around) | Alt+↓ |
⌃⌥↓ |
| Pinned slot tri-state (pin/jump/unpin) | Alt+Shift+1-9 |
⌃⌥1-9 |
| Jump to pinned slot | Ctrl+Alt+1-9 |
⌃⌥⇧1-9 |
| New session | Alt+N |
⌃⌥N |
| Archive current session | Alt+Shift+A |
⌃⌥A |
| Rename current session | Alt+Shift+R |
⌃⌥R |
| Navigation mode (↑↓ move · Enter enter · Esc cancel) | Alt+`` |⌃`` |
|
| Open panel | Alt+P |
⌃⌥P |
| Focus + clear search box | Alt+Shift+F |
⌃⇧F |
Why the macOS preset looks this way: in Chrome both ⌘+1-9 and ⌃+1-9 switch tabs (Safari: ⌘+1-9), so positional switching uses ⌃⇧1-9; ⌥ (Option) is the special-character key and is never used alone (it would break typing); ⌃+N/P/F/B/A/E/K/D are Emacs line-editing bindings in macOS text fields; ⌃+↑/↓ is Mission Control, so previous/next session uses ⌃⌥↑/↓; ⌘⇧+3/4/5 are system screenshots. Every combo has been screened against macOS Chrome and Safari. On macOS all bindings render with native symbols: ⌃ = Control, ⌥ = Option, ⇧ = Shift, ⌘ = Command (the Fn key is never reported to web key events, so it is not used).
Alt+↑ / Alt+↓ (macOS ⌃⌥↑ / ⌃⌥↓): step to the previous / next session in sidebar display order, wrapping around at both ends.Alt+1-9 / ⌃⇧1-9: always switch to the Nth session by sidebar display order (independent of pins; follows grouping, promotion and collapsed groups — what you see is what you get).Alt+Shift+1-9 / macOS ⌃⌥1-9): tri-state semantics — empty slot pins the current session; a slot holding another session jumps to it; a slot holding the current session unpins it. Made for power users who keep many hot sessions and want one-key return.↑↓ to move, Enter to enter (equivalent to clicking the row), Esc to cancel. No session switch happens before Enter. The ring also lands on a collapsed group's "Show N more sessions" button: Enter expands the group and moves the highlight to the first newly revealed session (its content still waits for the next Enter).Alt+1-9 / ⌃⇧1-9, pin any session to a chosen slot) / pin management keyed by the pin binding (e.g. Alt+Shift+1-9 / ⌃⌥1-9) / Keys — rebinding doubles as the cheat sheet, with a one-line description per action and the full text on hover. Tab names follow the current bindings live.↑/↓ move the highlight over the rows (the list scrolls automatically), ←/→ cycle through the three tabs in a loop, Esc closes.⌃⇧F, which overrides the text-field "extend selection" Emacs action.Add the bundle to your DSH Web profile. From npm:
dsh plugin --profile web add "dsh-session-hotkeys"
Or straight from Git:
dsh plugin --profile web add "github:<your-user>/dsh-session-hotkeys#main"
On older CLI versions without the dsh plugin subcommand, register manually:
dsh-session-hotkeys to both dependencies and dsh.profile.bundles in the profile's package.jsonpnpm install inside the profile directoryThen start DSH Web:
dsh --profile web
dsh-session-hotkeys from both dependencies and dsh.profile.bundles in the profile's package.jsonpnpm install inside the profile directoryCustom bindings and pins live in browser localStorage under the keys dsh.session-hotkeys.keys and dsh.session-hotkeys.pins; delete them from the browser devtools for a fully clean removal.
Alt+1-9 jumps straight to the Nth sidebar session; Alt+Shift+1-9 is the pin slot tri-state key (macOS: ⌃⇧1-9 / ⌃⌥1-9).Alt+`` enters navigation mode:↑↓moves the highlight ring,Enterenters,Esc` cancels.Alt+P) to open the panel; rebind anything in the "Keys" tab.Alt+↑ / Alt+↓ step to the previous / next session and wrap around at the ends (macOS: ⌃⌥↑ / ⌃⌥↓).A browser-only Cordis bundle. It reads the session list and current session from the sessions service, switches with sessions.open(), creates sessions via workspaces.startSession(), and expands the sidebar via layout.toggleSidebar() when needed. Session display order is read directly from the rendered sidebar DOM (row titles mapped back to session ids), so it always matches the grouping/sorting/collapse state the user sees. The navigation-mode ring and hint are mounted on document.body, independent of any slot render chain. No server data channel, no server-side state.
@deepseek-ai/dsh@0.1.0-rc.6 (npx channel); last verified 2026-08-16.No config files: everything is configured from the panel. Bindings and pins are stored per browser origin in localStorage (dsh.session-hotkeys.keys / dsh.session-hotkeys.pins) and survive refreshes and DSH restarts.
Browser-only: no network requests, no server-side state, no credentials. The plugin reads the session list from the rendered sidebar DOM and the sessions / workspaces / layout services, and writes nothing but the two localStorage keys above.
Alt+P) and check the Diagnostics block — recent hits show whether your key press was captured, and the service line shows whether sessions/workspaces/layout are available.Alt+0167) no longer works inside DSH Web input fields.git clone https://github.com/<your-user>/dsh-session-hotkeys.git
cd dsh-session-hotkeys
npm run verify # self-check: package structure, parseable client bundle, no external imports
To test locally, link the package into a profile and restart DSH Web.
MIT. Security issues: report via GitHub Issues.
给 DeepSeek Harness Web 的会话快捷键插件:像切换浏览器标签页一样用键盘管理会话。
| 动作 | Windows 预设 | macOS 预设(Chrome + Safari 安全) |
|---|---|---|
| 顺序切换第 N 个会话 | Alt+1-9 |
⌃⇧1-9 |
| 上一个会话(循环) | Alt+↑ |
⌃⌥↑ |
| 下一个会话(循环) | Alt+↓ |
⌃⌥↓ |
| 固定槽位三态(固定/跳转/取消) | Alt+Shift+1-9 |
⌃⌥1-9 |
| 跳转固定槽位 | Ctrl+Alt+1-9 |
⌃⌥⇧1-9 |
| 新建会话 | Alt+N |
⌃⌥N |
| 归档当前会话 | Alt+Shift+A |
⌃⌥A |
| 重命名当前会话 | Alt+Shift+R |
⌃⌥R |
| 导航模式(↑↓ 选择 · Enter 进入 · Esc 取消) | Alt+`` |⌃`` |
|
| 打开面板 | Alt+P |
⌃⌥P |
| 聚焦并清空搜索框 | Alt+Shift+F |
⌃⇧F |
macOS 预设的键位选择理由:Chrome 里 ⌘+1-9 和 ⌃+1-9 都会切换标签页(Safari 是 ⌘+1-9),所以顺序切换改用 ⌃⇧1-9;⌥(Option)是特殊字符键,单独使用会破坏输入框打字,因此从不单独使用;⌃+N/P/F/B/A/E/K/D 是 macOS 文本系统的 Emacs 行编辑键;⌃+↑/↓ 是 Mission Control,所以上一个/下一个会话改用 ⌃⌥↑/↓;⌘⇧+3/4/5 是系统截图。全部组合已在 macOS Chrome 与 Safari 中逐项筛查无冲突。macOS 界面上所有键位都用原生符号显示:⌃ = Control、⌥ = Option、⇧ = Shift、⌘ = Command(Fn 键不会被网页键盘事件报告,故未使用)。
Alt+↑ / Alt+↓(macOS ⌃⌥↑ / ⌃⌥↓):在侧边栏显示顺序中切换到上一个 / 下一个会话,两端循环回绕。Alt+1-9 / ⌃⇧1-9:始终按侧边栏显示顺序切换到第 N 个会话(与固定无关,所见即所得——分组折叠、活动提升后的顺序都自动跟随)。Alt+Shift+1-9 / macOS ⌃⌥1-9):独立的固定槽位三态键——空槽位固定当前会话;固定着别的会话时跳转过去;固定着当前会话时取消固定。适合"很多频繁交互的会话,一键回到之前的对话"。↑↓ 选择、Enter 进入(等同点击该行)、Esc 取消,未按 Enter 不切换会话。高亮环同样能落在折叠组的「展开其余 N 个会话」按钮上:Enter 展开该组,高亮自动移到第一个新出现的会话(内容仍等下一次 Enter 才显示)。Alt+1-9 / ⌃⇧1-9)顺序列表(可给任意会话选择固定到具体槽位)/「固定槽位键」(如 Alt+Shift+1-9 / ⌃⌥1-9)固定槽位管理 /「按键」改键 + 速查说明(每行一句话说明,悬停看完整详情)。Tab 名称跟随当前键位实时变化。↑/↓ 在行间移动高亮(列表自动滚动),←/→ 循环切换三个页签,Esc 关闭。⌃⇧F,它会覆盖文本域的「向后扩展选区」Emacs 操作。把本包加入你的 DSH Web profile。从 npm:
dsh plugin --profile web add "dsh-session-hotkeys"
或直接从 Git 源码:
dsh plugin --profile web add "github:<你的用户名>/dsh-session-hotkeys#main"
旧版 CLI 没有 dsh plugin 子命令时,手动注册:
package.json 中把 dsh-session-hotkeys 加进 dependencies 与 dsh.profile.bundlespnpm install然后启动 DSH Web 即可使用:
dsh --profile web
package.json 中移除 dependencies 与 dsh.profile.bundles 里的 dsh-session-hotkeyspnpm install自定义键位与固定关系保存在浏览器 localStorage 的 dsh.session-hotkeys.keys 与 dsh.session-hotkeys.pins 两个键中;如需彻底清除,可在浏览器开发者工具中删除。
Alt+1-9 直达侧边栏第 N 个会话;Alt+Shift+1-9 固定槽位三态键(macOS 对应 ⌃⇧1-9 / ⌃⌥1-9)。Alt+`` 进入导航模式,↑↓移动高亮环,Enter进入,Esc` 取消。Alt+P)打开面板,在「按键」页给任意功能重新录制键位。Alt+↑ / Alt+↓ 在会话间循环切换(macOS ⌃⌥↑ / ⌃⌥↓)。插件是纯浏览器端 Cordis bundle:从 sessions 服务读取会话列表与当前会话,sessions.open() 执行切换;workspaces.startSession() 新建会话;layout.toggleSidebar() 在需要时展开侧栏。会话显示顺序直接读取已渲染的侧边栏 DOM(行标题映射回会话 id),因此与用户看到的分组/排序/折叠状态完全一致;导航模式的高亮环和提示条直接挂在 document.body,不依赖任何插槽渲染链。不新增任何服务端数据通道,不保存任何服务端状态。
@deepseek-ai/dsh@0.1.0-rc.6(npx 渠道)随附的 DSH Web 上测试,最后验证日期 2026-08-16。无配置文件:所有设置都在面板内完成。键位与固定关系按浏览器 origin 保存在 localStorage(dsh.session-hotkeys.keys / dsh.session-hotkeys.pins),刷新与重启 DSH 后依然有效。
纯浏览器端:无网络请求、无服务端状态、不触碰凭据。插件只读取已渲染侧边栏 DOM 与 sessions / workspaces / layout 服务,仅写入上述两个 localStorage 键。
Alt+P)看底部诊断区——最近命中会显示按键是否被捕获,服务行显示 sessions/workspaces/layout 是否可用。Alt+0167)不可用。git clone https://github.com/<你的用户名>/dsh-session-hotkeys.git
cd dsh-session-hotkeys
npm run verify # 自检:包结构 / 客户端 bundle 可解析且无外部依赖
本地试跑:把包 link 进 profile 后重启 DSH Web 即可。
MIT。安全问题:请通过 GitHub Issues 反馈。
CLASSIFICATION EVIDENCE
系统优先读取 GitHub Topics,再与站内分类词典和词根规则比对。