Your youth-soccer club's schedule, teams, and dues from the terminal — with merged multi-kid agendas, conflict detection, and iCal export no dashboard gives you.
Sprocket Sports CLI wraps your club's Sprocket dashboard API so you can answer the questions a parent actually asks: 'when is the next game' (next), 'what's on this week' (week), 'plan the next two weeks for both kids' (agenda), 'any double-bookings' (conflicts), and 'what do we owe' (owed). It merges every one of your players' teams into a single view the per-team web dashboard can't produce, and exports everything to your phone calendar with ical.
Learn more at Sprocket Sports.
Created by @stellato (Greg Stellato).
Authentication
Sprocket Sports uses OAuth2/OIDC (Duende IdentityServer at login.sprocketsports.com) and the API takes a Bearer access token. This CLI authenticates with that token: set SPROCKET_TOKEN to the access_token from your logged-in dashboard session. To find it: open your club dashboard in Chrome, open DevTools, go to Application > Session Storage, find the 'oidc.user:...sprocket-sports' entry, and copy its access_token value. Tokens are short-lived (about an hour), so re-copy when commands start returning 401.
Choose your club
Sprocket Sports is multi-tenant — every club lives at https://<club>.sprocketsports.com. This CLI works for any Sprocket club, not just one. It defaults to jfcsoccer; point it at your own club with either of:
# Shorthand — just your club's subdomain:
export SPROCKET_CLUB=myclub # -> https://myclub.sprocketsports.com
# Or a full base URL (wins if both are set):
export SPROCKET_BASE_URL=https://myclub.sprocketsports.com
Or persist it in ~/.config/sprocket-pp-cli/config.toml:
base_url = "https://myclub.sprocketsports.com"
Your SPROCKET_TOKEN must come from that club's dashboard session (tokens are club-scoped). Run sprocket-pp-cli doctor to confirm the base URL and token line up.
Quick Start
# check that your token works and the API is reachable
sprocket doctor
# your next game or practice across all your kids' teams
sprocket next
# this week's full schedule, merged
sprocket week
# the next two weeks as one family agenda
sprocket agenda --days 14
# away games with fields for the carpool chat
sprocket away --weeks 4
Unique Features
These capabilities aren't available in any other tool for this API.
Schedule, the way a parent asks
-
week — Every game and practice for the current week across all your players' teams, in one view.
Reach for this when asked 'what's on this week' for a family with kids on different teams.
sprocket week
-
next — The single next upcoming game or practice across all your players' teams: what, when, where, home/away, opponent.
Reach for this for 'when is my kid's next game' or a one-line reminder.
sprocket next --agent --select clubCalendarEvent.title,clubCalendarEvent.startDate,clubCalendarEvent.opponent,clubCalendarEvent.awayGame
-
agenda — Both kids' separate team schedules merged into one chronological agenda over an N-day window.
Reach for this to plan the family's next two weeks in a single sorted list.
sprocket agenda --days 14
-
conflicts — Flags time overlaps and impossible tight time-plus-location gaps between events across all your players.
Reach for this to catch a double-booked Saturday before Saturday morning.
sprocket conflicts --days 14
-
away — Away games only, location-first, with field, opponent, and date — built for the carpool group chat.
Reach for this when planning away-game driving or posting a travel list.
sprocket away --weeks 4
-
ical — Emit the merged schedule as an RFC-5545 .ics file for phone-calendar subscription.
Reach for this to get soccer events into Apple/Google Calendar.
sprocket ical --days 60
-
since — What schedule items were added, moved, or cancelled since the last time you ran it.
Reach for this to catch a moved practice or a newly-added game.
sprocket since
Money and deadlines
-
owed — Total money owed across all your players: registration balances plus overdue invoices, with one number.
Reach for this for 'what do we still owe the club' across multiple kids.
sprocket owed
-
deadlines — Open registration programs sorted by how soon they close, flagging ones closing within N days.
Reach for this to avoid missing a registration window.
sprocket deadlines --days 14
Recipes
Next game as a one-line reminder
sprocket next --agent --select clubCalendarEvent.title,clubCalendarEvent.startDate,clubCalendarEvent.opponent,clubCalendarEvent.awayGame
Narrow the deeply-nested event to just the fields a reminder needs; pipe to a text/cron job.
Two-week family agenda
sprocket agenda --days 14
Merge both kids' team schedules into one sorted list for the next two weeks.
Away-game drive list for the group chat
sprocket away --weeks 4
Just the away games, location-first, ready to paste to carpool parents.
What do we owe
sprocket owed
One combined outstanding total across registrations and overdue invoices for all players.
Subscribe in your phone calendar
sprocket ical --days 60
Write 60 days of merged events to an .ics file you can import or host for subscription.
Usage
Run sprocket-pp-cli --help for the full command reference and flag list.
Commands
account
Your account and roles
sprocket-pp-cli account clubs - List clubs this account belongs to
sprocket-pp-cli account me - Get your club-user account profile
sprocket-pp-cli account roles - List your account roles
club
Club information
sprocket-pp-cli club get - Get club metadata
sprocket-pp-cli club settings - Get public club settings
family
Your family group
sprocket-pp-cli family - Get your family (parents/guardians and players)
payments
Dues and outstanding payments
sprocket-pp-cli payments failed - List failed payments
sprocket-pp-cli payments overdue-invoices - List overdue invoice payments (dues owed)
sprocket-pp-cli payments overdue-tickets - List overdue ticket payments
players
Your players
sprocket-pp-cli players - List your players (children) on this account
programs
Club programs and registration
sprocket-pp-cli programs list - List all club programs/seasons
sprocket-pp-cli programs open - List programs currently open for registration
registrations
Registration and payment history
sprocket-pp-cli registrations completed - List completed program registrations (with balances)
sprocket-pp-cli registrations team - List completed team registrations
schedule
Club calendar — games, practices, and events
sprocket-pp-cli schedule event-types - List calendar event types (game, practice, etc.)
sprocket-pp-cli schedule list - List calendar events in a date window (max ~31 days). Dates are YYYY-MM-DD.
sprocket-pp-cli schedule settings - Calendar display settings for the club
teams
Club teams
sprocket-pp-cli teams list - List every team in the club
sprocket-pp-cli teams mine - List the teams your players are assigned to
Output Formats
# Human-readable table (default in terminal, JSON when piped)
sprocket-pp-cli family
# JSON for scripting and agents
sprocket-pp-cli family --json
# Filter to specific fields
sprocket-pp-cli family --json --select id,name,status
# Dry run — show the request without sending
sprocket-pp-cli family --dry-run
# Agent mode — JSON + compact + no prompts in one flag
sprocket-pp-cli family --agent
Agent Usage
This CLI is designed for AI agent consumption:
- Non-interactive - never prompts, every input is a flag
- Pipeable -
--json output to stdout, errors to stderr
- Filterable -
--select id,name returns only fields you need
- Previewable -
--dry-run shows the request without sending
- Read-only by default - this CLI does not create, update, delete, publish, send, or mutate remote resources
- Offline-friendly - sync/search commands can use the local SQLite store when available
- Agent-safe by default - no colors or formatting unless
--human-friendly is set
Exit codes: 0 success, 2 usage error, 3 not found, 4 auth error, 5 API error, 7 rate limited, 10 config error.
Health Check
sprocket-pp-cli doctor
Verifies configuration, credentials, and connectivity to the API.
Configuration
Config file: ~/.config/sprocket-pp-cli/config.toml
Static request headers can be configured under headers; per-command header overrides take precedence.
Environment variables:
| Name | Kind | Required | Description |
|---|
SPROCKET_TOKEN | per_call | Yes | Set to your API credential. |
agentcookie (optional)
If you use agentcookie to sync secrets across machines, this CLI auto-adopts agentcookie-managed credentials with no extra setup. When the daemon writes to this CLI's config, sprocket-pp-cli doctor reports agentcookie: detected and auth-status labels the source as agentcookie. Skip this section if you don't use agentcookie - the CLI works the same as any other.
Troubleshooting
Authentication errors (exit code 4)
- Run
sprocket-pp-cli doctor to check credentials
- Verify the environment variable is set:
echo $SPROCKET_TOKEN
Not found errors (exit code 3)
- Check the resource ID is correct
- Run the
list command to see available items
API-specific
- 401 Unauthorized on every command — Your SPROCKET_TOKEN expired (tokens last about an hour). Re-copy the access_token from your dashboard session — see Authentication.
- 'Start date is out of valid range' — The calendar API caps a query at ~31 days. Use a smaller --days/--weeks value; next/week/agenda already stay inside the limit.
- Empty schedule even though events exist — Confirm the token is for the right club tenant and that you have players assigned to teams: run 'sprocket teams mine'.
- Wrong club's data — The base URL defaults to the Jacksonville FC tenant. Set the base URL in the config file to your own club's .sprocketsports.com host.