dsh-asc
Manifest validApp Store Connect CLI (asc) as a native tool for DeepSeek Harness — structured argv, JSON output, no-shell execution.
dsh-asc
App Store Connect CLI (
asc) as a native tool for DeepSeek Harness (DSH).
dsh-asc registers a single agent tool, asc, that wraps the open-source
App Store Connect CLI (rorkai/App-Store-Connect-CLI)
binary — 76 top-level command groups backed by 1,200+ App Store Connect API
endpoints: TestFlight, build uploads, App Store releases, Apple Ads, code
signing, screenshots, metadata & keywords, subscriptions, analytics, Xcode
Cloud, marketplace resources, and alternative distribution.
The tool takes structured arguments (an argv token array) and returns asc's JSON output losslessly. No shell is involved, so a model-supplied argument list can never be interpreted as shell commands.
Features
- Structured invocation — pass
["apps","list"]instead of a free-form string. - JSON out by default — asc auto-detects non-interactive mode and emits JSON; you get
{ ok, exitCode, stdout, stderr }. - Shell-injection safe — runs via
execFile('asc', argv)with no shell. - Built-in safety rails — destructive operations still require asc's explicit
--confirm. - Shared auth — reuses
asc auth login,~/.asc/config.json, orASC_*env vars from the host environment.
Requirements
ascinstalled locally:curl -fsSL https://asccli.sh/install | bashorbrew install asc- Authenticated:
asc auth login(or setASC_KEY_ID/ASC_ISSUER_ID/ASC_PRIVATE_KEY/ASC_PRIVATE_KEY_B64)
Install
# local checkout
dsh plugin --profile web add ./dsh-asc
# from GitHub
dsh plugin --profile web add github:Tangweiwei227/dsh-asc
Then restart dsh web (or your profile). New sessions get the asc tool.
Usage
Just ask your agent in natural language — it will call the asc tool:
- "List the apps on my account"
- "Upload this build to TestFlight"
- "Pull localized metadata for this app"
- "Check my current asc auth status"
Under the hood the agent calls:
asc: ["apps", "list"]
asc: ["builds", "upload", "--app", "123", "--ipa", "build.ipa"]
asc: ["metadata", "pull", "--app", "123"]
asc: ["auth", "status"]
How it works
- The plugin is a plain Cordis plugin:
inject = ['tools']waits for the tools service, thenctx.tools.register(defineTool({...}))publishes theasctool into the global registry. execFile('asc', argv)runs the binary with no shell, so arguments are never interpreted as a command line.- asc emits JSON when stdout is not a TTY; results pass through verbatim.
- Tool timeout is 300 s to leave room for long-running upload/wait workflows; stdout buffer is capped at 64 MB.
Development
pnpm install
pnpm build # src/ → lib/
pnpm check # type-check + build
License
MIT — see LICENSE. The asc CLI itself is MIT-licensed by its authors.
Comments
Loading…
From the same category
by awesome-dsh-plugin
A curated list of plugins for DeepSeek Harness (dsh) · DeepSeek Harness 插件精选列表
★ 17.8k
CC0-1.0
Python
Oct 1, 2026
by 0xsline
DeepSeek Harness (DSH) ecosystem: curated plugins, tools, and infrastructure from dsh-external/hub and the public dsh-plugin topic.
★ 1.1k
CC0-1.0
Python
Sep 30, 2026
by pax-beehive
Open-source CLI, schemas, resolver, and DSH agent tools for DSH Plugin Hub
★ 458
MIT
TypeScript
Sep 22, 2026
by yjh051108
推荐组件(非必须):DeepSeek Harness 运行时注入器;已随 dsh-routing-suite 单仓库化保留,本仓库继续维护/发布。
★ 167
TypeScript
Sep 18, 2026
dsh plugin --profile web add @dsh-external/dsh-super-injectorby xiajiajun516
DeepSeek Harness (DSH) backup & restore plugin — export, import, migrate and sync your complete DSH configuration, plugins, MCP servers, skills and workspace. One-click migration to another machine.
★ 150
MIT
TypeScript
Sep 30, 2026
dsh plugin --profile web add dsh-config-managerby jigjoy-ai
A CLI that turns a goal into a pull request - and a sandbox for testing concurrent AI coding agents on the Mozaik runtime.
★ 124
MIT
TypeScript
Oct 2, 2026