Skip to content

Repository files navigation

Sleeper Draft Assistant

An unofficial, local-first fantasy football draft and team-management assistant for Sleeper.

Warning

This project is an early alpha. Validate every recommendation yourself, keep backups of anything important, and expect breaking changes before the first stable release.

Sleeper Draft Assistant demo using synthetic data

What it does

  • Connects to Sleeper's tokenless, read-only API by username, league, or draft.
  • Tracks live and completed draft boards.
  • Tracks active Sleeper drafts with lightweight two-second pick checks, while preserving the last valid board during transient failures with visible sync age and bounded retries.
  • Keeps imported ECR, projections, and ADP as grounding evidence for AI strategy rather than presenting a local ranking as draft advice.
  • Guides real drafts through a preparation stage and opens the AI workspace only after current ECR, season projections, Sleeper ADP, and Codex are ready.
  • Imports user-downloaded FantasyPros draft rankings, season projections, and Sleeper ADP exports; no third-party data is bundled or redistributed.
  • Imports user-downloaded FantasyPros overall rest-of-season rankings and weekly projection CSVs for team-management analysis.
  • Gives Codex the live roster, inferred availability, weekly projections, rest-of-season ranks, matchup state, and league activity as separate evidence for team-management advice.
  • Keeps Team Manager compact: AI conversation and the actual Sleeper roster are primary, matchup and readiness stay glanceable, and detailed import controls open only when managing 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.
  • Uses a local Codex app-server provider for the core draft and team-assistant experience.
  • Reuses one local Codex app-server process and scoped draft/team threads during each run, preserving conversational continuity without resending prior chat messages from the UI.
  • Uses a configured AI provider as the primary draft strategist near your turn, reasoning from neutral draft evidence and searching the full available-player snapshot through a read-only tool.
  • 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.

League format support

Format Alpha 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 ECR and rest-of-season 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.

Try the demo in about a minute

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 dev

Open http://127.0.0.1:5173, then choose Load demo draft. The demo uses synthetic data and requires no Sleeper account or AI provider.

Use your Sleeper league

  1. Enter your Sleeper username or user ID.
  2. If needed, paste a Sleeper league URL or league ID.
  3. Select the draft and confirm your team or draft slot.
  4. Select Codex, then export rankings for your scoring format from FantasyPros and import the CSV as the required ECR and tier signal.
  5. 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.
  6. Export FantasyPros Overall ADP and import it for the Sleeper and Real-Time market columns. A separate Real-Time ADP download is not required.
  7. During the season, export the overall rest-of-season rankings for your scoring format and import the single CSV from Team Manager.
  8. Export the six weekly projection files for QB, RB, WR, TE, K, and DST, then import them together from Team Manager.
  9. 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.

AI providers

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.

Desktop builds

npm run desktop          # Electron development
npm run desktop:package  # unpacked build for the current OS
npm run desktop:make     # distributable targets

Release 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.

Local data and privacy

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 rest-of-season 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.

Development

npm ci
npm run check
npm test
npm run build

Useful docs:

Status and support

This is active alpha software. Use GitHub Issues for reproducible bugs and scoped feature requests. Do not post tokens, private league data, imported rankings, or unredacted diagnostics.

Unofficial project notice

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.

License

MIT

About

Unofficial, local-first fantasy football draft and team-management assistant for Sleeper.

Topics

Resources

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Used by

Contributors

Languages