Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 2 additions & 0 deletions .github/workflows/test.yml
Original file line number Diff line number Diff line change
Expand Up @@ -26,6 +26,8 @@ jobs:
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
python -m json.tool plugins/quicker/.mcp.json > $null
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
python -m json.tool plugins/quicker-dsh/package.json > $null
if ($LASTEXITCODE -ne 0) { exit $LASTEXITCODE }
- name: Test transport, installation and release packaging
run: python -m unittest discover -s tests -v
- name: Build and verify every release package
Expand Down
2 changes: 1 addition & 1 deletion AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@ This repository maintains integrations that let external agents use Quicker. Sta

## Boundaries

- Keep installable packages under plugins/ and make each directory self-contained. The Codex marketplace currently exposes plugins/quicker; declare each future platform's source path in its own catalog.
- Keep installable packages under plugins/ and make each directory self-contained. The Codex marketplace currently exposes plugins/quicker; DSH uses plugins/quicker-dsh as a cordis bundle. Declare each future platform's source path in its own catalog.
- Quicker owns action execution, step knowledge, permissions, approvals and Catalog state. Discover runtime knowledge instead of copying a static module catalog here.
- Do not add Quicker product source, private repository dependencies, personal configuration, client grants, credentials or machine-specific paths.
- Add shared source when a second real consumer needs it. Copy required runtime files into each distributable package; do not use symlinks or paths outside the installed package.
Expand Down
28 changes: 25 additions & 3 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
# Quicker Agent Integrations

让 Codex、Cursor 等外部 Agent 调用本机 Quicker,编写和使用自动化动作。
让 Codex、Cursor、DeepSeek Harness 等外部 Agent 调用本机 Quicker,编写和使用自动化动作。

这个仓库集中维护各平台插件、安装与更新工具、MCP 接入约定、开发指南和契约测试。插件通过 Quicker 的公开接口工作,步骤知识由运行中的 Quicker 实时提供。

提供 Codex、Cursor、Claude Code 插件及 VS Code / Gemini CLI 的 MCP 配置安装器,采用 [MIT 许可证](LICENSE)。
提供 Codex、Cursor、Claude Code、DeepSeek Harness 插件及 VS Code / Gemini CLI 的 MCP 配置安装器,采用 [MIT 许可证](LICENSE)。

## 支持情况

Expand All @@ -14,6 +14,7 @@
| Cursor | 本地插件;CLI 真实写动作通过 | Windows;技能、草稿创建/保存/预览 |
| Claude Code | 原生插件,v0.2.1 | v0.2.0 公开市场安装和真实 MCP 连接通过;模型写动作待验收 |
| VS Code / Copilot、Gemini CLI | 配置安装器 | 默认 Windows 用户配置;尚未完成各客户端写动作验收 |
| DeepSeek Harness | DSH bundle 插件 | Windows;安装包与转接已实现,真实 DSH 会话写动作待验收 |

需要使用设置 → Agent 中带「启用 MCP」入口、并包含默认技能包发现修复的 Quicker 新构建。Release 支持已实现,待包含这些变更的正式版发布;已发布旧版没有该入口时仍不可用。本次已验证 Debug 的草稿编写与预览,Release 配置内核测试和正式前端构建通过,正式安装包端到端仍待验收,详见[兼容性说明](docs/兼容性.md)。

Expand Down Expand Up @@ -62,6 +63,26 @@ claude auth status

