Track StarCraft 2 Esports Swift SDK. CLI. Real-time.

Access live matches, player stats, and tournament data with a modern Swift SDK and powerful CLI.

Quick Start

# Install CLI (Arch Linux)
yay -S starcraft-cli

# Set your API key
export PANDA_TOKEN="your-api-key"

# Track live matches
starcraft-cli live

# Find when Serral plays next
starcraft-cli player-schedule Serral
starcraft-cli live
╭────────────────────────────────────────────────╮
   v2.0.0                  
╰────────────────────────────────────────────────╯

🔴 LIVE MATCHES

┌─ IEM Katowice 2025Grand Final🟦 Serral 3 - 2 🟥 Clem● Map 6 starting...
└─ Started 2h 31m ago

┌─ GSL Code SRo16 Group B🟨 herO 1 - 1 🟥 ByuN● Alcyone LE
└─ Started 14m ago

Found 2 live matches • Auto-refresh ON
Real-time Live Updates
🏆 1000+ Tournaments
🎮 All Pro Players

Complete Esports Toolkit

Everything you need to track the StarCraft 2 pro scene

🔄

Live Match Tracking

Real-time updates with auto-refresh

🎯

Player Analytics

Stats, schedules, and match history

🏆

Tournament Coverage

Brackets, results, and upcoming events

📊

Data Export

JSON and CSV for analysis

Async/Await

Modern Swift concurrency

🛡️

Resilient

Auto-retry with exponential backoff

Swift SDK

Protocol-oriented, type-safe, production-ready

Built for Modern Swift

  • ✓ Swift 5.9 with async/await
  • ✓ Protocol-oriented architecture
  • ✓ Strongly typed models
  • ✓ Comprehensive error handling
  • ✓ Actor-based caching
  • ✓ Cross-platform support
macOS iOS watchOS tvOS

Example Usage

import StarCraftKit

// Configure client
let config = StarCraftClient.Configuration(
    apiKey: "YOUR_API_KEY",
    cachePolicy: .standard
)
let client = StarCraftClient(configuration: config)

// Search for players
let players = try await client.searchPlayers(name: "Maru")

// Get tournament brackets
let matches = try await client.getTournamentMatches(
    "iem-katowice-2025"
)

// Paginate through all results
let allTournaments = try await client.executePaginated(
    TournamentsRequest(status: .upcoming),
    maxPages: nil
)

Command Line Interface

The definitive tool for StarCraft 2 esports fans

$ starcraft-cli live
🔴 LIVE MATCHES (2 found)

┌─ ESL Pro Tour 2025QuarterfinalsClem vs Dark2-1 • Best of 5
│  ● Map 4: Dragon Scales LE
└─ Started 47 minutes ago

┌─ WardiTV Team LeagueWeek 3Team Liquid vs ONSYDE Gaming3-2 • Best of 7
│  ● Ace Match: Solar vs Spirit
└─ Started 2 hours ago
$ starcraft-cli today
📅 TODAY'S MATCHES • Jan 5, 2025

14:00 CETIEM Katowice 2025
  Serral vs ByuN • Group A Opening

16:30 CETIEM Katowice 2025
  herO vs Clem • Group B Opening

19:00 CETIEM Katowice 2025
  Winners Match • Group A

Total: 8 matches scheduled
$ starcraft-cli upcoming --days 3
📅 UPCOMING MATCHES (Next 3 days)

Tomorrow - Jan 6
09:00GSL Code S • Ro8
  Maru vs herO

14:00IEM Katowice • Group B
  Dark vs MaxPax

Jan 7
18:00EPT Europe • Qualifier
  32 players • Open bracket
$ starcraft-cli players --race zerg --limit 5
🎮 TOP ZERG PLAYERS

1. Serral • 🇫🇮 Finland • MMR: 7042
2. Dark • 🇰🇷 Korea • MMR: 6891  
3. Reynor • 🇮🇹 Italy • MMR: 6823
4. Solar • 🇰🇷 Korea • MMR: 6754
5. Rogue • 🇰🇷 Korea • MMR: 6698
$ starcraft-cli player-schedule Serral
📅 SERRAL'S SCHEDULE

TomorrowIEM Katowice 2025
  vs ByuN • 14:00 CET • Group A

Jan 8IEM Katowice 2025  
  vs TBD • Winners Match

Recent: W W W L W
$ starcraft-cli matches --status past --limit 5
🎯 RECENT MATCHES

2 hours agoIEM Katowice
Dark 2 - 1 Clem

4 hours agoGSL Code S
herO 2 - 0 ByuN

