DeepSeek Harness (DSH) extends its capabilities through a plugin mechanism. Developers often need to integrate existing command-line tools into agent workflows to enable automated operations. The dsh-asc plugin achieves this goal by registering asc (App Store Connect CLI) as a native DSH tool, allowing the agent to directly call App Store Connect APIs.
Overview¶
This plugin is maintained by Tangweiwei227. It is a pure plugin that runs within the DSH process context and invokes the local asc binary through execFile. asc itself supports 76 top-level command groups and more than 1,200 App Store Connect API endpoints, covering scenarios such as TestFlight, build uploads, App Store releases, Apple Ads, code signing, screenshots, metadata, subscriptions, analytics, Xcode Cloud, market resources, and alternative distribution.
Core Features¶
- Structured invocation: The agent passes array parameters (e.g.,
["apps", "list"]) instead of free-form strings, avoiding parsing ambiguity. - JSON output: Non-interactive mode is enabled by default, returning standard JSON data that includes
ok,exitCode,stdout, andstderr. - Shell injection protection: The binary is executed directly via
execFileinstead of through a Shell, ensuring that model-generated parameter lists do not become Shell commands. - Shared authentication: It reuses the host environment’s
asc auth loginconfiguration,~/.asc/config.json, orASC_*environment variables, so repeated logins are not required. - Built-in safety guardrails: Destructive operations still require confirmation via
asc’s own--confirmparameter.
Installation and Enablement¶
Before installation, make sure the asc CLI is installed locally.
# 安装插件
dsh plugin --profile web add github:Tangweiwei227/dsh-asc
After installation, restart dsh web (or the corresponding profile). New sessions can then use the asc tool.
Typical Usage¶
In conversations, natural language alone can trigger tool calls. Under the hood, the agent converts natural language requests into asc array parameters:
- “List the apps on my account”
- Corresponding call:
asc: ["apps", "list"]
- Corresponding call:
- “Upload this build to TestFlight”
- Corresponding call:
asc: ["builds", "upload", "--app", "123", "--ipa", "build.ipa"]
- Corresponding call:
- “Pull localized metadata for this app”
- Corresponding call:
asc: ["metadata", "pull", "--app", "123"]
- Corresponding call:
- “Check my current asc auth status”
- Corresponding call:
asc: ["auth", "status"]
- Corresponding call:
Use Cases and Notes¶
- Prerequisite dependency: The plugin depends on the locally installed
ascbinary. It can be installed withcurl -fsSL https://asccli.sh/install | bashorbrew install asc. - Authentication requirement: Before invocation,
asc auth loginmust be completed, or the corresponding environment variables (such asASC_KEY_ID,ASC_ISSUER_ID, andASC_PRIVATE_KEY) must be configured. - Timeout limit: The tool execution timeout is set to 300 seconds, suitable for most build upload and waiting workflows.
- Output limit: The
stdoutbuffer limit is 64 MB.
dsh-asc seamlessly integrates the capabilities of the asc CLI into the DSH ecosystem through structured invocation and security-oriented design, making it suitable for developers who need to automate App Store Connect operations.
- GitHub: https://github.com/Tangweiwei227/dsh-asc