Quicker 原生插件可与官方 [codex-plugin-cc](https://github.com/openai/codex-plugin-cc) 同时安装,前者直接提供 Quicker 工具,后者从 Claude Code 委托 Codex 审查或处理代码。两者不互为依赖,Codex 登录不能代替 Claude 登录。更新、连接超时处理及验收范围见[Claude Code 安装和诊断](docs/客户端安装.md#claude-code-安装和诊断)。

## 安装 DeepSeek Harness 插件

在 Windows PowerShell 中执行(需要 Git):

```powershell
$quickerInstall = Join-Path $env:TEMP ("quicker-agent-" + [guid]::NewGuid().ToString("N"))
git clone --depth 1 https://github.com/QuickerOrg/quicker-agent-integrations.git $quickerInstall
if ($LASTEXITCODE -eq 0) {
powershell.exe -NoProfile -ExecutionPolicy Bypass -File (Join-Path $quickerInstall "scripts/install-client.ps1") -Client dsh
}
```

安装器把自包含 bundle 复制到 `%USERPROFILE%/.quicker/agent-integrations/dsh`。PATH 中有 `dsh` 时会再执行 `dsh plugin --profile web add link:<该目录>`;否则把打印出的命令贴到目标 profile。开发检出可直接 `dsh plugin --profile web add link:<仓库>/plugins/quicker-dsh`。

启用 Quicker 设置 → Agent 中的 MCP 与允许写入,重启 `dsh web` 或 DSH 桌面端。首次连接确认 `dsh-quicker-plugin`。工具名为 `mcp__quicker__skill_load` 这类带命名空间的名称。可以这样开始:

> 用 Quicker 写一个动作,显示“来自 DeepSeek Harness”,保存到暂存区并打开预览,不运行。

更新、卸载和诊断见[客户端安装](docs/客户端安装.md)。本轮完成安装包、转接和隔离测试,尚未声称真实 DSH 会话已经写过动作。

## VS Code / Copilot 与 Gemini CLI

使用上述下载步骤,将安装器参数分别改为 `-Client vscode` 或 `-Client gemini`。安装器只合并自己的 MCP 项,保留其他服务与设置,token 始终由本地转接读取。
Expand Down Expand Up @@ -143,6 +164,7 @@ codex plugin remove quicker@quicker-agent-integrations
marketplace.json Codex Git 市场入口
plugins/
quicker/ Codex 完整安装单元
quicker-dsh/ DeepSeek Harness bundle
docs/
接入约定.md 跨平台协议、权限、错误及动作编写约定
新增平台.md 新平台开发和验收流程
Expand All @@ -153,7 +175,7 @@ tests/
test_quicker_mcp.py 独立的传输契约测试
```

Cursor、Claude 和 Codex 分别由自己的 marketplace 清单声明包路径。`shared/` 是传输与写动作技能的唯一源码,`python scripts/sync-packages.py` 同步到各自包含安装包,`--check` 在 CI 验证无漂移。
Cursor、Claude 和 Codex 分别由自己的 marketplace 清单声明包路径。DeepSeek Harness 使用 `plugins/quicker-dsh` 的 `dsh.bundle` 清单,不走那些市场。`shared/` 是传输与写动作技能的唯一源码,`python scripts/sync-packages.py` 同步到各自包含安装包,`--check` 在 CI 验证无漂移。

## 开发与验证

Expand Down
1 change: 1 addition & 0 deletions docs/兼容性.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,7 @@
| Cursor CLI | 2026-09-07:2026.08.11-e8db854;v0.2.0 本地安装包技能加载、实时知识发现、4 步动作创建/保存/预览通过。IDE 3.7.12 的插件设置界面重载尚未单独操作验收 |
| Claude Code | 2026-09-07:2.1.263;v0.2.0 插件与市场通过官方 validator,隔离安装及真实用户配置下的公开市场安装成功;识别 write-action 技能与 MCP,mcp list 连接真实 Quicker 成功。模型调用因未登录退出,未验证 Claude 模型写动作 |
| VS Code / Gemini CLI | v0.2.0 默认用户配置安装/更新/卸载和隔离传输通过;尚未完成实际客户端写动作验收 |
| DeepSeek Harness | v0.2.0 bundle 清单、安装器复制、`dsh` Client 转接与隔离传输通过;尚未完成真实 DSH 会话写动作验收 |

## 版本记录

Expand Down
6 changes: 3 additions & 3 deletions docs/发布.md
Original file line number Diff line number Diff line change
@@ -1,17 +1,17 @@
# 发布完整插件集合

每次 GitHub Release 都必须提供 **Codex、Cursor、Claude Code、通用 MCP 的全部独立 ZIP**,即使本次只修改其中一个插件。最新 Release 应能直接找到所有平台的安装包,不能要求用户到旧版本寻找其他插件。
每次 GitHub Release 都必须提供 **Codex、Cursor、Claude Code、通用 MCP、DeepSeek Harness 的全部独立 ZIP**,即使本次只修改其中一个插件。最新 Release 应能直接找到所有平台的安装包,不能要求用户到旧版本寻找其他插件。

## 单一清单与版本

`scripts/release-packages.json` 是安装包和共享资源的唯一名单,供共享源码同步与发布打包使用。每项声明平台 id、包目录、插件 manifest,以及适用的 MCP / marketplace 入口。新增平台时同时更新该清单;打包器会核对名单与 tag 下所有受跟踪 `plugins/<目录>` 一致。

文件名统一使用发布批次版本,包内 manifest 保留平台自己的版本。例如批次 `v0.2.2` 会生成 `quicker-cursor-0.2.2.zip`,即使其中的 Cursor 插件仍为 `0.2.0`。不要为凑齐附件擅自递增未变更的插件版本。`release-manifest.json` 分别记录 `releaseVersion`、各包 `packageVersion`、源 tag / commit、附件名、大小和 SHA-256。

当前每批必须有 7 个附件:
当前每批必须有 8 个附件:

- `quicker-agent-integrations-<发布版本>.zip`:完整源码安装包,含各平台包、安装器、市场入口、文档与许可证。
- `quicker-codex-<发布版本>.zip`、`quicker-cursor-<发布版本>.zip`、`quicker-claude-<发布版本>.zip`、`quicker-mcp-<发布版本>.zip`:所有独立包。
- `quicker-codex-<发布版本>.zip`、`quicker-cursor-<发布版本>.zip`、`quicker-claude-<发布版本>.zip`、`quicker-mcp-<发布版本>.zip`、`quicker-dsh-<发布版本>.zip`:所有独立包。
- `release-manifest.json`:可审查的批次与包版本记录。
- `SHA256SUMS.txt`:覆盖全部 ZIP 及发布清单。

Expand Down
19 changes: 17 additions & 2 deletions docs/客户端安装.md
Original file line number Diff line number Diff line change
Expand Up @@ -10,17 +10,19 @@
| Claude Code | plugins/quicker-claude | `.claude-plugin/plugin.json` + `.mcp.json` + skills;原生市场 |
| Codex | plugins/quicker | `.codex-plugin/plugin.json` + `.mcp.json` + skills;原生市场 |
| VS Code / Gemini CLI | plugins/quicker-mcp | 安装本地 stdio 转接并合并客户端 MCP JSON;编写规则来自 MCP initialize 与 skill_load |
| DeepSeek Harness | plugins/quicker-dsh | `package.json` 的 `dsh.bundle` + `cordis.patch.yml` + `index.js`;安装器复制到本机目录,再 `dsh plugin --profile web add link:…` |

Cursor 和 Claude 分别展开 `${CURSOR_PLUGIN_ROOT}`、`${CLAUDE_PLUGIN_ROOT}`,Codex 使用包内相对 cwd。安装后各包独立运行,不访问 shared/ 或开发检出。

## 安装器的范围

从本仓库执行 `powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/install-client.ps1 -Client cursor`。支持 cursor、vscode、gemini。安装器不会打开 Quicker 权限开关。
从本仓库执行 `powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/install-client.ps1 -Client cursor`。支持 cursor、vscode、gemini、dsh。安装器不会打开 Quicker 权限开关。

- Cursor:`%USERPROFILE%/.cursor/plugins/local/quicker`。
- VS Code 默认用户:`%USERPROFILE%/AppData/Roaming/Code/User/mcp.json` 的 `servers.quicker`。
- Gemini CLI:`%USERPROFILE%/.gemini/settings.json` 的 `mcpServers.quicker`。
- 通用转接安装目录:`%USERPROFILE%/.quicker/agent-integrations/<client>`。
- DeepSeek Harness:`%USERPROFILE%/.quicker/agent-integrations/dsh`,再链入 profile;默认 `web`。

现有 quicker 项、插件目录不属于此安装器,或已安装文件被手动修改时会拒绝覆盖。安装器保留其他设置,替换前备份原配置/包,已安装包用归属标记和文件 hash 校验。备份保存在本机,不上传。JSON 不能解析时原文件不变;VS Code JSONC(注释、尾逗号)、便携版、自定义用户数据目录和 Profile 不由此安装器自动处理。

Expand All @@ -43,7 +45,19 @@ VS Code 的服务项还需 `"type": "stdio"`。不填 URL、Authorization 或 to
powershell.exe -NoProfile -ExecutionPolicy Bypass -File scripts/install-client.ps1 -Client cursor -Uninstall
```

VS Code / Gemini 同样替换 Client。卸载只删除归属匹配且未编辑的当前包与对应 MCP 项,保留其他配置与旧备份。Codex 和 Claude Code 使用各自原生插件卸载命令。
VS Code / Gemini / DSH 同样替换 Client。卸载只删除归属匹配且未编辑的当前包与对应 MCP 项,保留其他配置与旧备份。DSH 还会尝试 `dsh plugin --profile web remove dsh-plugin-quicker`。Codex 和 Claude Code 使用各自原生插件卸载命令。

## DeepSeek Harness 安装和诊断

安装器复制 bundle 后,若 PATH 中有 `dsh`,会执行 `dsh plugin --profile web add link:<安装目录>`。桌面端或其它 profile 把 `web` 换成实际名称。没有 CLI 时,把安装器打印的命令贴进已初始化的 profile。

启用 Quicker 设置 → Agent 中的 MCP 与允许写入,重启 `dsh web` 或桌面端。首次连接确认 `dsh-quicker-plugin`。工具名为 `mcp__quicker__<原名>`。

```powershell
powershell.exe -NoLogo -NoProfile -NonInteractive -ExecutionPolicy Bypass -File "$env:USERPROFILE\.quicker\agent-integrations\dsh\scripts\quicker-mcp.ps1" -Check
```

`-Check` 只验证配置和 TCP。bundle 层改动需要重启 DSH;不要把未重启误报为 Quicker 403。真实会话写动作验收见[兼容性](兼容性.md)。

## Cursor CLI 验收

Expand Down Expand Up @@ -107,3 +121,4 @@ claude plugin uninstall quicker@quicker-agent-integrations --scope user
- [Claude Code 插件与 MCP](https://code.claude.com/docs/en/plugins-reference)、[市场 CLI](https://code.claude.com/docs/en/plugin-marketplaces#manage-marketplaces-from-the-cli)、[认证](https://code.claude.com/docs/en/authentication)。
- [VS Code MCP 配置](https://code.visualstudio.com/docs/agent-customization/mcp-servers)。
- [Gemini CLI MCP 配置](https://geminicli.com/docs/tools/mcp-server/)。
- [DeepSeek Harness 插件打包](https://deepseek-harness.github.io/deepseek-harness/en/develop/basic/publish)、[MCP client](https://github.com/deepseek-ai/deepseek-harness/blob/master/packages/mcp/mcp-client/README.md)。
2 changes: 1 addition & 1 deletion docs/接入约定.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@

本仓库维护外部 Agent 的连接、安装与使用引导。Quicker 提供动作工具、实时知识、草稿存储和审批。各平台适配遵循本文,平台交付要求见[新增平台](新增平台.md)。

Codex 插件 0.1.1 已通过原生安装及真实 Quicker Debug 草稿编写、保存和预览验收,Cursor、Claude Code 与通用 MCP 安装器现由同一共享源码生成。使用前确认 Quicker 的设置 → Agent 中有「启用 MCP」入口,并使用包含默认技能包发现修复的新构建;不能仅凭 `2.3.0` 版本号判断兼容。
Codex 插件 0.1.1 已通过原生安装及真实 Quicker Debug 草稿编写、保存和预览验收,Cursor、Claude Code、DeepSeek Harness 与通用 MCP 安装器现由同一共享源码生成。使用前确认 Quicker 的设置 → Agent 中有「启用 MCP」入口,并使用包含默认技能包发现修复的新构建;不能仅凭 `2.3.0` 版本号判断兼容。

Release 支持已实现,待包含这些变更的正式版发布;已发布旧版没有 MCP 入口时仍不可用。新构建的 Debug / Release 均默认关闭 MCP,由用户在设置中启用;安装插件不会开启服务或写入权限。具体构建、测试与正式发布情况见[兼容性说明](兼容性.md)。

Expand Down
2 changes: 1 addition & 1 deletion docs/新增平台.md
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

## 共享的时机

当前 shared/ 保存转接与技能唯一源码,sync-packages.py 复制到 Codex / Cursor / Claude / 通用 MCP 安装单元。平台身份由受限 Client 参数指定;清单与重载方式各自维护。
当前 shared/ 保存转接与技能唯一源码,sync-packages.py 复制到 Codex / Cursor / Claude / 通用 MCP / DeepSeek Harness 安装单元。平台身份由受限 Client 参数指定;清单与重载方式各自维护。

若提取到 `shared/`,指定唯一源码,通过一个确定的打包步骤复制到各安装单元;验证复制结果与源码一致,并测试最终包。不要手工维护多份转接实现,也不要为尚未开发的平台预建抽象框架。

Expand Down
2 changes: 1 addition & 1 deletion plugins/quicker-claude/scripts/quicker-mcp.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ param(
[string]$SettingsPath = '',
[ValidateRange(1, 600)]
[int]$RequestTimeoutSeconds = 180,
[ValidateSet('codex', 'cursor', 'claude', 'vscode', 'gemini')]
[ValidateSet('codex', 'cursor', 'claude', 'vscode', 'gemini', 'dsh')]
[string]$Client = 'codex',
[switch]$Check
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ The relay reads the current port and token from the local Quicker configuration
- Write tools absent: enable 允许 MCP 写入 in Quicker, keep the existing approval mode, then reconnect or start a new agent task.
- A write timeout can leave an unknown outcome: inspect the slot before retrying.

After installation/update, reload the client and create a new task. Cursor IDE: Developer: Reload Window; Cursor CLI: restart agent. Claude Code: /reload-plugins or restart. VS Code: MCP: List Servers → Quicker → Restart. Gemini CLI: restart.
After installation/update, reload the client and create a new task. Cursor IDE: Developer: Reload Window; Cursor CLI: restart agent. Claude Code: /reload-plugins or restart. VS Code: MCP: List Servers → Quicker → Restart. Gemini CLI: restart. DeepSeek Harness: restart `dsh web` or the desktop app after `dsh plugin add`.

Plugins ship their own relay. Cursor and Claude expand their respective plugin-root variables; Codex uses package-relative cwd. Generic MCP configuration points at the installed copy, never the development checkout. Do not edit server.json or clients.json to grant access.
2 changes: 1 addition & 1 deletion plugins/quicker-cursor/scripts/quicker-mcp.ps1
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ param(
[string]$SettingsPath = '',
[ValidateRange(1, 600)]
[int]$RequestTimeoutSeconds = 180,
[ValidateSet('codex', 'cursor', 'claude', 'vscode', 'gemini')]
[ValidateSet('codex', 'cursor', 'claude', 'vscode', 'gemini', 'dsh')]
[string]$Client = 'codex',
[switch]$Check
)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@ The relay reads the current port and token from the local Quicker configuration
- Write tools absent: enable 允许 MCP 写入 in Quicker, keep the existing approval mode, then reconnect or start a new agent task.
- A write timeout can leave an unknown outcome: inspect the slot before retrying.

After installation/update, reload the client and create a new task. Cursor IDE: Developer: Reload Window; Cursor CLI: restart agent. Claude Code: /reload-plugins or restart. VS Code: MCP: List Servers → Quicker → Restart. Gemini CLI: restart.
After installation/update, reload the client and create a new task. Cursor IDE: Developer: Reload Window; Cursor CLI: restart agent. Claude Code: /reload-plugins or restart. VS Code: MCP: List Servers → Quicker → Restart. Gemini CLI: restart. DeepSeek Harness: restart `dsh web` or the desktop app after `dsh plugin add`.

Plugins ship their own relay. Cursor and Claude expand their respective plugin-root variables; Codex uses package-relative cwd. Generic MCP configuration points at the installed copy, never the development checkout. Do not edit server.json or clients.json to grant access.
21 changes: 21 additions & 0 deletions plugins/quicker-dsh/LICENSE
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
MIT License

Copyright (c) 2026 QuickerOrg

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.
Loading
Loading