ts-status

March 1, 2026 ยท View on GitHub

NDJSON bridge for the TeamSpeak Remote Apps WebSocket API. Primarily serves as the TeamSpeak connector for dms-plugin-teamspeak.

Connects to TeamSpeak's local WebSocket, tracks server/channel/client state, and emits newline-delimited JSON on stdout whenever state changes. Designed to be consumed by status bar widgets, scripts, or any tool that can read NDJSON.

Install

Go:

go install github.com/thisilike/ts-status@latest && sudo install ~/go/bin/ts-status /usr/local/bin/

Usage

ts-status [--addr ws://localhost:5899] [--apikey-path path]
FlagDefaultDescription
--addrws://localhost:5899TeamSpeak Remote Apps WebSocket address
--apikey-pathdata/status_apikey.txtPath to persist the API key

Output

Each line is a JSON object. State messages contain the full server list:

{"type":"state","servers":[{"serverUid":"abc=","serverName":"My Server","status":4,"statusText":"Connected to server","channelName":"Lobby","nickname":"user","inputMuted":false,"outputMuted":false,"inputDeactivated":false,"talking":false,"away":false,"awayMessage":"","talkPower":0,"channelMembers":[{"id":1,"isSelf":true,"nickname":"user","inputMuted":false,"outputMuted":false,"inputDeactivated":false,"talking":false,"away":false,"talkPower":0}]}]}

Error messages:

{"type":"error","message":"connection failed: ..."}

First run

On first connection, TeamSpeak will show an approval prompt for the remote app. After approval, the API key is automatically persisted to the path specified by --apikey-path.