Quick Links
‼️ DeskThing is completely free to use but donations are greatly appreciated ☕
Let's begin, shall we?
This is the DeskThing project. Using Spotify's existing Car Thing, the DeskThing makes the perfect desk assistant. In short, the DeskThing serves as an alternative OS for the Spotify Car Thing. It allows you to load up community-made apps to it to do anything from control your local audio to seeing who is in your discord call! If you want to help contribute to this endeavor and attempt to revive the car thing, you can do so through my buymeacoffee link or through Github Sponsors.
Cheers!
Dammit Jeff posted a video covering the DeskThing! Check it out here
Instead, go to The Official Website and download the installer for your OS For a video walkthrough of v0.6.0, go to this video
All instructions are up-to-date as late of v0.9.0-beta. Later versions may differ in functionality and setup
The DeskThing is a simple CarThing Chromium-based website that can communicate with a Desktop APP on your computer. The CarThing can:
Note: Not all of these are updated and are pending a revision. This is new as of v0.7.0
-
- Download apps directly from the Desktop App
- Manage and update the Car Thing's display
- Probably more - just check it out already
-
- 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 UI
- Add more directly from apps! (Basically, you can do anything)
*The deskthing mappings page - will be updated in v0.12*
App Highlights (View the rest on the deskthing website or in the app store in deskthing)
-
- Show currently listening (Album, Artist, Song name, album art)
- Control Spotify (Skip, pause, play, rewind, shuffle, repeat)
- Supports Podcasts too!
- Set Audio Output Source
*[LyrThing](https://github.com/espeon/LyrThing/) community app showing spotify lyrics by Espeon*
-
- Show currently listening (Album, Artist, Song name, album art)
- Control Any Playing Media (Skip, pause, play, rewind, shuffle, repeat)
Gif uploaded via the Image Viewer app
Updating this ReadMe with the updated flashing / installation instructions was tedious and led to confusion
So now, it is contained inside an easy youtube video
You can also check out the Additional Resources for further tutorials if you'd rather look there.
https://www.youtube.com/watch?v=iW2biAnq0n8
While older versions may work, this is recommended.
Node Version: >=v25.0.0 NPM Version: >=11.6.2
Note: These steps are for developers contributing to the project. For end-users installing DeskThing, do not pull the main branch—use the installer from The Official Website instead.
- Clone the repo
git clone https://github.com/itsriprod/deskthing- cd into the directory
cd ./deskthing/DeskThingServer- Install packages
npm install- Run the development build
npm run devThat's it, you should be off to the races! A few aspects of the app are different while in development, but nothing monumental.
The architecture is
src/
main/ // all of the server-end code
preload/ // types and definitions for the IPC communication layer
renderer/ // the GUI of the application
shared/ // shared types between the frontend and backend that are local to the server (global types are in @deskthing/types)
If you notice a lot of types issues, this may be due to the @deskthing/types being unpublished. To solve, you'll need to clone the Types package and link it locally
in a new, unrelated directory:
git clone https://github.com/itsriprod/deskthing-types
cd deskthing-types
npm install
# On linux you may have to run this as sudo due to symlinks
npm linkin the deskthingserver directory
npm link @deskthing/typesThere, now you'll be using the development form of the types package!
Welcome contributions! Here's how to get started:
- Reporting Issues: Use GitHub Issues to report bugs or suggest features. Include details like OS, DeskThing version, and steps to reproduce.
- Submitting Pull Requests: Fork the repo, make changes on a feature branch, and submit a PR. Ensure code follows the project's style (e.g., TypeScript types from @deskthing/types or shared/ directory). For new features, include screenshots or demos if applicable.
- Coding Standards: Use ESLint/Prettier if configured. Test your changes locally before submitting.
- Questions: Join the DeskThing Discord for discussions.
- 🔧 superbird-tool - This is the CarThing image that is being used. Be sure to either include this link or steps on how to flash the CarThing.
- 🐤 superbird-custom-webapp - The React web app framework that this project started with.
- 🗨️ Car Thing Hax Community Discord - The discord where there is this project and so much more!
Questions? DM me on discord @riprod
DeskThing wouldn't be possible without our sponsors
Want to support deskthing? You can here!





