Transparent chat overlay for streamers. Twitch, YouTube, and Kick in one window.
Ghost Chat is a lightweight desktop overlay that displays live chat from Twitch, YouTube, and Kick directly on your screen. No browser needed. Connect to one or all three platforms at once and see messages in a single, unified stream.
Built with Go and Wails v3 for native performance. Runs on macOS and Windows.
- Multi-platform chat - Twitch IRC, YouTube Live Chat, and Kick in one overlay
- Vanish mode - Toggle transparency and click-through with a global hotkey
- Custom themes - Built-in themes (Default, Compact, Bubble) or create your own
- Emote support - Native Twitch, BTTV, FFZ, 7TV, YouTube custom emoji, Kick emotes
- Badge rendering - Twitch badges via GQL API, YouTube member/mod/owner badges
- Super Chat & Membership - YouTube Super Chat and membership events with styling
- System tray - Runs quietly in the tray with quick access to vanish, config, and quit
- i18n - English and German, more languages welcome
- Fade messages - Auto-fade with configurable timeout per platform
- Filtering - Hide bots, commands, or specific users per platform
| Platform | Download |
|---|---|
| macOS (Universal) | ghost-chat-macos.zip |
| Windows | ghost-chat.exe |
- Go 1.25+
- Node.js 20+
- pnpm
- Wails v3 CLI:
go install github.com/wailsapp/wails/v3/cmd/wails3@latest - macOS: Xcode Command Line Tools (
xcode-select --install) - Windows: WebView2 (included in Windows 10/11)
Verify: wails3 doctor
wails3 dev # dev mode with hot-reload
wails3 task build # production binary
wails3 task package # .app bundle (macOS) or .exe (Windows)
go test ./internal/... # Go tests
cd frontend && pnpm fix # lint + format| Layer | Tech |
|---|---|
| Backend | Go, Wails v3 bindings + events |
| Frontend | React, TypeScript, Zustand, CSS Modules |
| Chat clients | Twitch IRC (WebSocket), YouTube innertube (HTTP polling), Kick Pusher (WebSocket) |
| Build | Taskfile, Vite, GitHub Actions |
See CLAUDE.md for the full project structure and conventions.
Ghost Chat uses i18next. To add a language:
- Copy
frontend/public/locales/en-US/translation.json - Create a new folder with your locale code (e.g.
fr-FR) - Translate the strings
- Submit a PR
See CONTRIBUTING.md for guidelines.







