Skip to content

StreamDecky is a web-based tool that lets you create customizable buttons to remotely launch applications or handle custom URIs. Built with Next.js and Node.js, it offers a dynamic and responsive interface, driven by a simple 'settings.json' file.

Notifications You must be signed in to change notification settings

BeastCodZ/streamdecky

Repository files navigation

image

StreamDecky

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.

Features

  • 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.

Pending stuff

  • Settings Page
  • more shortcuts(change of volume and stuff)
  • Saving application layout and opening bulk application

Getting Started

Prerequisites

  • Node.js (version 14 or higher)
  • npm or yarn

Installation

  1. Clone the repository:
git clone https://github.com/yourusername/StreamDecky.git
cd StreamDecky
  1. Install the dependencies
npm install
# or
yarn install
  1. Start the development server
npm run dev
# or
yarn dev

Running the Server

Start the Node.js server:

node server.js
# The server will run on the same port as the Next.js application

Usage

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.

Screenshots

image

License

This project is licensed under the MIT License

About

StreamDecky is a web-based tool that lets you create customizable buttons to remotely launch applications or handle custom URIs. Built with Next.js and Node.js, it offers a dynamic and responsive interface, driven by a simple 'settings.json' file.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published