explaingit

phamminhkha/traylink

15TypeScriptAudience · vibe coderComplexity · 2/5Setup · easy

TLDR

A desktop app for macOS and Windows that runs a local server so your phone can control which apps launch on your PC over Wi-Fi, acting like a software Stream Deck with a mobile-optimized web interface.

Mindmap

mindmap
  root((traylink))
    What It Does
      Remote app launcher
      Phone as control panel
    Features
      Remote Deck mobile UI
      File upload phone to PC
      Keyboard shortcut API
      Screen awake mode
    Setup
      App allowlist dashboard
      HTTPS self-signed cert
      Auto-start on boot
    Tech Stack
      Tauri
      Rust backend
      React frontend
    Platforms
      macOS
      Windows
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Turn your phone into a Stream Deck alternative that opens specific apps on your PC from across the room over Wi-Fi.

USE CASE 2

Upload files from your phone directly to your PC through the TrayLink browser interface without a USB cable.

USE CASE 3

Trigger keyboard shortcuts on your PC remotely from a phone using TrayLink's HTTP API.

Tech stack

TypeScriptRustReactTauri

Getting it running

Difficulty · easy Time to first run · 30min

First-time phone setup requires accepting a self-signed HTTPS certificate in the mobile browser.

No license specified in the repository.

In plain English

TrayLink is a desktop application for macOS and Windows that runs a small HTTP server on your local network, letting other devices on the same Wi-Fi control which apps launch on your computer. The description is written in Vietnamese, but the core concept is similar to a Stream Deck: a phone or tablet can act as a control panel with a grid of app icons, and tapping one opens that app on the PC. The app sits in the system tray or menu bar and starts automatically on boot. From a dashboard accessible locally, you set up an allowlist of applications and commands that remote devices are permitted to trigger. Other devices on the same Wi-Fi can then send HTTP requests to open an app by name, open a file, or run a whitelisted command. The dashboard shows the server status, a log of recent requests, and a copy-able API link for each app. The Remote Deck interface is a mobile-optimized web page the user opens on their phone or tablet. It shows a grid of the configured app icons and lets you tap to launch them on the PC. It requires HTTPS (the app serves on a second port using a self-signed certificate), and the README walks through how to bypass the browser certificate warning on first use. There is also support for uploading files from the phone to the PC, sending keyboard shortcuts via the API, and keeping the phone screen awake while the Remote Deck is open. The project is built with Tauri, a framework that combines a Rust backend with a React frontend to produce small native desktop applications. Pre-built installers for macOS (both Intel and Apple Silicon) and Windows are available from the GitHub Releases page. The README also documents how to build the project locally and how GitHub Actions generates release artifacts when a version tag is pushed.

Copy-paste prompts

Prompt 1
I installed TrayLink and want to add my most-used apps to the Remote Deck grid. Walk me through the dashboard allowlist setup and how to share the URL with my phone.
Prompt 2
TrayLink uses a self-signed certificate for HTTPS. How do I get my phone's browser to trust it without a certificate warning every time I open the Remote Deck?
Prompt 3
I want to send an HTTP request to TrayLink from a script to launch an app automatically. What does the API endpoint and request format look like?
Open on GitHub → Explain another repo

← phamminhkha on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.