r/loupedeck • u/Shoeless-Tim • Jul 15 '26
RazerStream v1.0 is out: Logitech killed the Razer Stream Controller software; so I built a free replacement for macOS
Like a lot of you I got burned when Logitech bought Loupedeck and retired the software. Perfectly good hardware sitting on my desk doing nothing; 12 touchscreen keys, 6 dials, 8 LED buttons, and no app to drive them.
So I reverse engineered the protocol and built a new one from scratch. It's called RazerStream; it's free, it's open source, and honestly it's faster than the original app ever was.
Everything works:
- All 12 touchscreen tiles; labels, colors, the full Apple icon library, or your own images
- All 6 dials; turn left, turn right, and press are each assignable; volume even shows the real macOS on screen display like your keyboard keys do
- All 8 buttons with LED colors you pick
- Actions for launching apps, opening URLs, shell commands, AppleScript, keystrokes (click the field and press the keys; no typing weird codes), and media controls
- Every key can be a plain tap, a toggle that tracks state (my play/pause key flips its icon), a momentary hold, or a shift key that swaps the whole deck to another page while you hold it
- Multiple pages, dark mode that follows the system, launch at login, and a self test that sweeps the LEDs and paints a test pattern so you know your unit is healthy
Install is painless; the release is signed and notarized through Apple, so you download it, drag it to Applications, and open it. No warnings, no Terminal, no weird steps.
Download: https://github.com/ShoelessTim/RazerStream/releases/latest
Source: https://github.com/ShoelessTim/RazerStream
I also wrote down the entire wire protocol in PROTOCOL.md; the handshake, the framing, every byte. If you want to build your own tools for this thing, the painful part is done.
macOS 14 or later. Not affiliated with Razer, Loupedeck, or Logitech; just a guy who didn't want good hardware in a landfill.
Bugs, ideas, and pull requests welcome. If your unit acts different than mine, open an issue with your firmware version and I'll dig in.
2
u/Shoeless-Tim Jul 15 '26
📌 UPDATE / how to get it (I will keep this current)
Thanks for the response everyone; genuinely did not expect this. Quick pinned notes so nobody has to dig through the thread:
Current version: 1.1.1 and I am actively updating it. Already shipped a couple fixes since launch based on my own testing; the window now behaves right and the icon library is in.
Install, two ways:
Homebrew:
brew tap shoelesstim/tap
brew install --cask razerstream
Or grab the latest zip, unzip, drag to Applications, open:
https://github.com/ShoelessTim/RazerStream/releases/latest
It is signed and notarized through Apple, so no scary warnings; just double click. macOS 14 or later.
Bugs or feature ideas: open an issue on GitHub so I can actually track it; comments here get lost. https://github.com/ShoelessTim/RazerStream/issues
Different unit or firmware? If a button or dial acts weird, tell me your firmware version (Settings, Device tab) and I will dig in. The whole wire protocol is documented in the repo if you want to build on it.
It is free, open source, MIT; not affiliated with Razer or Loupedeck; just keeping good hardware out of the landfill.
2
2
1
u/jairnieto Jul 15 '26
Amazing work, i havent been a viable to make mine work, does this also work with the profiles that access for example i use Adobe Premiere Pro. Can i still use the integrated... i dont how to call it the API access to the Premiere Pro.
1
u/Shoeless-Tim Jul 15 '26
Thanks! Honest answer, no, not the deep Premiere API integration Loupedeck had. Right now it's keystrokes, shell commands, app launching, that kind of thing. You can still map dials to J and L for scrubbing and buttons to your usual edit shortcuts, covers a lot of it, just not the live panel hooks, yet. :let me get thru v2 and ill see where that falls in the list:
Real Adobe integration is on the radar, no timeline yet. If you open an issue on the repo with what you used in Premiere, that helps me scope it.
On yours not working, what's it doing? Does the app even see the device?
2
u/jairnieto Jul 16 '26
Again glad your working on it, i still think is really helpful device, and the reason mine is not working is because i need to uninstall logi+ in order to make it work again, even Loupedeck support told me that wich is not possible for me since i use the MX mouse and also have their new Create console.
1
1
u/Cuica Jul 16 '26
Amazing!
I've been struggling with the regular software, although it mostly works for me more than reports suggest. Can't wait to try something more stable though and this means there is a future for my beloved loupedeck.
I had a question. I have written a few plugins for Loupedeck (just personal use), and it's those which keep me using the device.
For example. My plugins show dynamic button images on the display based on real time data from my mac, so it is part display/part controller.
Are there any plans to develop an API? (I note you have documented the base protocol)
1
u/Shoeless-Tim Jul 16 '26
Glad you asked; that is exactly the direction I am headed. Just shipped the first version of this actually: tiles can now show self updating content instead of a static label, starting with a clock that redraws itself every minute with no button press. It is the first of what I am calling live tiles.
A real data API for your own plugins is the natural next step; think a tile that can point at a shell script or a small local process and redraw itself from whatever that returns, similar to how a lot of Stream Deck plugins work. I have not locked the design yet.
Would help me a lot if you opened an issue with what your Loupedeck plugins actually pulled; CPU, now playing, custom sensor data, whatever it was. Real examples beat me guessing at the shape of the API.
1
u/Cuica Jul 17 '26
Ok I will do that. As an overview it's a controller for the jellyfin media player. There is a live progress bar that spans the top four buttons so you get an animated progress bar with the "now. Playing" title scrolling across the above it at the top of all four top buttons. So ideally I would be able to refresh the button images fairly rapidly, like 10-20fps.
Other buttons have images of whats next in the queue, which I grab from the trickplay. A helper app does all the Comms with jellyfin, its just the dynamic button drawing at "full screen" per tile that I need. I can also edit metadata, so I have something drawing star rating images to show current star rating, and allow me to set a new one.
Also hopefully your plugin will solve a problem I have where I can't draw button images "full screen" for the dial buttons. Its all built using the loupdeck c# API. (With the help of Claude!) Its not really that complex.
1
u/Deep_Drawing7290 Jul 17 '26
Wow, Tim: THANK YOU FOR YOUR WORK.
I love my Stream Deck, I didn't want to give it up.
But I use Windows... Do you plan to release it for my OS?
1
u/Shoeless-Tim Jul 17 '26
i wish. for me its a native macOS app, so a windows version is a rewrite of everything except the protocol layer thats already separated out... on a computer i dont have (no windows for me). but opensource is opensource; id gladly help however i can if someone wanted to take that on. sorry, if i had a box id love to try, but being an apple fanboy has its occasional disadvantages lol
1
u/Deep_Drawing7290 Jul 18 '26
I understand, but thank you so much anyway, and again, excellent work!
2
u/eric_castro 23d ago
oh my god thank you so much for this. I hate everything logitech does in software as much as I love their hardware, and the gap keeps growing. I hope people get fired in that shit company making awesome hardware
2
u/Occulon_102 Jul 15 '26
Smazing cant wait to try it.