{"_id":"@dsh-community/dsh-command-palette","name":"@dsh-community/dsh-command-palette","dist-tags":{"alpha":"0.1.0-alpha.0","latest":"0.1.0-alpha.0"},"versions":{"0.1.0-alpha.0":{"name":"@dsh-community/dsh-command-palette","version":"0.1.0-alpha.0","description":"A searchable command palette for DeepSeek Harness and its plugins","type":"module","main":"./lib/index.js","types":"./lib/types/index.d.ts","exports":{".":{"types":"./lib/types/index.d.ts","default":"./lib/index.js"},"./client":{"types":"./lib/types/client.d.ts","default":"./lib/client.js"},"./package.json":"./package.json"},"dsh":{"bundle":{"patch":"./cordis.patch.yml"},"client":{"inject":["@deepseek-ai/dsh-client-runtime","@deepseek-ai/dsh-client-ui-conversation","@deepseek-ai/dsh-client-ui-layout"],"platform":"web"}},"peerDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-client-runtime":"0.1.0-rc.6","@deepseek-ai/dsh-client-ui-conversation":"0.1.0-rc.6","@deepseek-ai/dsh-client-ui-layout":"0.1.0-rc.6","@deepseek-ai/dsh-commands":"0.1.0-rc.6","@deepseek-ai/dsh-settings":"0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1","react":"^18.2.0"},"devDependencies":{"@deepseek-ai/cordis":"^4.0.1","@deepseek-ai/dsh-agent":"0.1.0-rc.6","@deepseek-ai/dsh-api-remotes":"0.1.0-rc.6","@deepseek-ai/dsh-client-connection":"0.1.0-rc.6","@deepseek-ai/dsh-client-runtime":"0.1.0-rc.6","@deepseek-ai/dsh-client-ui-conversation":"0.1.0-rc.6","@deepseek-ai/dsh-client-ui-layout":"0.1.0-rc.6","@deepseek-ai/dsh-commands":"0.1.0-rc.6","@deepseek-ai/dsh-host-apiproxy":"0.1.0-rc.6","@deepseek-ai/dsh-session":"0.1.0-rc.6","@deepseek-ai/dsh-settings":"0.1.0-rc.6","@deepseek-ai/schemastery":"^3.18.1","@types/react":"^18.3.0","esbuild":"^0.28.2","react":"^18.3.0","tsx":"^4.19.0","typescript":"^5.8.0"},"scripts":{"prepublishOnly":"npm test && npm run typecheck","prepack":"npm run build","build":"node -e \"require('node:fs').rmSync('lib', { recursive: true, force: true })\" && tsc -p tsconfig.json && node scripts/build-client.mjs","typecheck":"tsc -p tsconfig.json --noEmit","test":"node --import tsx --test tests/*.test.ts"},"license":"MIT","repository":{"type":"git","url":"git+https://github.com/hajimixiaojie/dsh-command-palette.git"},"homepage":"https://github.com/hajimixiaojie/dsh-command-palette#readme","bugs":{"url":"https://github.com/hajimixiaojie/dsh-command-palette/issues"},"publishConfig":{"access":"public"},"gitHead":"549f5192c3e9aada5431506aa794c2d20ba7a099","_id":"@dsh-community/dsh-command-palette@0.1.0-alpha.0","_nodeVersion":"24.13.0","_npmVersion":"11.6.2","dist":{"integrity":"sha512-O4EBQ03Cwdun8X32OsBOZJc3fkyeuYzvXutHbpm9LspCrd94/57FTu+YxGQu1KkoP+eqKeNFO2UoO0DVcZ53Tw==","shasum":"cbc605efb358a77f91f159aa644eab3cebf9a7fd","tarball":"https://registry.npmjs.org/@dsh-community/dsh-command-palette/-/dsh-command-palette-0.1.0-alpha.0.tgz","fileCount":28,"unpackedSize":467280,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEQCICkoZBmvZaJHK7WZ44w1o0spQeBwJlvMPDcBUJbr+z1XAiBnqVkhRi0lh0ki/kP+1oUi8nKPGNcxvVqX9EC1usBfpQ=="}]},"_npmUser":{"name":"hajimixiaojie","email":"1105128811@qq.com"},"directories":{},"maintainers":[{"name":"hajimixiaojie","email":"1105128811@qq.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/dsh-command-palette_0.1.0-alpha.0_1786806049343_0.23848267493515407"},"_hasShrinkwrap":false}},"time":{"created":"2026-08-15T15:00:49.065Z","0.1.0-alpha.0":"2026-08-15T15:00:49.478Z","modified":"2026-08-15T15:00:49.746Z"},"maintainers":[{"name":"hajimixiaojie","email":"1105128811@qq.com"}],"description":"A searchable command palette for DeepSeek Harness and its plugins","homepage":"https://github.com/hajimixiaojie/dsh-command-palette#readme","repository":{"type":"git","url":"git+https://github.com/hajimixiaojie/dsh-command-palette.git"},"bugs":{"url":"https://github.com/hajimixiaojie/dsh-command-palette/issues"},"license":"MIT","readme":"# dsh-command-palette\n\n> 给 DeepSeek Harness（DSH）加一个「命令面板」：\n> 按一下 `Ctrl+Shift+K`，输入关键词，回车——就能完成各种操作，不用到处找按钮。\n\n如果你用过 VS Code 的 `Ctrl+Shift+P`，就是那个感觉。\n\n---\n\n## 产品目标\n\nDSH 的界面以图形化为主，但日常高频操作（新建/切换会话、切换 workspace、开关视图、执行命令、调用 skill）其实都可以**不碰鼠标**完成。本插件的目标是在保留图形化界面的同时实现「**去光标化**」：\n\n- **纯键盘完成所有日常操作**：会话 / workspace / 视图 / 命令 / skill 的查找与执行都走一个面板，`↑↓` 选择、`Enter` 执行、`Esc` 退出，手不用离开键盘；\n- **统一的键盘入口**：无论操作藏在哪个菜单/侧栏/插件里，都收敛到这一个入口，不用记入口在哪、也不用逐层点开；\n- **鼠标只是可选**：需要时仍然可以点击面板按钮或列表项，但没有任何日常操作*必须*用鼠标。\n\n命令面板就是这一切的入口：一个快捷键（或按钮）唤起，打字即搜，回车即达。\n\n---\n\n## 安装\n\n### 第一步：确认你已经装好 DSH\n\n- 已经装好 **DSH 0.1.0-rc.6**，并且能正常打开它的 Web 界面（Node.js ≥ 22）。\n- 还没装好？先按 DSH 官方文档安装。这一步通常由维护 DSH 环境的人完成，普通使用者可以直接问他们要一个已装好的环境。\n\n### 第二步：安装插件（复制一条命令）\n\n在终端里，复制粘贴下面这一行，按回车：\n\n```sh\ndsh plugin --profile web add npm:@dsh-community/dsh-command-palette\n```\n\n这一行命令在做什么：\n\n- `dsh plugin` → 让 DSH 管理插件\n- `--profile web` → 装到「网页版」配置里\n- `add npm:@dsh-community/dsh-command-palette` → 从 npm（一个软件商店）下载并安装本插件\n\n**看到什么算成功：** 屏幕开始滚动一些文字，最后停下来，回到可以输入命令的状态（通常看到 Done 或类似字样）。整个过程一般不超过 1 分钟。\n\n装好后重新打开（或刷新）DSH 网页：按 `Ctrl+Shift+K` 能弹出面板、输入框左侧出现面板按钮，就说明装好了。想逐项完整验收，照着 [docs/manual-inspection.md](./docs/manual-inspection.md) 勾一遍即可（约 30 分钟，不需要编程）。\n\n### 没有发布 npm 包？想先在本机测试？\n\n① 先在插件源码目录（有 `package.json` 的文件夹）打开终端，运行 `npm pack`，会生成一个 `dsh-community-dsh-command-palette-0.1.0-alpha.0.tgz` 文件；\n\n② 然后用这条命令安装（把路径换成你的文件位置）：\n\n```powershell\ndsh plugin --profile web add \"$PWD\\dsh-community-dsh-command-palette-0.1.0-alpha.0.tgz\"\n```\n\n（在插件源码目录里运行时，`$PWD` 会自动替换成当前目录路径；升级包时先删掉旧的 `.tgz` 再重新打包。）\n\n> ⚠️ 如果粘贴后报 `ENOENT: no such file or directory`，且报错里的路径把 profile 目录和你的文件路径拼在了一起，说明从聊天软件/网页复制命令时混入了不可见字符。把命令**手动敲一遍**（或先粘到记事本再复制）即可解决。\n\n### 卸载\n\n在终端里复制粘贴这一行，按回车：\n\n```sh\ndsh plugin --profile web remove @dsh-community/dsh-command-palette\n```\n\n卸载后，按钮、快捷键和面板里的命令会自动消失，不留残留。\n\n---\n\n## 它能帮我做什么？\n\n- **一个入口找所有操作**：新建会话、切换会话、切换 workspace、打开详情面板……不用记入口在哪。\n- **只显示现在能用的命令**：用不了的命令会变灰，并直接告诉你为什么（例如「需要两个以上会话」）。\n- **插件的命令也会自动出现**：其他 DSH 插件注册的命令，面板会自动收录，统一管理。\n- **键盘全程可操作**：`↑` `↓` 选择，`Enter` 执行，`Esc` 关闭，手不用离开键盘。\n- **执行结果看得见**：成功了有提示，失败了告诉你原因、可以一键重试，长时间任务可以取消。\n\n## 怎么打开？\n\n有三种方式，任选其一：\n\n| 方式 | 说明 |\n| --- | --- |\n| 快捷键 | `Ctrl+Shift+K`，再按一次关闭（可在设置中修改） |\n| 按钮 | 输入框左侧有一个命令面板按钮，点它（手机上用这个） |\n| 设置里改了快捷键 | 以你自己的设置为准，见下文「设置」 |\n\n> 💡 光标即使在输入框里，`Ctrl+Shift+K` 也能直接打开/关闭面板；普通打字（如直接敲字母）绝不会被抢占。\n\n## 打开之后怎么用？\n\n```text\n┌──────────────────────────────────────┐\n│ > 输入关键词搜索命令                  │\n├──────────────────────────────────────┤\n│  Recent（最近用过）                   │\n│    新建会话                           │\n│  Session                              │\n│    下一个会话                         │\n│    打开详情面板        （灰色=不可用） │\n└──────────────────────────────────────┘\n```\n\n| 按键 | 作用 |\n| --- | --- |\n| `↑` / `↓` | 上下选择 |\n| `Enter` | 执行选中的命令 |\n| `Esc` | 关闭面板 |\n| 直接打字 | 搜索命令（名称、关键词、分类都能搜，中文英文都行） |\n\n什么都不输入时，列表会按分类分组，**最近用过的命令排在最上面**。\n\n## 自带哪些命令？\n\n| 命令 | 作用 | 什么时候是灰色的 |\n| --- | --- | --- |\n| 新建会话 | 连接最近的 workspace 并开一个新会话 | 没有可用 workspace 时 |\n| 下一个会话 | 在会话列表里循环切换 | 只有不到两个会话时 |\n| 下一个 workspace | 切换到下一个 workspace | 没有可用 workspace 时 |\n| 打开详情面板 | 展开当前会话的详情侧栏 | — |\n| 设置 | 打开 DSH 设置面板 | — |\n| 聚焦输入框 | 把光标移到聊天输入框 | 没有活动会话时 |\n\n### 主机命令与 Skills\n\nDSH 中注册的斜杠命令（slash 命令）和当前会话项目里**用户可调用**的 skill 会直接列在面板里（分类「Commands」/「Skills」），选中回车即可执行，不用手动敲 `/`：\n\n- **不带参数的命令**：选中 → 回车直接执行；\n- **带参数的命令**（宿主声明了 input hint）与**任意 skill**：选中 → 回车进入「参数输入步」——输入框变为参数输入，回车以 `/名字 参数` 执行，`Esc` 返回命令列表。\n\n另外，**其他插件注册的命令会自动出现在面板里**，不需要任何设置。\n\n> 已知限制：由 Web 界面客户端注册的弹窗选择式命令（如 `/model`、`/mcp`）没有公开的列举 API，暂不会出现在面板里；这类命令仍可从输入框直接输入使用。\n\n## 设置（可选）\n\n配置保存在 DSH 的设置文件 **`~/.dsh/settings.yaml`** 中（也可在 DSH 设置界面找到 **command-palette** 一节）。直接编辑文件，加一段：\n\n```yaml\ncommand-palette:\n  shortcut:\n    open: ctrl+shift+k   # 打开面板的快捷键\n    enabled: true            # 全局快捷键总开关；关掉后仍能用按钮打开面板\n```\n\n保存后**立即生效**，不用重启。两个选项：\n\n| 设置项 | 默认值 | 说明 |\n| --- | --- | --- |\n| `shortcut.open` | `ctrl+shift+k` | 打开面板的快捷键。写法：`修饰键+键位`，如 `ctrl+shift+p`、`alt+k`。`mod` 表示 Windows/Linux 上的 `Ctrl`、macOS 上的 `Cmd`。默认值的选择理由：避开浏览器自带的 `Ctrl+K` 搜索键，也避开被输入法在系统层截获的 `Ctrl+Space` / `Ctrl+Shift+Space`（文本框聚焦时页面根本收不到这两组键，配了也无效） |\n| `shortcut.enabled` | `true` | 全局快捷键总开关。关掉后仍能用按钮打开面板 |\n\n- 填了不合法的快捷键会被拒绝并提示原因，原来的设置不受影响。\n- 如果新快捷键和浏览器/面板自带按键冲突（比如 `Ctrl+K`、`Ctrl+Tab`），面板会给出提示。\n\n## 常见问题\n\n**Q：命令是灰的，点不了？**\nA：灰色的命令旁边写了原因（例如「需要两个以上会话」）。满足条件后它就会恢复可用。\n\n**Q：按快捷键没反应？**\nA：两种可能：① 快捷键被浏览器或其他插件占用；② 配置了被输入法截获的组合（`Ctrl+Space`、`Ctrl+Shift+Space` 在文本框聚焦时会被输入法在系统层截获，页面根本收不到事件，这不是插件能修复的）。去 `~/.dsh/settings.yaml` 把 `shortcut.open` 换成别的组合（如默认的 `ctrl+shift+k`），或者用输入框左侧的按钮。\n\n**Q：执行失败了怎么办？**\nA：面板不会关，会显示失败原因和一个「重试」按钮，点重试即可。\n\n**Q：命令跑很久？**\nA：长时间任务会显示「正在运行」，不会卡住界面；不想等了可以点「取消」，命令会被真正取消（不是假装关掉）。\n\n**Q：手机上能用吗？**\nA：可以。屏幕较窄时面板会变成底部抽屉样式，按钮也会加大，方便手指点按。\n\n**Q：它会把命令列表发给 AI 模型吗？**\nA：不会。命令面板只为人服务，不占用模型的上下文额度，也不会把命令伪装成模型工具。\n\n---\n\n## 深入阅读\n\n- 📖 设计与开发文档：[PROJECT_GUIDE.md](./PROJECT_GUIDE.md)\n- 🔌 给自己的插件贡献命令：[docs/contributing-commands.md](./docs/contributing-commands.md)\n- ✅ 人工检查手册（装机后逐项验收）：[docs/manual-inspection.md](./docs/manual-inspection.md)\n- 🛠 开发者：`npm install` → `npm test` / `npm run typecheck` / `npm run build`\n\n## 许可证\n\nMIT\n","readmeFilename":"README.md","_rev":"1-e527fd2e0efb7997a927a04179fb7cbc"}