DeskThing: turning a Spotify Car Thing display into a general desk assistant
Desk Thing: The Discord Thing, Trello Thing, The Weather Thing, The Macro Thing, Just not The Car Thing anymore
At a glance
- What is it?
- DeskThing is an alternative operating system for the Spotify Car Thing, pairing a Chromium based interface on the device with a desktop app on your computer that talks to it over an IPC layer. You install it with an installer from the project site rather than from the repository, load community apps onto the display, and remap the hardware buttons to anything.
- Who is it for?
- DeskThing suits someone who owns a Spotify Car Thing and wants it to do more than play music, and who is comfortable installing a community-built OS onto consumer hardware and accepting that the device was never designed to be a general assistant.
- Can I use it commercially?
- Yes. MIT is a permissive licence: you can use, modify and sell software built on it, as long as you keep its copyright and licence notices.
- Is it still maintained?
- Yes. The repository last received commits 82 days ago.
- What is it written in?
- Mainly TypeScript, according to GitHub's language statistics.
Answers come from the project's GitHub data, last synced on October 25, 2026, and from our analysis. They are not legal advice.
Editorial analysis
What DeskThing is: an OS for hardware Spotify abandoned
The DeskThing project uses Spotify's existing Car Thing and makes it a desk assistant, serving as an alternative OS for the device. The description of what it is has already moved on from the original premise, with the project description reading The Discord Thing, Trello Thing, The Weather Thing, The Macro Thing, Just not The Car Thing anymore, which is a self-aware joke about the fact that the hardware was sold as a car dashboard accessory and is now a general purpose desk widget. The mechanism is described as a simple Car Thing Chromium-based website that can communicate with a Desktop APP on your computer. The device therefore runs a web page, and the desktop application is the bridge, and the community-made apps loaded onto the display are what make it a computer rather than a music controller.
Installation is an installer, and the README tells you not to clone the repository
There is a warning in capital letters in the README: DO NOT PULL MAIN BRANCH TO INSTALL. Instead you go to the official website, deskthing.app, and download the installer for your operating system. The Local Development section repeats the point for a different reason, noting that those steps are for developers contributing to the project, and that for end users installing DeskThing you should use the installer rather than pulling the main branch. The reason the distinction matters is in the setup instructions themselves, which the README explains were tedious to update and led to confusion, so the detailed flashing and installation instructions are now contained in a YouTube video, with additional resources and tutorials linked separately. The README also notes that all instructions are up to date as late as v0.9.0-beta and that later versions may differ in functionality and setup.
The button remapping is the feature that makes the device usable
The Configurable Controls section is the heart of the project, and the phrasing is enthusiastic. Make any button do any function. Control audio with the top buttons, front buttons, back buttons, really whatever you want. Modify them from the desktop user interface. And add more directly from apps, with the parenthetical that basically you can do anything. The last point is the one that matters architecturally, because it means the button map is not a static configuration but something an installed app can extend. The hardware has a small set of physical controls, the top buttons, the front buttons, the back buttons, and a device with remappable inputs can be driven by any app that knows how to write to them. The screenshot is the mappings page, which the README notes will be updated in v0.12.
Spotify integration, local audio, and what the device shows
The Spotify Integration section is the most fully specified feature. Show currently listening with the album, artist, song name and album art. Control Spotify, with skip, pause, play, rewind, shuffle and repeat. Supports podcasts too. Set the audio output source. The separate Local Audio Control section is the broader version, showing what is currently playing and controlling any playing media with the same transport controls, which covers the case where the audio is not coming from Spotify at all. The screenshot is a community app rather than a stock screen, the LyrThing app by Espeon showing Spotify lyrics, which is a good illustration of the design: the stock apps are thin, and the value is in what the community writes. The README also warns that not all of the listed features are updated and are pending a revision, and that this list is new as of v0.7.0.
The all in one package: download, manage and update from the desktop app
The All In One Package section describes the desktop application side. Download apps directly from the desktop app. Manage and update the Car Thing's display. And a third line that is just Probably more, with an instruction to check it out. The implication is that the desktop app is a full management surface for the device rather than a configuration dialog, and the app store inside it is where community apps are obtained. The project maintains a Trello board for development, a Reddit community, a Discord server, a YouTube channel, and an official website, and there is a separate Car Thing Hax community Discord linked as well. The project is free to use, with a donations link on the support page of the website, and the author invites contributions through that link or GitHub Sponsors.
Local development: Electron with main, preload, renderer and shared
The development setup is documented in a level of detail that suggests the project expects outside contributors. You need Node 25 or newer and npm 11.6.2 or newer. You clone the repository, change into the DeskThingServer directory, run npm install, and run npm run dev. The architecture is given as a directory listing. The main/ directory holds all of the server end code, the preload/ directory holds types and definitions for the IPC communication layer, the renderer/ directory is the GUI of the application, and shared/ holds shared types between the frontend and backend that are local to the server, with the global types living in a separate package called @deskthing/types. The split into main, preload and renderer with an explicit IPC type layer is the standard Electron arrangement, and here the type layer is treated as a first class concern rather than an afterthought.
git clone https://github.com/itsriprod/deskthing
cd ./deskthing/DeskThingServer
npm install
npm run devThe unpublished types package, and the linking dance it forces
There is a wrinkle in the development instructions that is worth quoting, because it is the kind of thing that costs an afternoon. If you notice a lot of type issues, this may be due to the @deskthing/types package being unpublished. The fix is to clone the types package and link it locally, in a new, unrelated directory, with a git clone of the deskthing-types repository, an npm install, and an npm link, with a note that on Linux you may have to run that as sudo due to symlinks. Then in the DeskThingServer directory you run npm link @deskthing/types, and now you are using the development form of the types package. The reason the project is structured this way, with the global types in a separate published package and the local ones in shared/, is so that the Car Thing's own web interface and the desktop app agree on the same message shapes, and the price is that contributors have to link two repositories by hand.
git clone https://github.com/itsriprod/deskthing-types
cd deskthing-types
npm install
npm linkContributing conventions, upkeep and where the project stands
The Contributing section is specific. For issues, include details such as the operating system, the DeskThing version and steps to reproduce. For pull requests, fork the repo, make changes on a feature branch, and ensure the code follows the project style, meaning the TypeScript types come from @deskthing/types or the shared/ directory, and for new features include screenshots or demos if applicable. Use ESLint and Prettier if configured, and test your changes locally before submitting. The repository carries a CODE_OF_CONDUCT.md and a LICENSE file, and the licence is MIT. On upkeep, the last push was on 2026-08-04, the most recent tagged releases are v0.11.15 and v0.11.16 both on 2025-08-02 and v0.11.17 on 2025-08-13, and the repository is not archived. So the code has been touched more recently than the last release, which is normal for a project whose releases are cut from the same branch that receives contributions.
Editorial conclusion
DeskThing suits someone who owns a Spotify Car Thing and wants it to do more than play music, and who is comfortable installing a community-built OS onto consumer hardware and accepting that the device was never designed to be a general assistant. It is the wrong choice for anyone who wants a supported product, because the project ships an installer rather than a package and the setup instructions live in a video rather than in text, and a poor fit if you have no Car Thing, since the hardware is the point. Before installing, read the warning in the README about not pulling the main branch, download the installer for your OS from deskthing.app, and note that the instructions in the repository are stated to be up to date only as of v0.9.0-beta, with later versions differing in functionality and setup.
Frequently asked questions
What is DeskThing and what hardware does it need?
DeskThing is an alternative operating system for the Spotify Car Thing. It is a simple Car Thing Chromium-based website that communicates with a desktop application on your computer, and the device is what makes it a desk assistant rather than a general desktop app.
How do I install DeskThing?
Do not pull the main branch. Go to the official website at deskthing.app and download the installer for your operating system. The detailed flashing and installation instructions are in a YouTube video, and the README notes that the written instructions are up to date only as of v0.9.0-beta.
What can the Car Thing buttons do with DeskThing?
Any button can be made to do any function. You can control audio with the top buttons, front buttons or back buttons, change the mappings from the desktop user interface, and apps can add more mappings directly, which the README puts as basically you can do anything.
How do I set up a local development environment for DeskThing?
You need Node 25 or newer and npm 11.6.2 or newer, then clone the repo, cd into the DeskThingServer directory, run npm install and npm run dev. The architecture splits into main for server end code, preload for IPC types, renderer for the GUI and shared for types local to the server.
Why do I get type errors when developing DeskThing?
The README says this may be because the @deskthing/types package is unpublished. The fix is to clone the deskthing-types repository into a separate directory, run npm install and npm link there, then run npm link @deskthing/types in the DeskThingServer directory. On Linux the link step may need sudo because of symlinks.
Official sources
Add this badge to your README
If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.
[](https://hysenlabs.com/projects/itsriprod-deskthing)Was this useful?