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, and stderr.
  • Shell injection protection: The binary is executed directly via execFile instead 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 login configuration, ~/.asc/config.json, or ASC_* environment variables, so repeated logins are not required.
  • Built-in safety guardrails: Destructive operations still require confirmation via asc’s own --confirm parameter.

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"]
  • “Upload this build to TestFlight”
    • Corresponding call: asc: ["builds", "upload", "--app", "123", "--ipa", "build.ipa"]
  • “Pull localized metadata for this app”
    • Corresponding call: asc: ["metadata", "pull", "--app", "123"]
  • “Check my current asc auth status”
    • Corresponding call: asc: ["auth", "status"]

Use Cases and Notes

  • Prerequisite dependency: The plugin depends on the locally installed asc binary. It can be installed with curl -fsSL https://asccli.sh/install | bash or brew install asc.
  • Authentication requirement: Before invocation, asc auth login must be completed, or the corresponding environment variables (such as ASC_KEY_ID, ASC_ISSUER_ID, and ASC_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 stdout buffer 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