dsh-plugin
DayuanJiang/next-ai-draw-iodsh 的 draw.io 绘图插件:通过 next-ai-drawio MCP 服务器作图,点回复里的链接在右侧栏打开实时预览,可以手动修改图,AI 的每次修改都是可以恢复的版本。需 Node.js 18+,首次使用由 npx 下载 MCP 服务器。
DSH 的 Xcode AI 集成:26 个 Xcode MCP 工具(mcpbridge)+ Apple 平台技能 + Xcode Intelligence 风格 persona(agent preset 或全局 bundle)。
Xcode AI integration mode for DeepSeek Harness (dsh) — an agent preset + installer that gives your DSH sessions the full Xcode AI stack:
mcp__xcode__*) via Apple's official mcpbridgeIDEIntelligenceChat prompt templates📌
dsh-plugintopic repo. DeepSeek Harness is in developer preview — pin an exactdshversion for your automation.
The three capabilities map onto three different DSH mechanisms:
| Layer | Capability | DSH mechanism |
|---|---|---|
| Execute | 26 mcp__xcode__* tools | dsh-mcp-client (mounted inside the preset) |
| Knowledge | 10 Apple skills | dsh-skill-filesystem (global, lazy-loaded) |
| Behavior | Xcode Intelligence persona | agent preset (this repo) |
Wiring the MCP server globally would put ~26 large tool schemas (~6k+ tokens/request) into every session. Mounting it inside a preset keeps the cost only in sessions that opt in — pick Apple Mode when creating a session, and you get the whole stack; other sessions stay lean.
install.sh — see Version compatibility.mcpbridge and xcrun agent skills export). To use the MCP tools, Xcode must be running with the target project open, and you must click Allow on the MCP access dialog Xcode shows (see Usage).Install the plugin with the plugin manager. Its bundle patch declares the Apple Mode agent preset:
dsh plugin --profile web add "github:jihongboo/dsh-apple-mode"
Pin a released version by appending a tag — recommended for reproducibility, since an install without a tag tracks the default branch:
dsh plugin --profile web add "github:jihongboo/dsh-apple-mode#v1.1.1"
(In the desktop app: Settings → Plugins → install from GitHub.) Restart DSH, then pick Apple Mode when creating a session.
About the plugin manager's pnpm warning. This package is configuration-only — no
scripts, no dependencies, no build step (seepackage.json). If a registry page warns that pnpm ≥ 10 refuses to run git-dependencypreparescripts and suggests addingallowBuildstopnpm-workspace.yaml, you can safely skip it: there is nothing to build or execute, and granting it would only widen the authorization surface for no benefit. Publishing to npm (see docs/publishing.md) removes the warning entirely.
Then generate the Apple skills locally — the plugin deliberately does not redistribute them:
git clone https://github.com/jihongboo/dsh-apple-mode.git
cd dsh-apple-mode
./install.sh --skills-only
git clone https://github.com/jihongboo/dsh-apple-mode.git
cd dsh-apple-mode
./install.sh
install.sh then does three things:
mcpbridge (see below).~/.dsh/.agent-presets/apple/ (existing copy is backed up).xcrun agent skills export into ~/.agents/skills/.Why no vendored skills? The skills are Apple-authored guidance. Generating them from your own Xcode at install time avoids redistributing Apple content — the repo ships only our own code, config, and docs.
DSH 0.2 renamed and reworked agent presets: a preset is now a @deepseek-ai/dsh-agent-preset row declared by a bundle patch, and the registry no longer scans directories.
| DSH | Preset mechanism | How to get Apple Mode here |
|---|---|---|
| 0.2.0+ (desktop) | @deepseek-ai/dsh-agent-preset rows from a bundle patch | dsh plugin --profile web add "github:jihongboo/dsh-apple-mode" |
0.1.x (older npx/brew) | on-disk directories under ~/.dsh/.agent-presets/<id>/ | ./install.sh |
Skills are discovered from ~/.agents/skills on both versions, so ./install.sh --skills-only works everywhere.
If you have several Xcode versions (e.g. Xcode.app, Xcode-beta.app, Xcode-26.2.app), mcpbridge lives in each one's Contents/Developer/usr/bin — and only in Xcode 26+.
DSH 0.2.0+: the preset's MCP row runs xcrun mcpbridge, so the Xcode comes from xcode-select:
sudo xcode-select -s /Applications/Xcode-26.2.app/Contents/Developer # switch globally
DEVELOPER_DIR=/Applications/Xcode-beta.app/Contents/Developer dsh web # or per launch
To drive a specific running Xcode instance, add env: { MCP_XCODE_PID: '<pid>' } to the mcp-xcode row inside the preset (edit cordis.patch.yml in this repo, or override the preset-apple row from your profile patch).
DSH 0.1.x: install.sh scans /Applications for every install that provides mcpbridge and prompts you to pick:
Found Xcode installs providing mcpbridge:
1) /Applications/Xcode-beta.app/Contents/Developer (xcode-select default)
2) /Applications/Xcode.app/Contents/Developer
Choose (1-2, default 1):
xcode-select → the preset uses command: xcrun mcpbridge (portable; follows future xcode-select changes).…/Contents/Developer/usr/bin/mcpbridge is baked into the installed preset as an absolute path../install.sh --xcode /Applications/Xcode.app (or --xcode …/Contents/Developer); ./install.sh --list-xcodes prints the candidates../install.sh --runtime-selectable installs bin/mcpbridge as the command; set DSH_XCODE_DEVELOPER_DIR=/Applications/…/Contents/Developer when launching dsh to switch. (Resolution: DSH_XCODE_DEVELOPER_DIR → xcrun → newest /Applications/Xcode*.app.)To change the choice later: re-run ./install.sh, edit the mcp-xcode row in ~/.dsh/.agent-presets/apple/agent.cordis.yml, or use the runtime env var above.
The preset keeps the ~26 tool schemas scoped to Apple Mode sessions. To get the Xcode MCP tools in every session instead, insert the client row in your profile patch (~/.dsh/profiles/<profile>/cordis.patch.yml):
- insert:
- id: mcp-xcode
name: '@deepseek-ai/dsh-mcp-client'
config:
serverName: xcode
transport: stdio
command: xcrun
args: ['mcpbridge']
toolCallTimeoutMs: 120000
Use one path, not both: two live instances with serverName: xcode collide and the later one fails to load. See docs/global-mcp.md.
dsh (or just open a new session — the preset can only be selected on a blank session).mcp__xcode__* tools — operate the open Xcode workspace: XcodeRead/Write/Update/MV/RM, XcodeGlob/Grep/LS, UpdateTargetBuildSetting/UpdateFileCompilerFlags, XcodeListNavigatorIssues, scheme/run-destination/test-plan switching, XcodeNewTarget, StringCatalogRead/Edit, …Before using the
mcp__xcode__*tools:
- Xcode must be running with the project/workspace you want to work on opened in it.
- On first connection, Xcode shows an MCP access dialog — click Allow (允许). Until you do, tool calls will be rejected.
Build/run/test still happen from the terminal (xcodebuild, pipe through xcsift for structured output); the MCP toolset covers project surgery, build settings, diagnostics, destinations, and localization.
mcp__xcode__*)| Group | Tools |
|---|---|
| Project I/O | XcodeRead XcodeWrite XcodeUpdate XcodeMV XcodeRM XcodeMakeDir |
| Search | XcodeGlob XcodeGrep XcodeLS |
| Targets & settings | XcodeNewTarget XcodeListTemplates XcodeListTargets UpdateTargetBuildSetting UpdateFileCompilerFlags |
| Scheme / destination / tests | XcodeListSchemes XcodeSwitchScheme XcodeListRunDestinations XcodeSwitchRunDestination XcodeListTestPlans XcodeSwitchTestPlan |
| Diagnostics | XcodeListNavigatorIssues XcodeRefreshCodeIssuesInFile |
| Localization | StringCatalogRead StringCatalogEdit |
| Windows | XcodeListWindows XcodeGetCurrentFile |
swiftui-specialist · swiftui-whats-new-27 · app-intents-specialist · app-intents-whats-new-27 · audit-xcode-security-settings · adopt-c-bounds-safety · uikit-app-modernization · modernize-tests · device-interaction · building-document-based-swiftui-applications
.
├── presets/apple/ # The agent preset: agent.cordis.yml + preset.yml
├── bin/mcpbridge # Runtime-selectable mcpbridge launcher (--runtime-selectable)
├── cordis.patch.yml # Bundle patch: declares the Apple Mode preset (DSH 0.2+)
├── package.json # Bundle manifest (dsh.bundle.patch)
├── docs/
│ ├── XCODE_AI_INTEGRATION.md # Full integration notes (Chinese)
│ ├── global-mcp.md # Alternative: wire the MCP server into every session
│ └── publishing.md # Publishing this package to npm
├── install.sh # Xcode picker + preset install + local skills generation
├── uninstall.sh
└── LICENSE # MIT
./install.sh (picker), ./install.sh --xcode <path> (non-interactive), --runtime-selectable + DSH_XCODE_DEVELOPER_DIR, or add env: { MCP_XCODE_PID: '<pid>' } to the mcp-xcode row to drive a specific running instance. See Choosing an Xcode.persona row text in the same file../install.sh (skills are replaced, preset is backed up).standard preset: diff against node_modules/@deepseek-ai/dsh/config/agent-presets/standard/agent.cordis.yml.XcodeUpdate/XcodeWrite modify real Xcode project files (including project.pbxproj).install.sh.PRs welcome. Open an issue for feature requests. If you publish your own DSH extension, add the dsh-plugin topic for discoverability and consider submitting it to awesome-dsh-plugin.
MIT. The Xcode AI skills are generated on your machine from your own Xcode installation and remain subject to Apple's license; the persona prompt style is adapted from Xcode Intelligence templates (behavioral guidance, not Apple source text).