Installing the Pushrod Stream Deck plugin
Control the Pushrod Overlay for iRacing from an Elgato Stream Deck — toggle overlay windows, switch display modes, and fire radio macros without leaving the wheel.
Free for everyone — all tiersThere is no paid unlock: the Stream Deck plugin is included at every licence level.
Prerequisites
| Requirement | Version / detail |
|---|---|
| Pushrod Overlay | v1.20 or newer — i.e. the version that ships the Control API. |
| Stream Deck app | 6.5 or newer (Elgato / Corsair). |
| Operating system | Windows 10 or 11 (64-bit). |
| iRacing | Installed and run at least once (so app.ini exists). |
The Control API is embedded in Pushrod Overlay and binds loopback only (127.0.0.1). Nothing is exposed to your network and the plugin never phones home.
Install steps
1.Install and launch Pushrod Overlay
Install (or update to) Pushrod Overlay v1.20+ and start it once. On first launch the overlay:
- auto-starts the Control API on port
8721(loopback), - auto-generates and writes an auth token to a shared discovery file so the plugin finds the API with zero configuration:
%APPDATA%\Pushrod\control-token
(JSON: { "version": 1, "token": "…", "port": 8721 }.) Leave the overlay running whenever you want to use the deck.
2.Install the plugin
Download pushrod-deck-control.streamDeckPlugin from the latest release and double-click it. The Stream Deck app installs it automatically and the Pushrod actions appear in your action list.
3.Import a profile
The plugin ships ready-made profiles under its /profiles folder:
- MK.2 — 5×3, three pages: Windows · Modes · Radio.
- XL — 8×4, two pages: Race (windows + modes rail + comm) · Setup (presets + utilities).
In the Stream Deck app: Profiles ▾ → Import…, then pick the profile that matches your hardware. You can also build your own from the individual actions.
4.Verify the token is auto-detected
Open any Pushrod key's inspector. It should read Connected. The plugin has already read the token and port from %APPDATA%\Pushrod\control-token — no copy-paste needed. If it shows greyed keys, see Troubleshooting below.
5.Run the radio macro setup once (for the Radio page)
Radio keys fire iRacing's built-in chat macros (app.ini → [Chat], Macro0..Macro14). Run the one-time setup so the 12 Pushrod macros carry their messages (3 of iRacing's 15 slots stay free):
- From the plugin folder, run
control-api/scripts/setup-macrosonce, or use the overlay's Settings → Stream Deck → Write radio macros button.
The setup backs up your existing app.ini first (app.ini.pushrod-backup-<n>) and only rewrites the 12 [Chat] macro lines it owns — everything else is preserved. Restart iRacing so it re-reads app.ini.
Note: 12 macros are mapped, leaving 3 of iRacing's 15 slots free. A slow-car message is intentionally not shipped — simulating chat via keyboard injection is non-deterministic, so it is out of scope for v1.
6.Race
Start iRacing and get in the car. When telemetry is live the deck's Connected indicator is green and the LEDs mirror the overlay in real time (key-press → overlay change is < 100 ms on localhost).
Troubleshooting
Keys are greyed out (with an orange dot)
The plugin can't reach the Control API.
- Overlay not running — start Pushrod Overlay; the API only exists while the overlay is open. (The Launch key stays active precisely so you can start the app from the deck.)
- Token mismatch — if you reset the token (Overlay → Settings → Reset control token), the file at
%APPDATA%\Pushrod\control-tokenis rewritten; the plugin re-reads it automatically. Restart the Stream Deck app if it doesn't refresh. connected: falsebut keys work — that's the telemetry link, not the API: the overlay is up but iRacing isn't feeding data yet. Get in a session.
Port conflict
The default port is 8721. If it's busy, the overlay automatically scans 8721 → 8729 and writes the chosen port into control-token. The plugin reads the port from that file, so no manual change is needed. You can also pin a port via the overlay config key controlApi.port.
Radio keys do nothing
The chat macros aren't written to app.ini.
- Run the radio macro setup (step 5), then restart iRacing so it reloads
app.ini. - Make sure you're in the car / session — chat macros only broadcast in an active session.
- If you manage
app.iniyourself, confirm[Chat] Macro0..Macro14weren't overwritten by another tool; re-run the setup to restore them (a backup is kept).
Uninstall
Right-click any Pushrod action in the Stream Deck app and choose Uninstall, or remove it from Stream Deck ▸ Preferences ▸ Plugins. Your app.ini backups (app.ini.pushrod-backup-<n>) are left in place if you want to restore the original chat macros.