About asc-users
A skill for managing App Store Connect team members and invitations with the `asc` CLI. It supports role changes, access removal, and invitation handling, including directory and access-automation workflows.
Key features
- 01List team members by role
- 02Assign or update member roles
- 03Remove team access
- 04Create and cancel invitations
- 05Use response commands with IDs filled in
Use cases
- 01Onboard a developer with a role
- 02Revoke access for a departing employee
- 03Audit administrators
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ tddworks/ asc-cli-skills --skill asc-usersAfter installing, type/asc-usersin Claude Code to confirm it loaded.
Bundled filesreferences/commands.md
Details
From the project READMETeam Members & Invitations with asc
Manage your App Store Connect team: list members, assign roles, revoke access, and control pending invitations. Built for directory integration and automated access workflows.
Authentication
asc auth login --key-id <id> --issuer-id <id> --private-key-path ~/.asc/AuthKey.p8
CAEOAS — Affordances Guide Next Steps
Every JSON response includes "affordances" — ready-to-run commands with IDs pre-filled:
TeamMember affordances:
{
"id": "u-abc123",
"username": "[email protected]",
"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"
}
}
UserInvitationRecord affordances:
{
"id": "inv-xyz789",
"email": "[email protected]",
"roles": ["DEVELOPER"],
"affordances": {
"cancel": "asc user-invitations cancel --invitation-id inv-xyz789"
}
}
Available Roles
Use uppercase values with --role:
ADMIN · FINANCE · ACCOUNT_HOLDER · SALES · MARKETING · APP_MANAGER · DEVELOPER · ACCESS_TO_REPORTS · CUSTOMER_SUPPORT · CREATE_APPS · CLOUD_MANAGED_DEVELOPER_ID · CLOUD_MANAGED_APP_DISTRIBUTION · GENERATE_INDIVIDUAL_KEYS
Typical Workflows
Offboard a departing employee
DEPARTED_EMAIL="[email protected]"
# 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"
fi
Onboard a new developer
asc user-invitations invite \
--email [email protected] \
--first-name Alex \
--last-name Smith \
--role DEVELOPER
Promote a developer to App Manager
# Get the user's ID first
USER_ID=$(asc users list | jq -r '.data[] | select(.username == "[email protected]") | .id')
# Update replaces all roles — include every role you want them to keep
asc users update --user-id "$USER_ID" --role APP_MANAGER --role DEVELOPER
Audit: list all admins
asc users list --role ADMIN --output table
Output Flags
--pretty # Pretty-print JSON
--output table # Aligned table
--output markdown # Markdown table
Full Command Reference
See commands.md for all flags, filters, and examples.