claude-cast
Stream Twitch, YouTube, and Kick live streams alongside your Claude Code sessions. Audio plays via mpv, live chat scrolls in a neo-blessed T
Open source Repository Open in the app JSON README (API)
About
Stream Twitch, YouTube, and Kick live streams alongside your Claude Code sessions. Audio plays via mpv, live chat scrolls in a neo-blessed TUI side pane with colored usernames and badges, and an animated waveform visualizer shows playback status. Three layout modes (compact, rich, minimal), full slash command control (/claude-cast pause, mute, volume, stop), and keyboard shortcuts for hands-free control. Twitch chat works zero-config, YouTube and Kick supported out of the box. Runs in a tmux split pane so your coding workflow stays uninterrupted.
Details
- Kind
- Plugins
- Topic
- Social & content
- Publisher
- kvreem
- Origin
- marketplace
- Category
- ferramentas
- Stars
- 6
- Last push
- 2026-04-02T18:34:00Z
- Repository state
- ativo
- Language
- TypeScript
- License
- MIT
- Added
- 2026-08-30 01:48:58
- Updated
- 2026-08-30 01:48:58
- Origin id
kvreem/claude-cast/claude-cast
README
<div align="center">
```
▁▃▅▇█▇▅▃▁▂▅▇▆▃▁▃▅▇█▇▅▃▁▂▅▇▆▃▁▃▅▇█▇▅▃▁▂▅▇▆▃▁▃▅▇█▇▅▃▁▂▅▇▆▃▁▃▅▇█▇▅▃▁▂▅▇▆▃
██████╗██╗ █████╗ ██╗ ██╗██████╗ ███████╗ ██████╗ █████╗ ███████╗████████╗
██╔════╝██║ ██╔══██╗██║ ██║██╔══██╗██╔════╝ ██╔════╝██╔══██╗██╔════╝╚══██╔══╝
██║ ██║ ███████║██║ ██║██║ ██║█████╗ █████╗██║ ███████║███████╗ ██║
██║ ██║ ██╔══██║██║ ██║██║ ██║██╔══╝ ╚════╝██║ ██╔══██║╚════██║ ██║
╚██████╗███████╗██║ ██║╚██████╔╝██████╔╝███████╗ ╚██████╗██║ ██║███████║ ██║
╚═════╝╚══════╝╚═╝ ╚═╝ ╚═════╝ ╚═════╝ ╚══════╝ ╚═════╝╚═╝ ╚═╝╚══════╝ ╚═╝
▁▃▅▇█▇▅▃▁▂▅▇▆▃▁▃▅▇█▇▅▃▁▂▅▇▆▃▁▃▅▇█▇▅▃▁▂▅▇▆▃▁▃▅▇█▇▅▃▁▂▅▇▆▃▁▃▅▇█▇▅▃▁▂▅▇▆▃
```
<h3>Stream Twitch, YouTube, and Kick right inside Claude Code.</h3>
<a href="#quick-start">Quick Start</a> ·
<a href="#features">Features</a> ·
<a href="#commands">Commands</a> ·
<a href="https://github.com/kvreem/claude-cast/issues">Issues</a>
</div>
---
## Setup
### 1. Install dependencies
```bash
brew install mpv streamlink tmux
```
### 2. Start a tmux session
claude-cast runs as a side pane in tmux. Start tmux first, then launch Claude Code inside it.
```bash
tmux new-session -s dev
claude
```
### 3. Install the plugin
```
/plugin install claude-cast
```
### 4. Start a stream
```bash
# Twitch — just the channel name
/claude-cast shroud
# Twitch — full URL works too
/claude-cast https://www.twitch.tv/swagg
# Kick
/claude-cast kick.com/myrongainesx
# YouTube
/claude-cast https://www.youtube.com/live/dQw4w9WgXcQ
# Force a platform
/claude-cast xqc kick
```
Audio plays. Chat scrolls. Code continues.
---
## Features
**Multi-Platform Streaming**<br/>
Twitch, YouTube, and Kick. Auto-detects the platform from the channel name or URL. Powered by streamlink + mpv.
**Live Chat**<br/>
Real-time chat alongside your code. Twitch IRC (zero-config), YouTube Data API, and Kick WebSocket. Colored usernames and badges.
**Three Layout Modes**<br/>
Switch between compact, rich, and minimal layouts to match your workflow. Cycle with `l` or `/claude-cast layout <mode>`.
```
compact — max chat, minimal player chrome (default)
rich — full player with volume bar and elapsed time
minimal — single-line player, maximum chat density
```
**Non-Blocking Tmux Pane**<br/>
Player opens as a side pane in your terminal via tmux. Your Claude Code session stays untouched. Auto-installs tmux if needed.
**Full Keyboard Control**<br/>
Control everything without leaving your terminal.
```
p — pause / play m — mute / unmute
c — toggle chat l — cycle layout
↑↓ — volume q — hide player (audio continues)
Q — stop everything
```
**Slash Command Control**<br/>
Every action available as a Claude Code command for AI-assisted control.
---
## Commands
```
/claude-cast <channel> Start streaming (auto-detect platform)
/claude-cast pause Pause audio
/claude-cast play Resume audio
/claude-cast mute Mute audio
/claude-cast unmute Unmute audio
/claude-cast volume <0-100> Set volume
/claude-cast hide-chat Hide chat panel
/claude-cast show-chat Show chat panel
/claude-cast hide-player Close TUI (audio continues)
/claude-cast show-player Open TUI
/claude-cast layout <mode> Switch layout (compact|rich|minimal)
/claude-cast stop Stop everything
/claude-cast status Current state
/claude-cast:configure API keys and preferences
```
---
## Architecture
```
┌─ Terminal (tmux) ──────────────────────────────────────┐
│ │
│ Claude Code │ claude-cast TUI │
│ (your work) │ (player + chat) │
│ │ │
│ > /claude-cast swagg │ ▶ swagg ▁▃▅▇█▇▅▃ Vol:75% │
│ Now streaming swagg... │ user1: nice play! │
│ │ user2: GG │
│ > fixing bugs... │ user3: lol │
│ │ │
└──────────────────────────┴─────────────────────────────┘
│ │
│ MCP (stdio) │ file-based IPC
▼ │
stream-server ◄─────────────────┘
│ │
▼ ▼
mpv chat (IRC/WS/API)
```
---
## Tech Stack
| Component | Technology |
|-----------|-----------|
| Runtime | Bun |
| MCP Server | @modelcontextprotocol/sdk |
| TUI | neo-blessed |
| Audio | mpv + streamlink |
| Chat | Twitch IRC · YouTube API · Kick WebSocket |
| IPC | File-based state + ndjson |
| Monorepo | Bun workspaces |
---
## Project Structure
```
claude-cast/
├── packages/
│ ├── stream-server/ MCP server, player engine, chat engines
│ ├── stream-tui/ Blessed TUI with layouts and widgets
│ └── shared/ Types, IPC protocol, platform detection
├── skills/ Slash command definitions
├── hooks/ Session lifecycle hooks
└── scripts/ Dependency checks, tmux install
```
---
## Requirements
| Dependency | Install | Purpose |
|-----------|---------|---------|
| **Claude Code** | [claude.com/code](https://claude.com/code) | Plugin host |
| **tmux** | `brew install tmux` | Side pane for player + chat |
| **mpv** | `brew install mpv` | Audio playback |
| **streamlink** | `brew install streamlink` | Stream URL extraction |
| **Bun** | Required by Claude Code | Plugin runtime |
Supported on **macOS** and **Linux**.
---
## Configuration
Run `/claude-cast:configure` to set:
| Setting | Description | Default |
|---------|-------------|---------|
| `layout` | Default layout: `compact`, `rich`, or `minimal` | `compact` |
| `volume` | Default volume (0-100) | `75` |
| `pane-width` | Tmux pane width in columns | `40` |
| `youtube-api-key` | Required for YouTube chat | — |
| `twitch-client-id` | Optional, for richer stream metadata | — |
Config stored at `~/.claude/channels/claude-cast/config.json`.
---
## Contributing
We welcome contributions. See [CONTRIBUTING.md](CONTRIBUTING.md) for guidelines.
**Development setup:**
```bash
git clone https://github.com/kvreem/claude-cast
cd claude-cast
bun install
bun run dev
```
**Before submitting:**
```bash
bun run typecheck # Type checking
bun run lint # Linting
bun test # Run tests
```
---
## Repository Activity

---
## License
MIT License
Copyright (c) 2026 claude-cast contributors
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.