Skip to content

rxm96/droppilot

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

721 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DropPilot

Automate Twitch Drops — quietly in the background, transparent about what it's doing.

Build Latest release Platforms License: MIT

Download for Windows


DropPilot is a desktop app that automates Twitch Drops. It tracks your drop inventory, picks and watches an eligible stream, switches when that stream goes down, and (optionally) claims drops for you — all in the background, while staying transparent about what it's doing.

Overview

Contents

Features

Live inventory
Every drop's progress, claim status and time left, in real time.
Priority list
Rank your games; DropPilot works the highest one it can progress right now.
Hands-off watching
Picks an eligible stream, switches when one goes offline, and recovers when progress stalls.
Auto-claim
Optionally claims finished drops for you and keeps a record of everything it's done.
Desktop alerts
New drops, auto-claims, stream switches, drops about to end, and watch errors.
Discord / webhook
The same alerts in Discord (or any compatible webhook), with a one-click test send.
Browser-based login
Sign in through Twitch's own page; DropPilot never stores your credentials.
Demo mode
Explore the whole interface with sample data — no Twitch account needed.

DropPilot also stays out of your way while it works: a live status readout (scanning, watching, recovering…), claim-retry countdowns, and a one-click prompt to sign back in when your Twitch session expires. A Debug tab (off by default) adds live logs and a state snapshot for when you need to dig in.

Screenshots

Dark theme with demo data. (Overview is shown above.)

Stats Inventory Control
Stats Inventory Control

Quick start

npm install
npm run dev      # launches the app (Vite + Electron, hot reload)

The most common scripts:

Script Purpose
npm run dev Run the app in development (hot reload)
npm run build Build the renderer (dist/) + main & preload (dist-electron/)
npm test Run the test suite (Vitest); npm run test:watch to watch
npm run lint ESLint
npm run format Prettier (format:check to verify)

For local-dev details, testing conventions, commit style, and the release process, see CONTRIBUTING.md.

How it works

DropPilot is a standard three-layer Electron app:

  • src/main — Electron main process: app lifecycle, the IPC handlers, JSON persistence in the user-data directory, and the entire Twitch integration (src/main/twitch: GQL client, high-level service, live PubSub events, channel tracking, watch-minute pings). All network calls happen here, never in the renderer.
  • src/preload — the context-bridge that exposes window.electronAPI.
  • src/renderer — the React UI. shared/hooks/app/useAppModel.ts is the central hook that composes auth, inventory, channels, watch ping, priority, and stats into the app state the views render.

The trickiest subsystem is the watch engine (auto-select / auto-switch / stall recovery / target suppression). It's documented in docs/watch-engine.md, with an end-to-end sequence diagram in docs/watch-flow.puml.

Releases & updates

Releases are published to GitHub Releases (Windows .exe + a macOS .dmg) and built by CI when a v* tag is pushed. The app auto-updates on Windows and offers two channels — stable and preview — selectable in Settings → Updates, which also shows the in-app release history. See CONTRIBUTING.md for how to cut a release.

Configuration & data

Settings and stats are stored as JSON in the Electron user-data directory (settings.json, stats.json) and managed through the in-app Settings view.

Debug tools

The Debug tab is off by default to keep background work minimal. Enable it in Settings → Debug tools. Debug logs are only collected while it's on; perf and CPU snapshots appear in the Debug snapshot.

Troubleshooting

  • "Not logged in" → use Login with browser in the top bar.
  • App feels slow → disable the Debug tab and restart.
  • Need verbose logs → enable Debug tools in Settings.

Tech stack

Electron 42 · React 19 · Vite 7 · TypeScript · Tailwind CSS v4 · Vitest

Acknowledgements

DropPilot's drop-mining approach is heavily informed by Twitch Drops Miner by DevilXD. Much of the core behavior — stream-less watch pings, drop/campaign validation, automatic channel switching, and PubSub-based status tracking — is derived from that project. Huge thanks to DevilXD and the Twitch Drops Miner contributors.

Twitch Drops Miner is MIT-licensed (Copyright © 2024 DevilXD); its license is reproduced in THIRD_PARTY_NOTICES.md.

License

MIT — see LICENSE.

About

Hands-off Twitch Drops automation for the desktop — tracks inventory, auto-watches and switches streams, and auto-claims drops. Electron + React + TypeScript.

Topics

Resources

License

Contributing

Stars

Watchers

Forks

Packages

 
 
 

Contributors