An unofficial, local-first fantasy football draft and team-management assistant for Sleeper.
Warning
This project is in beta. Validate every recommendation yourself, keep backups of anything important, and expect changes before the first stable release.
- Connects to Sleeper's tokenless, read-only API by username, league, or draft.
- Tracks live and completed draft boards.
- Checks active Sleeper drafts for picks every two seconds. During transient failures, it keeps the last valid board visible, shows its sync age, and retries with bounded backoff.
- Keeps imported ECR, projections, and ADP as grounding evidence for AI strategy rather than presenting a local ranking as draft advice.
- Requires current ECR, season projections, Sleeper ADP, and Codex before opening the normal AI draft workspace.
- Imports user-downloaded FantasyPros draft rankings, season projections, and Sleeper ADP exports; no third-party data is bundled or redistributed.
- Imports user-downloaded FantasyPros season value rankings and weekly projection CSVs for team-management analysis. Draft ECR remains a labeled fallback until ROS ECR is available.
- Stops weekly projection evidence from reaching Codex after the three-day freshness window and follows Sleeper automatically when the active fantasy week advances.
- Gives Codex the live roster, inferred availability, weekly projections, ROS ECR or labeled draft ECR fallback, Sleeper injury/practice/depth-chart status, matchup state, and league activity as separate evidence for team-management advice.
- Keeps Team Manager focused on the Codex command bar and live Sleeper roster. Matchup and data readiness appear in the roster heading; imports stay in Manage data.
- Distinguishes preseason from regular-season fantasy weeks so future matchups are not presented as current.
- Refreshes visible Team Manager data from Sleeper every 60 seconds and when the app regains focus.
- Runs Codex locally through the supported app-server integration.
- Keeps one local Codex process and one temporary thread per draft or team while the app is running. Follow-up questions keep their context without the UI resending earlier messages.
- Uses Codex as the primary draft strategist near your turn. It reasons from neutral draft evidence and can search the full read-only available-player snapshot.
- Labels recommendations as contingent targets until your team is on the clock, shows the exact wait and snake-turn pairing, and separates elite fallers from turn-range contingencies.
- Keeps comparisons, candidate questions, and what-if analysis in one contextual draft conversation that remains grounded in the latest board.
- Carries a validated living draft plan across AI turns so current-pick focus, next-turn priorities, roster goals, and board changes stay coherent throughout the draft.
- Lets users add next-pick or rest-of-draft guidance, and lets AI chat propose guidance that is persisted only after explicit user confirmation.
- Shows explicit AI loading, unavailable, and not-configured states instead of substituting a local pick recommendation.
- Stores settings, imported rankings and projections, and decision history locally in SQLite.
- Shows a compact strategy-update timeline that keeps the latest living plan prominent, collapses repeated same-pick runs, and preserves older AI changes for review.
Sleeper is currently the only supported fantasy platform. Sleeper search rank is placeholder evidence only; import current draft data before relying on real-draft recommendations.
| Format | Beta support |
|---|---|
| Standard, half-PPR, and PPR redraft | Supported |
| FLEX and superflex roster construction | Supported |
| Custom scoring and TE premium | Limited; the app warns when imported values may not match |
| IDP | Unsupported; defensive players are excluded from recommendations |
| Auction/salary drafts | Unsupported; budgets and nomination strategy are not modeled |
| Dynasty and keeper valuation | Not yet modeled as a dedicated strategy |
Roster slots, team count, rounds, and supported scoring settings come from Sleeper. FantasyPros draft and ROS ECR imports must match the league scoring format. Weekly FPTS are provider-scored, so users must export FantasyPros projections using the same scoring format as their Sleeper league.
Requires Node.js 22.12 or later and npm.
git clone https://github.com/itsreverence/sleeper-draft-assistant.git
cd sleeper-draft-assistant
npm ci
npm run devOpen http://127.0.0.1:5173, then choose Load demo draft. The demo uses synthetic data and requires no Sleeper account or AI provider.
- Enter your Sleeper username or user ID.
- If needed, paste a Sleeper league URL or league ID.
- Select the draft and confirm your team or draft slot.
- Select Codex, then export rankings for your scoring format from FantasyPros and import the CSV as the required ECR and tier signal.
- Export the season projection files for QB, RB, WR, TE, K, and DST and import them together. The FLX file is not needed because it duplicates players from RB, WR, and TE.
- Export FantasyPros Overall ADP and import it for the Sleeper and Real-Time market columns. A separate Real-Time ADP download is not required.
- In Team Manager, use the connected draft ECR as provisional season-value evidence or import an Overall Draft ECR CSV. Replace it with the scoring-specific Overall ROS ECR CSV once FantasyPros publishes it; ROS always takes precedence.
- Export the six weekly projection files for QB, RB, WR, TE, K, and DST, then import them together from Team Manager.
- Enter the draft room after all three draft sources and Codex are ready, then review the recommendation evidence before making a pick or changing your team. If an active draft has already started before setup can be completed, emergency board-only access preserves live pick tracking without AI advice.
The app reads Sleeper data but does not submit picks, change lineups, or modify your Sleeper account.
Codex is required for the normal draft-assistant workspace. Draft tracking and data imports do not themselves make AI requests, and an active draft can use emergency board-only recovery when Codex is unavailable. That recovery mode never presents pick recommendations or draft questions.
The supported integration runs a locally installed Codex CLI through codex app-server. Provider communication stays in the local API process rather than the renderer. No provider credentials are stored by Sleeper Draft Assistant.
Fast responses are enabled by default for lower live-draft latency and can be disabled in Settings. On GPT-5.6, Fast uses 2.5× ChatGPT credits.
See AI providers for setup and limitations.
npm run desktop # Electron development
npm run desktop:package # unpacked build for the current OS
npm run desktop:make # distributable targetsRelease builds are currently unsigned. Windows may display a SmartScreen warning, and macOS packaging/signing is not yet supported. Only install artifacts from this repository's Releases page once releases are published.
See Installing on Windows for artifact choices, checksum verification, local-data cleanup, updates, and rollback.
The packaged app stores data beneath Electron's per-user application-data directory. Development uses data/ in the repository unless SLEEPER_AI_DATA_DIR is set. Stored data can include league and draft identifiers, imported draft and season-value rankings, season and weekly projections, ADP, settings, user strategy guidance, and recommendation history.
Settings shows aggregate local-data counts, can download a redacted support report, and provides controls to clear imports, recommendation history, or all local app data.
The API binds only to 127.0.0.1 and protects non-health routes with a random per-launch capability token. On POSIX systems, local data directories and files are created with owner-only permissions. Windows uses its normal per-user profile ACLs; POSIX mode bits are not a Windows security guarantee.
Read Privacy and local data before sharing diagnostics or deleting local state.
npm ci
npm run check
npm test
npm run buildUseful docs:
- Architecture
- Development workflow
- Roadmap
- Release process
- Installing on Windows
- Contributing
- Security policy
This is active beta software. Use GitHub Issues for reproducible bugs and scoped feature requests. Do not post tokens, private league data, imported rankings, or unredacted diagnostics.
Sleeper Draft Assistant is an independent project and is not affiliated with, endorsed by, or sponsored by Sleeper, FantasyPros, OpenAI, or ChatGPT. Sleeper, FantasyPros, OpenAI, ChatGPT, Codex, and related marks belong to their respective owners.
