rorkai/app-store-connect-cli-skills is a community-maintained collection of Agent Skills for using the asc command-line tool with Apple App Store Connect and Apple Ads. It helps coding agents automate builds, TestFlight, metadata, submissions, signing, and advertising workflows.
Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx skills add rorkai/app-store-connect-cli-skills --skill asc-signing-setupgit clone --depth 1 https://github.com/rorkai/app-store-connect-cli-skillsWrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/rorkai/app-store-connect-cli-skills/asc-signing-setup)<a href="https://agentmods.dev/skills/rorkai/app-store-connect-cli-skills/asc-signing-setup"><img src="https://agentmods.dev/badge/skills/rorkai/app-store-connect-cli-skills/asc-signing-setup/github.svg" alt="Measured on agentmods" height="20"></a>Or the 80×15 button, for a site that already has a row of RSS and ATOM ones. Only the verdict fits; the numbers stay here.
<a href="https://agentmods.dev/skills/rorkai/app-store-connect-cli-skills/asc-signing-setup"><img src="https://agentmods.dev/badge/skills/rorkai/app-store-connect-cli-skills/asc-signing-setup.svg" alt="Reviewed on agentmods" width="80" height="20"></a>- Socket pass
- Snyk pass
- NVIDIA SkillSpector warn
SkillSpector: 3 findings, up to medium
These are SkillSpector’s own severities. On a checked sample its high-severity flags on skills were ~96% false positives — a documented command, a public API, a “never do X” rule — so we show them as a caution to read, not a verdict. Why →
- medium Privilege Escalation · line 82 Commands invoke sudo or root privileges. Verify this elevated access is necessary and justified.Fix: Avoid sudo/root unless strictly required. Prefer least-privilege patterns. If elevation is needed, document the justification and scope.
- medium Rogue Agent · line 155 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
- medium Rogue Agent · line 155 Skill establishes unauthorized persistence across sessions via cron jobs, startup scripts, or state files. Session persistence allows an attacker to maintain access beyond the current interaction.Fix: Remove any persistence mechanisms (cron jobs, startup scripts, state files). Skills should not maintain state across sessions without explicit user consent.
What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5.1 | $0.00046 | $0.02103 |
| Opus 5 | $0.00023 | $0.01052 |
| Sonnet 5 | $0.00009 | $0.00421 |
| Haiku 4.5 | $0.00005 | $0.00210 |
Grade B, and why
asc-signing-setup scanned grade B with 1 finding against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 11d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Asks for rootmediumPrivilege escalation
A mod that escalates privileges can change anything on the machine, not only the project.
chmod 600 "./signing-sync-password" "./distribution.p12" "./distribution-p12-password" Copies of this mod
1 near-identical copy found in the catalogue:
- asc-signing-setup — 100% identical, 0 lines differ
How it starts
The opening of the file, as written. The whole thing — 169 lines — stays where its author put it; the contents beside it link to each section on GitHub.
asc signing setup
Use this skill when you need to create or renew signing assets for iOS/macOS apps.
Preconditions
- Auth is configured (
asc auth loginorASC_*env vars). - You know the bundle identifier and target platform.
- You have a CSR file for certificate creation, or you will let
asc certificates create --generate-csrcreate one.
Workflow
- Create or find the bundle ID:
asc bundle-ids list --paginateasc bundle-ids create --identifier "com.example.app" --name "Example" --platform IOS
- Configure bundle ID capabilities:
asc bundle-ids capabilities list --bundle "BUNDLE_ID"asc bundle-ids capabilities add --bundle "BUNDLE_ID" --capability ICLOUD- Add capability settings when required:
--settings '[{"key":"ICLOUD_VERSION","options":[{"key":"XCODE_6","enabled":true}]}]'
- For the Developer Portal-only
PRIVATE_CLOUD_COMPUTEcapability, use a user-owned web session and the Developer Portal Bundle ID resource ID:asc web bundle-ids capabilities enable --bundle-id "BUNDLE_RESOURCE_ID" --capability PRIVATE_CLOUD_COMPUTE --confirm- This capability is not available through the public App Store Connect
capability enum. If the cached session cannot access Developer Portal,
clear its scoped cache, then log in again with the same binary:
asc web auth logout --apple-id "[email protected]"asc web auth login --apple-id "[email protected]"
- For App Groups, the public API can enable
APP_GROUPSbut cannot create or associate App Group resources. Use an Account Holder or Admin web session:asc web app-groups list --paginate --output tableasc web app-groups create --name "Example Shared" --identifier "group.com.example.app.shared" --confirmasc web app-groups assign --group "GROUP_RESOURCE_ID" --bundle-id "BUNDLE_RESOURCE_ID" --confirm- Resolve the opaque group ID with
asc web app-groups listand the opaque Bundle ID resource ID withasc bundle-ids list. A changed assignment invalidates provisioning profiles containing that App ID, so regenerate affected profiles before the next signed build.
- Create a signing certificate:
asc certificates list --certificate-type IOS_DISTRIBUTIONasc certificates create --certificate-type IOS_DISTRIBUTION --csr "./cert.csr"- Or generate a key and CSR inline:
asc certificates create --certificate-type IOS_DISTRIBUTION --generate-csr --key-out "./signing/dist.key" --csr-out "./signing/dist.csr"
- For Wallet passes, create the Pass Type ID first, then create its certificate:
asc pass-type-ids create --identifier "pass.com.example" --name "Example Pass"asc certificates create --certificate-type PASS_TYPE_ID --pass-type-id "PASS_TYPE_ID" --csr "./pass.csr"asc pass-type-ids certificates list --pass-type-id "PASS_TYPE_ID" --paginate
- Create a provisioning profile:
asc profiles create --name "AppStore Profile" --profile-type IOS_APP_STORE --bundle "BUNDLE_ID" --certificate "CERT_ID"- Include devices for development/ad-hoc:
asc profiles create --name "Dev Profile" --profile-type IOS_APP_DEVELOPMENT --bundle "BUNDLE_ID" --certificate "CERT_ID" --device "DEVICE_ID"
- Download the profile:
asc profiles download --id "PROFILE_ID" --output "./profiles/AppStore.mobileprovision"
- Inspect and install the downloaded profile locally when needed:
asc profiles inspect --path "./profiles/AppStore.mobileprovision" --output tableasc profiles inspect --path "./profiles/AppStore.mobileprovision" --entitlements --output markdownasc profiles local install --path "./profiles/AppStore.mobileprovision"asc profiles local list --output table- On macOS, the default directory follows the active Xcode: Xcode 16 or newer uses
~/Library/Developer/Xcode/UserData/Provisioning Profiles; Xcode 15 or older uses~/Library/MobileDevice/Provisioning Profiles. Hosts without a full active Xcode fall back to the legacy directory and print a note to stderr. - Pass
--install-dirwhen automation must target a fixed directory.
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 11d ago First seen · 169 lines · 46 tokens per session scan B 540d65401b7a
asc-signing-setup is a skill published in the GitHub repository rorkai/app-store-connect-cli-skills (1,024 stars, last pushed 3d ago), licensed MIT. It adds 46 tokens to every session and 2,103 once invoked, about $0.0002 per session on Opus 5. A static security scan graded it B with 1 finding (asks for root). No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
app-rejection-recovery
Diagnoses App Store rejections, drafts Resolution Center responses, and plans the fix for resubmission. Use when the user says "my app was rejected", "Apple rejected my app", "App Review rejection", "guideline violation", "Resolution Center response", "guideline 2.1", "guideline 4.3", "guideline 5.1.1", "binary…
asc-submission
Prepare an app for App Store submission or TestFlight distribution using the App Store Connect MCP server. Use when user says "prepare submission", "submit to app store", "prepare for review", "update metadata", "set what's new", "check submission readiness", "distribute to testflight", or wants to manage App Store…
asc-build-check
Check the latest CI build status and debug failures using the App Store Connect MCP server. Use when user says "check build", "what broke", "CI status", "build failing", or asks about recent build failures. Also use for signing issues, provisioning profiles, bundle ID capabilities, or Developer Portal queries.
review-management
Pull, cluster, triage, and respond to App Store reviews via the App Store Connect MCP. Use when you need to fetch recent reviews, analyze sentiment, draft developer responses, track recurring themes as product signals, or close the loop on a rating recovery campaign. Trigger phrases: "triage reviews", "respond to…
asc-audit
Read-only drift check between live App Store Connect state, the repo, and whatever launch/submission docs claim. Use before quoting any build/version/TestFlight number back to the user, before trusting a canonical "where we stand" doc block, and as the required first step of submission-preflight before any submit.…
submission-preflight
Pre-submission risk audit for App Store review — catch the rejection triggers (metadata, privacy, IAP, design, account, legal) BEFORE you submit, by app type. Use when the user says "preflight", "will this get rejected", "check before submitting", "review readiness", "submission checklist", "App Review guidelines"…