YesterdayTeamLiquid StarLeague
Serral 3 - 0 Astrea
$ starcraft-cli tournaments --status ongoing
🏆 ONGOING TOURNAMENTS

1. IEM Katowice 2025
   💰 $500,000 • 📍 Poland
   ● Groups Stage - Day 2

2. GSL Code S 2025 S1
   💰 $140,000 • 📍 Seoul
   ● Ro16 - Group B
$ starcraft-cli brackets "iem-katowice-2025" --stage playoffs
🏆 IEM KATOWICE 2025 - Playoffs Bracket

Upper Bracket
┌─ Serral ──┐
               ├─ Serral 3-1 ──┐
└─ ByuN ────┘                  │
                                  ├─ TBD
┌─ Clem ────┐                  │
               ├─ TBD             │
└─ herO ────┘

Lower Bracket
┌─ Dark ────┐
               ├─ TBD
└─ MaxPax ──┘
$ starcraft-cli teams --league "teamliquid-starleague"
👥 TEAM LIQUID STARLEAGUE - Teams

Team LiquidClem • Captain
  • SerralMaxPaxHeRoMaRinE
  Record: 7-2 • Points: 21

ONSYDE GamingMaru • Captain  
  • SolarZounSpirit
  Record: 5-4 • Points: 15
$ starcraft-cli leagues --region eu
🏅 EUROPEAN LEAGUES

ESL Pro Tour EU
  Status: Ongoing • Week 8 of 12
  Next: Tomorrow 18:00 CET

WardiTV Team League
  Status: Playoffs
  Finals: Jan 15

SCL Europe
  Status: Registration Open
  Starts: Feb 1
$ starcraft-cli series --player Maru --limit 3
📊 MARU'S RECENT SERIES

VS DarkGSL Code S
  L 1-3 • Yesterday
  Maps: Alcyone, Site Delta, Goldenaura, Oceanborn

VS herOIEM Katowice Qualifiers
  W 2-0 • 3 days ago
  Maps: NeoHumanity, Crimson Court

VS ClemTeamLiquid StarLeague
  W 3-2 • 5 days ago
  Maps: Site Delta, Alcyone, Goldenaura, Dynasty, Amphion
$ starcraft-cli streams --live
📺 LIVE STREAMS

🔴 ESL_SC2
  IEM Katowice 2025 - Day 2
  👁 12.4K viewers • English

🔴 GSL
  Code S Ro16 - Group B
  👁 8.2K viewers • Korean

🔴 Clem
  Ladder Practice - EU GM
  👁 3.1K viewers • French

🔴 uThermal
  Terran Tutorial Tuesday
  👁 1.8K viewers • English
$ starcraft-cli cache --stats
💾 CACHE STATISTICS

Storage
  Location: ~/.starcraft-cli/cache
  Size: 42.3 MB
  Entries: 1,247

Performance
  Hit Rate: 87.3%
  Avg Response: 12ms (cached) vs 450ms (API)
  
Recent Activity
  Last cleared: 7 days ago
  Last hit: 2 minutes ago
  
Use 'starcraft-cli cache --clear' to clear cache
$ starcraft-cli export players --format csv --race terran
📊 EXPORTING DATA

Format: CSV
Type: Players (Terran)
Records: 127

✅ Exported to: players_terran_2025-01-05.csv
Size: 14.2 KB

Real-time Updates

Live match tracking with auto-refresh

📊

Rich Output

Beautiful tables and formatted data

🎨

Colorful Display

Race colors and status indicators

💾

Export Options

Save data as JSON or CSV

Installation

Choose the best method for your platform

Arch Linux

AUR
# Install (includes Swift if needed) yay -S starcraft-cli

Builds from source with Swift (auto-installed)

macOS

Recommended
# Add tap and install brew tap guitaripod/tap brew install starcraft-cli

Install via Homebrew for automatic updates

Other Linux

Build from Source
# Install Swift from https://swift.org/install/linux # Then build from source: git clone https://github.com/guitaripod/StarCraftKit cd StarCraftKit swift build -c release --product starcraft-cli sudo cp .build/release/starcraft-cli /usr/local/bin/

Build from source for best compatibility

Other Installation Methods

Swift Package Manager

For Swift projects

.package(
    url: "https://github.com/guitaripod/StarCraftKit",
    from: "2.0.0"
)

Direct Download

Manual installation

Setup

Get your API key from PandaScore and set it:

# For CLI
export PANDA_TOKEN="your-api-key"

# For SDK
let client = StarCraftClient(apiKey: "your-api-key")