跪拜 Guibai
← All articles
DeepSeek · iOS · VibeCoding

dsh-apple-mode Brings Xcode's Full AI Stack to DeepSeek Harness

By ZacJi ·
Read original on juejin.cn ↗ Google Translate ↗ Alt translation

Xcode's built-in AI support currently only works with Codex, Claude, and Gemini. This plugin opens that same capability stack to any model running inside DeepSeek Harness, giving developers who prefer other models a way to automate project-level Xcode operations that raw filesystem agents get wrong.

Summary

dsh-apple-mode bundles 26 Xcode MCP tools, 10 Apple-authored platform skills, and the Xcode Intelligence persona into an installable DeepSeek Harness mode. The MCP tools let an agent read and write project files through Xcode's own project model instead of raw filesystem access, modify build settings without touching `project.pbxproj`, query the Issue Navigator for diagnostics, and edit String Catalogs directly. The skills layer supplies authoritative, Apple-published guidance on SwiftUI, App Intents, security hardening, and C bounds safety that explicitly overrides the model's prior training.

The plugin ships as a preset rather than a global integration, avoiding a 6k+ token penalty on every unrelated session. An install script detects available Xcode versions, exports skills locally to avoid redistributing Apple's copyrighted content, and supports runtime switching between Xcode installations. The result is a workflow where an agent can pull real compile errors from the Issue Navigator, fix them, and verify the fix, all without copying and pasting error text.

Takeaways
26 MCP tools give an agent direct Xcode project access: reading and writing through Xcode's project model, modifying build settings without touching `project.pbxproj`, and querying the Issue Navigator for live diagnostics.
10 Apple-authored skills cover SwiftUI best practices, App Intents, security auditing, C bounds safety, UIKit modernization, and document-based apps, and are marked to override the model's prior training.
The Xcode Intelligence persona is ported into the preset so the agent defaults to Swift-first, tool-assisted reasoning and classifies requests before acting.
Mounting the toolset as a preset instead of globally saves roughly 6k+ tokens per request on non-Xcode sessions.
Skills are exported locally via `xcrun agent skills export` during installation, avoiding redistribution of Apple's copyrighted content while keeping them up to date.
An install script handles multi-Xcode environments, interactive version selection, and an optional runtime-switchable launcher that targets a specific running Xcode instance by PID.
MCP tool calls bypass DSH's file sandbox and go through tool-level approval; `XcodeUpdate` and `XcodeWrite` modify real project files directly.
Conclusions

Apple has quietly shipped a complete agent-tooling surface inside Xcode — 26 MCP tools, exportable skills, and a documented prompt style — but limited the built-in model integrations to three vendors, leaving the door open for community adapters like this one.

Bundling the tools as a preset rather than a global integration is a cost-conscious design choice that reflects a broader tension in agent tooling: capability versus context budget.

The compliance design — exporting Apple's copyrighted skills locally rather than redistributing them — is a pattern worth copying for any plugin that wraps vendor-authored content.

Concepts & terms
MCP (Model Context Protocol)
A protocol that lets AI models interact with external tools through a standardized interface. Xcode 26 ships `mcpbridge`, an official STDIO bridge that exposes 26 Xcode-specific tools as MCP endpoints.
Agent Preset (Mode)
In DeepSeek Harness, a composable configuration file (`agent.cordis.yml`) that bundles a persona, tool mounts, and skill sets. Users select a preset when creating a new session, and the agent inherits that full capability stack.
String Catalog
Xcode's modern localization file format (`.xcstrings`) that replaces the older `.strings` and `.stringsdict` files. The MCP tools can read keys bucketed by translation status and write translations directly.
Source: juejin.cn ↗ Google Translate ↗ Backup ↗