Control Chromecast

v1.0.0

Control Chromecast devices on your local network - discover, cast media, control playback, manage queues, and save/restore states

3· 2.1k·3 current·5 all-time
Security Scan
VirusTotalVirusTotal
Benign
View report →
OpenClawOpenClaw
Benign
high confidence
Purpose & Capability
The name/description are about controlling Chromecast devices and the skill only requires the 'catt' CLI (which is the expected tool for this purpose). No unrelated services, credentials, or binaries are requested.
Instruction Scope
SKILL.md contains concrete catt command examples (scan, cast, play, pause, status, etc.). It references the catt config file (~/.config/catt/catt.cfg) and local-network requirements (mDNS, ports), which are expected for Chromecast control. The instructions do not ask the agent to read unrelated system files, harvest credentials, or transmit data to unexpected external endpoints.
Install Mechanism
Install uses a Python package (uv/pip) to provide the 'catt' CLI (package name 'catt'). Installing from PyPI is common and appropriate here, but pip install runs arbitrary package code at install time and will pull in dependencies (e.g., yt-dlp, ffmpeg-related tooling). Recommend reviewing the catt package source (GitHub repo listed) and PyPI metadata before installing.
Credentials
The skill requests no environment variables or external credentials. This is proportional: controlling local Chromecast devices does not require cloud API keys. The only filesystem/config interaction is the user's catt config in their home directory, which is appropriate.
Persistence & Privilege
always is false (no forced inclusion). The skill will read/write its own config (~/.config/catt/catt.cfg) when using commands like set_default — this is expected but worth noting because it persists device aliases/defaults to the user's home config. Autonomous invocation by the agent is allowed (platform default); that is normal but increases impact if the installed package were malicious.
Assessment
This skill appears coherent and implements Chromecast control by invoking the catt CLI. Before installing, you should: (1) verify the catt package source on the linked GitHub repo and PyPI page to ensure you trust it; (2) be aware that 'pip' installs execute package code and will pull dependencies (yt-dlp, etc.); (3) accept that the tool needs local network access and may open TCP ports (45000–47000) for local-file casting — avoid enabling those ports on untrusted networks; (4) know the tool will write settings to ~/.config/catt/catt.cfg (device aliases/defaults); and (5) consider installing inside a virtual environment or isolated environment if you want to limit system-wide impact.

Like a lobster shell, security has layers — review code before you run it.

Runtime requirements

📺 Clawdis
Binscatt

Install

Install via pip/uv
Bins: catt
uv tool install catt
latestvk9758p3763qxvg0jsrnbgk6wq97z5771
2.1kdownloads
3stars
1versions
Updated 1mo ago
v1.0.0
MIT-0

Chromecast Control

Control Chromecast and Google Cast-enabled devices on your local network using catt (Cast All The Things).

Quick Reference

CommandDescription
catt scanFind all Chromecasts on network
catt cast <url>Cast video/audio
catt pause / playPause/resume
catt stopStop playback
catt statusCurrent playback info
catt volume <0-100>Set volume

Use -d <device> to target a specific device by name or IP.

Discovery & Device Management

# Find all devices
catt scan

# Set a default device (saves to config)
catt -d "Living Room TV" set_default

# Create an alias for easier access
catt -d 192.168.1.163 set_alias tv

# Remove alias or default
catt -d tv del_alias
catt del_default

Casting Media

Basic Casting

# Cast from URL (YouTube, Vimeo, and hundreds of yt-dlp supported sites)
catt cast "https://www.youtube.com/watch?v=VIDEO_ID"

# Cast local file
catt cast ./video.mp4

# Cast a website (displays webpage on TV)
catt cast_site "https://example.com"

Advanced Cast Options

# Cast with subtitles
catt cast -s ./subtitles.srt ./video.mp4

# Start at specific timestamp
catt cast -t 01:30:00 "https://youtube.com/watch?v=VIDEO_ID"

# Play random item from playlist
catt cast -r "https://youtube.com/playlist?list=PLAYLIST_ID"

# Play only video (ignore playlist in URL)
catt cast -n "https://youtube.com/watch?v=VIDEO_ID&list=PLAYLIST_ID"

# Disable automatic subtitle loading
catt cast --no-subs ./video.mp4

# Pass yt-dlp options (e.g., select format)
catt cast -y format=best "https://youtube.com/watch?v=VIDEO_ID"

# Block until playback ends (useful for scripts)
catt cast -b "https://example.com/video.mp4"

Playback Control

catt play              # Resume playback
catt pause             # Pause playback
catt play_toggle       # Toggle play/pause
catt stop              # Stop playback completely
catt skip              # Skip to end of content

# Seeking
catt seek 300          # Jump to 5 minutes (seconds)
catt seek 01:30:00     # Jump to 1h 30m (HH:MM:SS)
catt ffwd 30           # Fast forward 30 seconds
catt rewind 30         # Rewind 30 seconds

Volume Control

catt volume 50         # Set volume to 50%
catt volumeup 10       # Increase by 10
catt volumedown 10     # Decrease by 10
catt volumemute on     # Mute
catt volumemute off    # Unmute

Queue Management (YouTube)

# Add video to end of queue
catt add "https://youtube.com/watch?v=VIDEO_ID"

# Add video to play next
catt add -n "https://youtube.com/watch?v=VIDEO_ID"

# Remove video from queue
catt remove "https://youtube.com/watch?v=VIDEO_ID"

# Clear entire queue
catt clear

State Management

# Save current state (position, volume, what's playing)
catt save

# Restore saved state later
catt restore

Device Information

catt status    # Brief: time, volume, mute status
catt info      # Full: title, URL, player state, media type, etc.

Configuration

Config file: ~/.config/catt/catt.cfg

[options]
device = Living Room TV

[aliases]
tv = Living Room TV
bedroom = Bedroom Speaker

Network Requirements

  • Chromecast and computer must be on same network
  • For local file casting: TCP ports 45000-47000 must be open
  • Some networks block mDNS - use IP address directly if catt scan fails

Supported Sources

Catt uses yt-dlp internally, supporting:

  • YouTube (videos, playlists, live streams)
  • Vimeo, Dailymotion, Twitch
  • Direct video URLs (MP4, MKV, WebM, etc.)
  • Local files (video, audio, images)
  • Hundreds more sites (see yt-dlp supported sites)

Comments

Loading comments...