asc-users
Manage App Store Connect team members and user invitations using the `asc` CLI tool. Use this skill when: (1) Listing team members with their roles (`asc users list`) (2) Filtering members by role (`asc users list --role DEVELOPER`) (3) Updating or replacing a member's roles (asc users update --user-id ID --role ADMIN) (4) Revoking or removing access for a departing employee (asc users remove --user-id ID) (5) Listing pending invitations (asc user-invitations list) (6) Inviting a new team member by email (asc user-invitations invite) (7) Cancelling a pending invitation (asc user-invitations cancel) (8) User says "revoke access", "remove team member", "offboard user", "invite developer", "add someone to App Store Connect", "manage team roles", "who has admin access", "grant access", "onboard", or any team/user management task in App Store Connect
NPX Install
npx skill4agent add tddworks/asc-cli-skills asc-usersTags
Translated version includes tags in frontmatterSKILL.md Content
View Translation Comparison →Team Members & Invitations with asc
ascAuthentication
asc auth login --key-id <id> --issuer-id <id> --private-key-path ~/.asc/AuthKey.p8CAEOAS — Affordances Guide Next Steps
"affordances"{
"id": "u-abc123",
"username": "jdoe@example.com",
"roles": ["DEVELOPER", "APP_MANAGER"],
"affordances": {
"remove": "asc users remove --user-id u-abc123",
"updateRoles": "asc users update --user-id u-abc123 --role DEVELOPER --role APP_MANAGER"
}
}{
"id": "inv-xyz789",
"email": "new@example.com",
"roles": ["DEVELOPER"],
"affordances": {
"cancel": "asc user-invitations cancel --invitation-id inv-xyz789"
}
}Available Roles
--roleADMINFINANCEACCOUNT_HOLDERSALESMARKETINGAPP_MANAGERDEVELOPERACCESS_TO_REPORTSCUSTOMER_SUPPORTCREATE_APPSCLOUD_MANAGED_DEVELOPER_IDCLOUD_MANAGED_APP_DISTRIBUTIONGENERATE_INDIVIDUAL_KEYSTypical Workflows
Offboard a departing employee
DEPARTED_EMAIL="former@example.com"
# Check for an active team member
USER_ID=$(asc users list | jq -r --arg e "$DEPARTED_EMAIL" \
'.data[] | select(.username == $e) | .id')
if [ -n "$USER_ID" ]; then
asc users remove --user-id "$USER_ID"
echo "Access revoked."
else
# Check for a pending invitation that hasn't been accepted yet
INV_ID=$(asc user-invitations list | jq -r --arg e "$DEPARTED_EMAIL" \
'.data[] | select(.email == $e) | .id')
[ -n "$INV_ID" ] && asc user-invitations cancel --invitation-id "$INV_ID"
fiOnboard a new developer
asc user-invitations invite \
--email new-hire@example.com \
--first-name Alex \
--last-name Smith \
--role DEVELOPERPromote a developer to App Manager
# Get the user's ID first
USER_ID=$(asc users list | jq -r '.data[] | select(.username == "dev@example.com") | .id')
# Update replaces all roles — include every role you want them to keep
asc users update --user-id "$USER_ID" --role APP_MANAGER --role DEVELOPERAudit: list all admins
asc users list --role ADMIN --output tableOutput Flags
--pretty # Pretty-print JSON
--output table # Aligned table
--output markdown # Markdown table