How mymtgo/client works
mymtgo is a local desktop companion that passively reads MTGO logs and deck files, then turns them into searchable match history, performance analytics, and live-play aids. The documented core path is local logs through ingestion and match processing into local SQLite-backed records; users explore results through deck, match, league, dashboard, and opponent views. Separate branches cover limited drafts, archetype analysis, replay, and overlays. Pipeline orchestration and the sampled controllers support the wiring shown; unsampled feature implementations are represented at their existing directory paths, with uncertain internal calls omitted.
Main entry points: RunPipeline.php Pipeline orchestration · MtgoManager.php MTGO manager · RunPipelineJob.php Pipeline job · Leagues League tracking
Components 27
Capture and processing
- MTGO manager
app/Managers/MtgoManager.php - Pipeline job
app/Jobs/RunPipelineJob.php - Pipeline orchestration
app/Actions/Pipeline/RunPipeline.php - Log ingestion
app/Actions/Logs - Match processing
app/Actions/Matches - Sidecar events
app/Actions/Sidecar - Draft processing
app/Actions/Drafts
Deck and performance
- League tracking
app/Actions/Leagues - Tournament linking
app/Actions/Tournaments - Deck tracking
app/Actions/Decks - Archetype analysis
app/Actions/Archetypes - Card data and stats
app/Actions/Cards - Performance dashboard
app/Actions/Dashboard - Limited analytics
app/Actions/Limited
Live play features
- Match replays
app/Actions/Replays - Live overlay
app/Actions/Overlay - Sideboard guides
app/Actions/SideboardGuides - Deck cloud sync
app/Actions/Sync
Desktop experience
- Application controllers
app/Http/Controllers - League view
app/Http/Controllers/Leagues/IndexController.php - Card browser
app/Http/Controllers/Cards/IndexController.php - Storage settings
app/Http/Controllers/Settings/Pages/StorageController.php - Manual ingestion
app/Http/Controllers/Settings/RunIngestController.php
Other components
- MTGO files
- Player
- Local SQLite
- Desktop interface
Connections 34
- MTGO files → MTGO manager: reads paths
- MTGO manager → Pipeline job: schedules tick
- Pipeline job → Pipeline orchestration: runs
- Pipeline orchestration → MTGO manager: ingests logs
- MTGO manager → Log ingestion: scans and ingests
- Pipeline orchestration → Sidecar events: ingests and projects
- Pipeline orchestration → League tracking: processes events
- Pipeline orchestration → Draft processing: processes events
- Pipeline orchestration → Match processing: processes matches
- Pipeline orchestration → Tournament linking: links and enqueues
- Log ingestion → Local SQLite: records events
- Match processing → Local SQLite: stores match data
- Sidecar events → Local SQLite: projects events
- Draft processing → Local SQLite: records draft state
- League tracking → Local SQLite: records league state
- Tournament linking → Local SQLite: updates matches
- Deck tracking → Local SQLite: reads and writes
- Archetype analysis → Local SQLite: reads and writes
- Card data and stats → Local SQLite: reads and writes
- Performance dashboard → Local SQLite: reads statistics
- Limited analytics → Local SQLite: reads and writes
- Match replays → Local SQLite: reads game data
- Live overlay → Local SQLite: reads live context
- Sideboard guides → Local SQLite: reads and writes
- Deck cloud sync → Local SQLite: syncs deck state
- Player → Desktop interface: uses
- Desktop interface → Application controllers: requests views
- Application controllers → Local SQLite: serves product data
- League view → Local SQLite: queries runs
- League view → League tracking: formats runs
- Card browser → Local SQLite: queries cards
- Storage settings → Local SQLite: counts cards
- Player → Manual ingestion: requests ingestion
- Manual ingestion → Pipeline job: dispatches