StreamDecky is a web-based application that allows you to create and manage customizable buttons that launch applications and handle custom URI schemes. The application is built using Next.js for the frontend and Node.js (Express) for the backend, providing a seamless experience for managing and launching applications remotely.
- Dynamic Button Generation: Buttons are dynamically generated based on a
settings.json
configuration file. - Remote Application Launching: Launch applications or handle custom URIs from the server-side, keeping the client-side light and secure.
- Customizable Interface: Easily add or modify buttons by updating the
settings.json
file. - Responsive Design: The UI adjusts the grid layout based on the number of buttons, ensuring a consistent look across different screen sizes.
- Settings Page
- more shortcuts(change of volume and stuff)
- Saving application layout and opening bulk application
- Node.js (version 14 or higher)
- npm or yarn
- Clone the repository:
git clone https://github.com/yourusername/StreamDecky.git
cd StreamDecky
- Install the dependencies
npm install
# or
yarn install
- Start the development server
npm run dev
# or
yarn dev
Start the Node.js server:
node server.js
# The server will run on the same port as the Next.js application
Configuration settings.json: This file contains the configuration for the buttons. Each button has a name, path (for executable applications), uri (for custom URI schemes), and icon.
Example settings.json:
[
{
"name": "Valorant",
"cmd": "\"C:\\Riot Games\\Riot Client\\RiotClientServices.exe\" --launch-product=valorant --launch-patchline=live",
"type": "exe",
"icon": "/icons/valorant.png",
"processName": "VALORANT-Win64-Shipping.exe"
},
{
"name": "Grand Theft Auto V",
"cmd": "com.epicgames.launcher://apps/0584d2013f0149a791e7b9bad0eec102%3A6e563a2c0f5f46e3b4e88b5f4ed50cca%3A9d2d0eb64d5c44529cece33fe2a46482?action=launch&silent=true",
"type": "URI",
"icon": "/icons/gta5.png",
"processName": "GTA5.exe"
},
{
"name": "Tekken 8",
"cmd": "\"D:\\Games\\TEKKEN 8\\Polaris\\Binaries\\Win64\\Polaris-Win64-Shipping.exe\"",
"type": "exe",
"icon": "https://img.playstationtrophies.org/images/2024/01/24/icon/10e1c115a12eb21755f86f0d7a64548d-l.png",
"processName": "Polaris-Win64-Shipping.exe"
},
{
"name": "Discord",
"cmd": "\"C:\\Users\\BeastCodZ\\AppData\\Local\\Discord\\Update.exe\" --processStart Discord.exe",
"type": "exe",
"icon": "https://static.vecteezy.com/system/resources/previews/006/892/625/non_2x/discord-logo-icon-editorial-free-vector.jpg",
"processName": "Discord.exe"
},
{
"name": "Spotify",
"cmd": "\"C:\\Users\\BeastCodZ\\AppData\\Roaming\\Spotify\\Spotify.exe\"",
"type": "exe",
"icon": "https://upload.wikimedia.org/wikipedia/commons/thumb/7/74/Spotify_App_Logo.svg/800px-Spotify_App_Logo.svg.png",
"processName": "Spotify.exe"
},
{
"name": "Settings",
"cmd": "",
"type": "misc",
"icon": "/settings.png",
"processName": ""
}
]
Running the Application Once the server and development server are running, open your browser and navigate to http://localhost:3000. You will see the StreamDecky interface with buttons based on the settings.json configuration.
Settings Page The settings page allows you to view and update the settings.json file live. Any changes made will automatically reflect in the StreamDecky interface.
This project is licensed under the MIT License