Releases: ShoelessTim/RazerStream
Release list
RazerStream 1.7.0
This is the V2 release: the app now does everything the roadmap set out to do, including reading your old Loupedeck setup.
Import your Loupedeck profiles
Settings > History > Import from Loupedeck, shown only when profiles are found on your Mac.
Pages, tile positions, and labels come across, along with app launches, URLs, keyboard shortcuts, macros, volume, and page navigation. Imported pages are added to your current profile; nothing you already built is changed. A review step lists exactly what needs reassigning before anything is imported.
Actions that belonged to a Loupedeck plugin (Twitch, Spotify, OBS Studio) have no equivalent here. Those tiles arrive labelled but unassigned rather than silently bound to something that would do the wrong thing mid-stream.
12,387 icons
Two new bundled packs:
- Simple Icons (3,450) brand and service logos: Discord, Twitch, Spotify, OBS and the rest
- Tabler (5,112) general purpose outline icons
alongside Lucide and Bootstrap. The picker switches from tabs to a menu as packs grow, so it stays usable.
Help support more decks
If you own a Loupedeck or Razer device this app cannot drive yet, Settings > Device > Copy Device Report puts everything needed to start adding it on your clipboard, then open a device report issue.
Hardware facts only: USB ids, product strings, macOS version, firmware. No profiles, no file paths, and the serial number is reported as seen rather than by value, so it is safe to paste publicly.
Also since 1.5.3
- Start hidden, launch with no window and no flash; open from the Dock or menu bar icon
- Native +/- control for adding and removing pages in the sidebar
Known gaps
Imported tiles carry their labels but not their artwork yet. Animated tiles are not supported; that is next.
Install
brew upgrade --cask razerstreamOr download the zip below, unzip, drag to Applications, open. Developer ID signed and notarized. Requires macOS 14 or later.
RazerStream 1.6.1
Import your Loupedeck profiles
If you used the Loupedeck software with this device, RazerStream can now read those profiles and bring them across. Settings > History > Import from Loupedeck, which appears only when profiles are found on your Mac.
- Adds to your current profile by default. Imported pages are appended after your existing ones; nothing you have already built is changed or removed. You can create a separate profile instead if you prefer.
- You see exactly what carries over before anything is imported. The review screen lists the pages that will be created and every control that needs your attention, grouped by page, each with the reason.
- Nothing is guessed. Pages, tile positions, and labels come across. So do app launches, URLs, keyboard shortcuts, multi-step macros, volume and page navigation. Actions that belonged to a Loupedeck plugin (Twitch, Spotify, OBS Studio) have no equivalent here, so those tiles arrive labelled but unassigned rather than silently bound to something that would do the wrong thing.
- Undoing an import is deleting the pages, and every import snapshots a version you can restore from Settings > History.
Known gaps in this first version: tile artwork does not come across yet, so imported tiles carry their labels but not their icons.
Install
brew upgrade --cask razerstreamOr download the zip below, unzip, drag to Applications, open. Developer ID signed and notarized. Requires macOS 14 or later.
RazerStream 1.5.6
New
- Start hidden (no window on launch) toggle in Settings > General. RazerStream launches without opening its window and keeps running in the background; open it any time from the Dock icon, the menu bar icon, or Device > Show RazerStream.
Note
Replaces the 1.5.5 build, which was pulled. That version tried to run menu-bar-only with no Dock icon, but dropping the Dock icon also prevented the menu bar icon from registering, which could leave no way to reopen the window. This version never changes the app's activation policy, so the Dock icon, app menus, and menu bar icon are always present.
Install
brew upgrade --cask razerstreamOr download the zip below, unzip, drag to Applications, open. Developer ID signed and notarized. Requires macOS 14 or later.
RazerStream 1.5.3
Fixed: soft-fail / dead deck after inactivity
If Dim after inactivity was on, the panel could dim and then stop responding (soft hang) until unplug/relaunch.
Cause: while dimmed, live tiles (especially CPU/RAM every 2 seconds) kept shoving full framebuffers over the serial pipe, racing with LED dim/wake writes and page pushes that forced full brightness while isDimmed stayed true.
Fix:
- Pause live-tile and meter refreshes while dimmed; refresh once on wake
- LED dim/wake is cancelable (no stacked Tasks)
pushCurrentPage/pushBrightnessrespect idle brightness and LED scale- Idle check is explicitly MainActor
Workaround on older builds
Settings → Device → turn off Dim after inactivity.
Install
brew upgrade --cask razerstreamOr download the zip. Developer ID signed and notarized. macOS 14+.
RazerStream 1.5.2
Mouse scroll knobs
Knob Rotation presets:
- Mouse Scroll (Vertical) — turn to scroll up/down
- Mouse Scroll (Horizontal) — turn to scroll left/right
Uses the same global handedness toggle (Settings → Device → Turning right) and fast-turn acceleration as Volume/Brightness. Pair a knob press with Mouse Click if you want click-to-select under the cursor.
Also available as plain actions on any control: Scroll Up / Down / Left / Right, Mouse Click.
Requires Accessibility (same grant as keystrokes).
Install
brew upgrade --cask razerstreamOr download the zip. Developer ID signed and notarized. macOS 14+.
RazerStream 1.5.1
Fixed: pack icons vanishing on every relaunch
Big bug. Icons picked from the bundled Bootstrap/Lucide packs were stored as absolute paths into the running .app bundle. When macOS App Translocation (or an app move/update) changed that path on the next launch, every pack icon failed to load even though the profile still listed them.
- Bundled icons are now stored as stable
IconPacks/<pack>/<file>paths and resolved against the current app resources. - Existing profiles are rewritten automatically on open (no re-picking required for pack icons that still match by pack/file name).
- Custom images outside the app (Desktop, Downloads, etc.) were never affected and keep absolute paths.
Install
brew upgrade --cask razerstreamOr download the zip. Developer ID signed and notarized. macOS 14+.
Includes macros from 1.5.0.
RazerStream 1.5.0
Multi-action macros
One control can run several actions in order. In the inspector, set the action to Macro (multi-step), add steps, and optionally wait between them.
- Each step is any normal leaf action: keystroke, open app, URL, shell, AppleScript, media, volume, brightness, page nav, etc.
- Then wait N ms after a step before the next (100 ms default is a good multi-keystroke spacing).
- Nested macros are flattened at play time; empty steps are skipped; leaf failures are logged and the rest continues.
- Multi-keystroke (⌘C then ⌘V, etc.) is N keystroke steps; built on
CGEvent(no separate Apple multi-key API).
Also includes (from 1.4.72 / 1.4.73)
- Page +/− always visible at the top of the sidebar (#1)
- LED brightness knob presets and continuous-turn LED fix
- Disk free-space live tile; pie charts on knob strips
- Custom SVG size normalization (#2 still wants confirmation on macOS 26.x)
- Xcode 16.4 / strict concurrency build fix
Install
brew upgrade --cask razerstreamOr download the zip below. Developer ID signed and notarized. macOS 14+.
RazerStream 1.4.73
Small, clear patch on 1.4.72. Same product for end users; this is the tag where main, CI, and Latest all match.
Fixed
- Build / CI under Xcode 16.4: the page +/−
NSSegmentedControlcoordinator is@MainActor. On the macOS 15 SDK,selectedSegmentis MainActor-isolated; without that annotationswift buildfailed on GitHub Actions (local Xcode beta had been looser). AppKit always delivers the action on the main thread, so the annotation matches reality.
Unchanged from 1.4.72
- Page add/delete controls at the top of the sidebar (#1)
- LED brightness knobs, disk free-space live tile, SVG size normalization (#2 still wants confirmation on macOS 26.x)
Install
brew upgrade --cask razerstreamOr download the zip below. Developer ID signed and notarized. macOS 14+.
RazerStream 1.4.72
Tidy stabilization of the 1.4.7 line. Not a big feature dump; a solid build to run while the next bug-fix pass happens.
Fixed
- Couldn't add or delete pages in the sidebar on some window sizes and macOS layout passes (#1). The +/− bar is now a native segmented control at the top of the page list so it is always visible. Context-menu delete remains as a fallback.
- Custom SVG icons too small (worse on knobs than tiles) when loaded from a user icon library (#2). Images are normalized to a fixed canvas before fit-to-tile math. Please retest on 1.4.72 if you hit this on macOS 26.x and comment on the issue if it still looks wrong.
Included from the 1.4.7 development line
If you are jumping from 1.4.0 / 1.4.2:
- Knob presets: Button LED Brightness and Screen + LED Brightness (plus Volume / Screen Brightness / Page Nav / Track)
- Continuous LED-brightness knob turns actually reach the LEDs (dedicated
pushBrightnesspath; no more cancelled mid-page redraw) - Live tiles: disk free space (pick a volume), CPU/RAM; pie charts on knob strips
- Idle dimming paces button LED writes so the serial buffer does not drop them
Docs
- Wiki: Install, FAQ, Changelog, Roadmap
- README brought current with this release
Install
brew upgrade --cask razerstreamOr download the zip below, unzip, drag to Applications, open. Developer ID signed and notarized. Requires macOS 14 or later.
RazerStream 1.4.7
Covers everything since v1.4.0. If you're on 1.4.0 or earlier, read all of it; if you're already on a 1.4.x you built yourself this week, the important one is the last item.
New
- Brightness fade-in on connect, instead of a hard jump.
- Knob rotation presets: Volume, Screen Brightness, Page Navigation, Track, Button LED Brightness, and Screen + LED Brightness combined are each a single choice instead of hand-wiring clockwise/counterclockwise separately. One Settings > Device toggle flips the direction for all of them at once. Fast turns accelerate the step.
- A knob can be pinned to share its config across every page instead of set up per page.
- Idle dimming (off by default): the screen and the 7 configurable button LEDs fade after inactivity and wake on any input. The status light is never touched, so connection state always stays visible.
- Live tiles: a CPU/RAM meter and a disk free-space meter (pick any mounted volume), alongside the existing clock. Bars on a tile; small pie charts on a knob strip.
- Native
.razerstreamsingle-profile export/import, Settings > History. - Haptic feedback on press, with a pattern picker (Settings > Haptics).
Fixed
- Turning a knob assigned to Button LED Brightness or Screen + LED Brightness never actually changed the LEDs, even though Screen Brightness alone worked. Continuously turning a knob (the normal way to dial one in) was cancelling its own LED write before it ever reached the device — screen brightness survived because it's sent first in a much longer redraw sequence, the LEDs, last in that sequence, essentially never did. Brightness changes now use a dedicated lightweight push instead of a full page redraw.
- The screen sometimes didn't come up after quitting and relaunching the app without unplugging the device (stale serial buffer bytes confusing the handshake).
- Tile drag-and-drop could visually start a drag that never actually dropped (a missing system type registration).
- Knob-strip live content (the clock) never refreshed after the initial page draw.
Removed
- Haptic tick on page change, and two-finger swipe to change pages — both shipped in 1.4.1, both didn't hold up (see the wiki's V2 Roadmap for why).
Install
brew upgrade --cask razerstreamOr download the zip below, unzip, drag to Applications, open. Developer ID signed and notarized. Requires macOS 14 or later.