About asc-game-center
asc-game-center is a skill for managing Game Center configuration, achievements, and leaderboards through the App Store Connect API. It guides developers through CLI workflows with ready-to-run commands embedded in JSON responses.
Key features
- 01Retrieve app Game Center details
- 02List, create, and delete achievements
- 03List, create, and delete leaderboards
- 04Navigate using generated command affordances
- 05Format output as JSON or tables
Use cases
- 01Set up Game Center for an app
- 02Review existing achievements and leaderboards
- 03Add or remove achievements and leaderboards
Install
Copy the command and run it in a terminal.
npx skills add https:/ / github.com/ tddworks/ asc-cli-skills --skill asc-game-centerAfter installing, type/asc-game-centerin Claude Code to confirm it loaded.
Details
From the project READMEGame Center with asc
Manage Game Center detail, achievements, and leaderboards through the App Store Connect API.
Authentication
asc auth login --key-id <id> --issuer-id <id> --private-key-path ~/.asc/AuthKey.p8
How to Navigate (CAEOAS Affordances)
Every JSON response contains an "affordances" field with ready-to-run commands — IDs already filled in. Start from the Game Center detail and navigate to achievements and leaderboards.
{
"id": "gc-abc123",
"appId": "6443417124",
"isArcadeEnabled": false,
"affordances": {
"getDetail": "asc game-center detail get --app-id 6443417124",
"listAchievements": "asc game-center achievements list --detail-id gc-abc123",
"listLeaderboards": "asc game-center leaderboards list --detail-id gc-abc123"
}
}
Typical Workflow
Set up Game Center for an app
# 1. Get the Game Center detail (find the detail ID)
asc game-center detail get --app-id 6443417124 --pretty
# 2. List existing achievements
asc game-center achievements list --detail-id gc-abc123 --pretty
# 3. Create a new achievement
asc game-center achievements create \
--detail-id gc-abc123 \
--reference-name "First Steps" \
--vendor-identifier first_steps \
--points 10 \
--pretty
# 4. Create a leaderboard
asc game-center leaderboards create \
--detail-id gc-abc123 \
--reference-name "All Time High" \
--vendor-identifier all_time_high \
--score-sort-type DESC \
--submission-type BEST_SCORE \
--pretty
View all Game Center content at a glance
DETAIL_ID=$(asc game-center detail get --app-id APP_ID | jq -r '.data[0].id')
asc game-center achievements list --detail-id "$DETAIL_ID" --output table
asc game-center leaderboards list --detail-id "$DETAIL_ID" --output table
Clean up — delete an achievement
# Copy the delete affordance from the achievement and run it
asc game-center achievements delete --achievement-id ach-abc123
Commands
asc game-center detail get
Get Game Center configuration for an app.
| Flag | Required | Description |
|---|---|---|
--app-id | yes | App Store Connect app ID |
--output table|json | no | Output format (default: json) |
--pretty | no | Pretty-print JSON |
asc game-center detail get --app-id 6443417124 --pretty
asc game-center detail get --app-id 6443417124 --output table
asc game-center achievements list
List all achievements for a Game Center detail.
| Flag | Required | Description |
|---|---|---|
--detail-id | yes | Game Center detail ID |
--output table|json | no | Output format |
--pretty | no | Pretty-print JSON |
asc game-center achievements list --detail-id gc-abc123 --pretty
asc game-center achievements list --detail-id gc-abc123 --output table
asc game-center achievements create
Create a new achievement.
| Flag | Required | Description |
|---|---|---|
--detail-id | yes | Game Center detail ID |
--reference-name | yes | Internal reference name |
--vendor-identifier | yes | Unique identifier (e.g. first_steps) |
--points | yes | Point value for the achievement |
--show-before-earned | no | Show achievement before earned (flag) |
--repeatable | no | Achievement can be earned multiple times (flag) |
--pretty | no | Pretty-print JSON |
asc game-center achievements create \
--detail-id gc-abc123 \
--reference-name "Speed Runner" \
--vendor-identifier speed_runner \
--points 50 \
--repeatable
asc game-center achievements delete
Delete an achievement.
| Flag | Required | Description |
|---|---|---|
--achievement-id | yes | Achievement ID to delete |
asc game-center achievements delete --achievement-id ach-abc123
asc game-center leaderboards list
List all leaderboards for a Game Center detail.
| Flag | Required | Description |
|---|---|---|
--detail-id | yes | Game Center detail ID |
--output table|json | no | Output format |
--pretty | no | Pretty-print JSON |
asc game-center leaderboards list --detail-id gc-abc123 --output table
asc game-center leaderboards create
Create a new leaderboard.
| Flag | Required | Description |
|---|---|---|
--detail-id | yes | Game Center detail ID |
--reference-name | yes | Internal reference name |
--vendor-identifier | yes | Unique identifier (e.g. all_time_high) |
--score-sort-type | yes | ASC or DESC |
--submission-type | yes | BEST_SCORE or MOST_RECENT_SCORE |
--pretty | no | Pretty-print JSON |
asc game-center leaderboards create \
--detail-id gc-abc123 \
--reference-name "Speed Run" \
--vendor-identifier speed_run \
--score-sort-type ASC \
--submission-type MOST_RECENT_SCORE
asc game-center leaderboards delete
Delete a leaderboard.
| Flag | Required | Description |
|---|---|---|
--leaderboard-id | yes | Leaderboard ID to delete |
asc game-center leaderboards delete --leaderboard-id lb-abc123
Domain Models
GameCenterDetail — Game Center configuration for an app
id— Game Center detail IDappId— parent App ID (injected from request, not returned by API)isArcadeEnabled— whether Apple Arcade is enabled- Affordances:
getDetail,listAchievements,listLeaderboards
GameCenterAchievement — A single Game Center achievement
id— achievement IDgameCenterDetailId— parent detail ID (injected)referenceName— internal namevendorIdentifier— unique bundle-style identifierpoints— point valueisShowBeforeEarned— visible before earnedisRepeatable— can be earned multiple timesisArchived— whether archived- Affordances:
listAchievements,delete
GameCenterLeaderboard — A single Game Center leaderboard
id— leaderboard IDgameCenterDetailId— parent detail ID (injected)referenceName— internal namevendorIdentifier— unique identifierscoreSortType—ASCorDESCsubmissionType—BEST_SCOREorMOST_RECENT_SCOREisArchived— whether archived- Affordances:
listLeaderboards,delete
Full Command Reference
See commands.md for all flags and examples.