A Stream Deck plugin that puts live Torn data on your deck — stats, flight tracking, chain and hospital countdowns, cooldowns, refills, and notifications, all synced to Torn's own server clock.
Unofficial fan-made tool. Not affiliated with, endorsed by, or associated with Torn.com in any way. Uses the public Torn API with a key you provide yourself.
- Get a Torn API key at torn.com/preferences.php#tab=api (minimal access is enough for everything here).
- Install the plugin — grab the
.streamDeckPluginfile from Releases and double-click it (Stream Deck will install it), or build from source below. - Drag any TornDeck action onto a key and paste your API key into its settings — it's shared automatically with every other TornDeck key.
cd torndeck
npm install
npm run buildThis compiles src/ into com.callz.torndeck.sdPlugin/bin/plugin.js. Useful commands from the Elgato CLI:
npx streamdeck validate com.callz.torndeck.sdPlugin # check the manifest
npx streamdeck restart com.callz.torndeck # reload into a running Stream Deck app
npx streamdeck pack com.callz.torndeck.sdPlugin # produce a distributable .streamDeckPlugin- Each key renders its own SVG on the fly based on live Torn API data — no static images for the "live" states.
- A shared request cache dedupes overlapping API calls (e.g. Stats, Notifications, and Chain all pull from the same
bars,notificationscall) so adding more keys doesn't multiply your request volume. - Countdown timers tick locally every second between syncs, corrected against Torn's own server clock (not just the local machine's) so they stay accurate.
- All alerts share one "blink until acknowledged" pattern: flash starts when something needs attention, stops the moment you press the key, and re-arms automatically once the underlying condition changes again.







