a903067276-rgb/dsh-plan-switch
输入框一键进/出 Plan 模式(/plan 的快捷点击),DSH web 小插件
已收录
0
Ui
Bundle 已验证
预览
功能介绍
输入框一键进/出 Plan 模式(/plan 的快捷点击),常驻小按钮。
适合
- 经常切换 Plan 模式、希望工具栏常驻快捷按钮的 DSH Web 用户。
- 需要快捷按钮与其他入口触发的 Plan 状态保持同步的工作流。
不适合
- 习惯直接输入 /plan 或使用官方 Plan 控件的用户。
- 非 Web 的 DSH 环境;该插件仅提供 DSH Web 客户端按钮。
- 期望获得官方命令切换之外其他规划功能的用户。
README
dsh-plan-switch 📋
| English | 简体中文 |
A one-click enter/exit Plan mode button for the DSH web input bar (a quick-click shortcut for /plan) — a plugin for DeepSeek Harness (dsh) web.
Unofficial project: independently developed and maintained by a community member, not an official DeepSeek product.
Screenshot

The checklist icon button at the left end of the input tool row (official DSH design tokens, follows dark/light theme).
Features
-
One-click enter/exit Plan mode: a checklist icon button at the left end of the input tool row; clicking it runs the official
/plantoggle command. - Hides while Plan mode is active: the button hides itself and the official plan card takes over the status display — there is never a duplicated indicator.
-
Pending-switch guard: while a
/plantoggle is queued, the button is disabled (the same “switching” semantics as the official plan chip), so a stray click can’t reverse the switch. -
Live state: the button follows the plan state through the official projection, so changes from any entry point (
/plancommand, official chip, agent switching mid-run) are reflected in real time.
Install
Official bundle install (one line):
dsh plugin --profile web add "github:a903067276-rgb/dsh-plan-switch#main"
Restart dsh web after installing (bundle layers are composed at startup). Requires pnpm on PATH (dsh plugin forwards to pnpm).
Manual mount (fallback): see docs/install.md — symlink into ~/.dsh/profiles/web/node_modules/ plus a single entry in ~/.dsh/cordis.patch.yml, then restart.
Usage
A checklist icon button appears at the left end of the input tool row (official DSH design tokens, follows dark/light theme). Click it to enter plan mode — the same as typing /plan. While plan mode is active the button hides itself: the official plan card takes over the status display, so there is never a duplicated indicator; while a /plan toggle is pending the button is disabled, so a second click can’t reverse the switch.
Platform support
| Platform | Status |
|---|---|
| macOS | ✅ fully tested (development environment) |
| Linux | ⚠️ expected to work (pure frontend button, no platform dependency), untested |
| Windows | ⚠️ expected to work (pure frontend button, no platform dependency), untested |
Requirements
- DSH web (run with
dsh web) - No host-side setup: the host half is a no-op — the whole plugin is a client-side button that runs the official
/plancommand, so nothing extra is required on any platform.
How it works
-
Host (
lib/index.js): no behavior — this is a pure UI plugin; the client half is discovered through thedsh.clientdeclaration inpackage.json(exports["./client"]). -
Client (
lib/client.js): registers the checklist icon button in theconversation.input.leftseat using official DSW design tokens (follows dark/light theme); reads plan state live throughuseProjection("plan"); clicking executes the official/plancommand viactx.remote.commands.execute(sessionId, "/plan")— the whole flow stays on the official command chain. -
State handling: the effective plan state mirrors the official PlanChip algorithm (
pending ? !active : active). While plan mode is active the button returnsnull(hidden — the official plan card owns the indicator, no duplicate); while a toggle is pending the button is disabled so a second click can’t reverse the switch; command failures turn the button error-colored with the message in its tooltip.
Notes
- Pure client-side: no host routes, no file writes, no stored data.
- Restart
dsh webafter installing or updating (bundle layers are composed at startup); client-side edits apply on a page refresh.
Development
- Source:
lib/index.js(host side, no-op),lib/client.js(web injection) - Workflow: edit locally → push to
main→pnpm updateto verify the install
License
常见问题常见问题
在启用了 DSH 的终端中执行已验证命令 dsh plugin --profile default add github:a903067276-rgb/dsh-plan-switch。命令会解析公开 package 元数据,并保持插件与本页展示的目录身份一致。
兼容性以页面上展示的 bundle 与 profile 状态为准。如果某个 profile 尚未检测到,请先保持禁用,并在生产启用前阅读仓库文档。
GitHub 链接和 activity 元数据是 release 与维护状态的来源。新版本发布后重新查看本页,确认目录已经观察到最新版本。