DSH Plugins Marketplace

DSH Plugins

Plugins

/

dsh-composer-quick-actions

x

dsh-composer-quick-actions

Manifest valid

DSH Plugin: Permanently pin the four common actions "File / Target / Plan / Feedback" to the input box toolbar

UI (client)hasBundlePatchMachine translated

dsh-composer-quick-actions

把「+」菜单里 「添加」小节的四项 —— 文件 / 目标 / 计划 / 反馈 做成 composer 工具栏里常驻的控件, 不用每次展开菜单。

适用于 DSH(DeepSeek Harness) 的 Web / Desktop 客户端。

[ + ] [ ⊘ 工作区内修改 ▾ ] [ ☑ 计划 ]   [ 📎 文件 ] [ 🎯 目标 ] [ ✈ 反馈 ]        …… 输入框
        └── 官方那一格 └─┘            └──── 左侧一组 ────┘

四个控件

控件点击后底层调用
文件打开当前输入框的原生文件选择器conversation.input.canPickFiles/pickFiles(sessionId)
目标在输入框上方弹出原生样式的目标编辑条,直接写目标内容goals.create / goals.edit(@deepseek-ai/dsh-goal)
计划进入计划模式;再按一下退出/plan ⇄ /plan off
反馈打开当前会话的反馈对话框feedbackUi.openSession(sessionId)

目标的编辑条

点「目标」→ 在官方目标栏所在的位置出现一条编辑条(圆角卡片 + 输入框 + ✓/✕):

场景行为
没有目标空输入框;Enter / ✓ → 新建目标
已有目标预填当前目标内容;Enter / ✓ → 更新目标
Esc / ✕关闭,不提交
空内容不发请求,提示「目标内容不能为空」
保存失败编辑条保持打开、内容不丢、错误内联显示
保存中输入框与按键禁用,重复 Enter 不会重复提交

编辑条只从目标自身取初值,不读取输入框草稿 —— 输入框写什么是输入框的事,目标和它是两件独立的事。 写入目标也不会动输入框。

安装

# 在你的 DSH profile 目录下($DSH_HOME/profiles/<profile>)
dsh plugin --profile <profile> add <本仓库的 clone 路径或包名>

或手动登记(等价做法):

  1. 把本仓库 clone 到任意目录,例如 ~/dsh-composer-quick-actions
  2. 在 profile 的 node_modules 下建软链/junction 指向该目录
  3. 在该 profile 的 package.json 里登记:
{
  "dsh": {
    "profile": {
      // 追加到 bundles
      "bundles": ["…", "dsh-composer-quick-actions"]
    }
  },
  "dependencies": {
    // 追加
    "dsh-composer-quick-actions": "link:~/dsh-composer-quick-actions"
  }
}

改完必须重启 DSH Desktop 才生效。 宿主在启动时把 lib/client.js 快照进客户端模块图, 运行期改动不会热更新,每次改完都要重启。

卸载

从 profile 的 dsh.profile.bundles 与 dependencies 里删掉对应两行,删掉软链,重启应用。

实现要点

三个槽位

lib/client.js 把手写的闭包 factory bundle 交给 window.__ModuleLoader__,注册三条槽位条目:

#槽位类型内容
1conversation.input.leftlist(id: 'quick-actions')文件 / 反馈
2conversation.input.plansingle(priority: -100)计划 chip
3conversation.input.docklist(id: 'quick-actions-goal-editor')目标编辑条
  • 第 2 条:官方 PlanChip 只在计划模式生效时才渲染,关着时那格是空的。本插件用更低优先级注册同一槽位把它接管, 于是「计划」永远显示在那个位置。这是注册表的既有语义 —— Slots.register 只在同优先级报冲突, 渲染时取「优先级最低的存活条目」。插件卸载后官方 PlanChip 会自动回来。
  • 第 3 条:与原生目标栏(id: 'goal')是同槽位的不同 id,list 槽位按 id 各占一格,共存互不挤占。

⚠️ 执行斜杠命令要用 remote.<namespace> 服务

api-gateway 的客户端半侧会为每个 Remote namespace 单独起一个名为 remote.<namespace> 的 cordis 服务, 它不是网关实例上的一个属性(createNamespace() 里显式拒绝 namespace 与网关本体同名):

ctx.get('remote').commands   // ❌ undefined
ctx.get('remote.commands')   // ✅ 独立服务名

lib/index.js 是纯 UI 插件的空 apply,只负责让插件出现在宿主配置树里。

已知限制

  • 接管计划槽位依赖「最低优先级渲染」语义。若官方将来给 PlanChip 显式指定负优先级,接管会失效 (最坏情况退回官方行为,不会崩溃)。
  • 文件按钮依赖输入框已挂载;未挂载时点击会提示「当前输入框不接受文件」。
  • 控件只在已选中会话的 composer 上出现(「+」与权限下拉本身也只在有会话时渲染)。

License

MIT

Comments

Loading…

Similar plugins

dsh-input-list

by konglong87

dsh 常用内容插件:保存、编辑提示词,点击回填输入框,不自动发送。deepseek harness 插件

UI & ExperienceDevelopment & InfrastructureManifest valid

★ 0

MIT

JavaScript

Sep 23, 2026

dsh plugin --profile web add dsh-input-list

by cdredfox

为你的 DSH 增加快捷指令的操作,把常用提示词存成输入框上方的一排快捷按钮,点击即填入。支持置顶、搜索、自动收纳溢出。

Manifest valid

★ 0

MIT

JavaScript

Oct 17, 2026

dsh plugin --profile web add @cdredfox/dsh-prompt-shortcuts

by nubeslove

DSH Web 插件:给文件引用加右键菜单(打开文件 / 在资源管理器定位 / 浏览器预览 / 复制路径)。Right-click actions for file mentions in DeepSeek Harness.

Manifest valid

★ 0

MIT

JavaScript

Oct 17, 2026

dsh plugin --profile web add dsh-file-actions

by liceses

DSH 插件:把工作区里写好的 HTML 页展示在对话里,并让用户在页面上的表态快速回到 agent 手里。含四套预设样式。

Manifest valid

★ 4

MIT

JavaScript

Oct 7, 2026

dsh plugin --profile web add dsh-showme-html

by Anarcadia

DSH 纯净写作协作模式插件:极简提示词 + 四大沉浸预设 + 工作区文档注入

Manifest valid

★ 4

JavaScript

Oct 18, 2026

dsh plugin --profile web add chuanban-dsh-writingset

by callmesoul

DSH (DeepSeek Harness) 任务看板插件:主机状态机 + git 调度 + 浏览器看板 UI,agent 自动执行任务、审核后自动合并回基础分支

Workflow & AutomationManifest valid

★ 4

Vue

Sep 4, 2026

dsh plugin --profile web add @deepseek-kanban/plugin