Play Local Music

PassAudited by VirusTotal on May 12, 2026.

Overview

Type: OpenClaw Skill Name: play-music Version: 0.1.0 The skill bundle is designed for local music playback and exhibits no malicious intent. All file operations (reading music files from `MUSIC_DIR`, writing a lock file to `/tmp/music_player.lock`) and network communications (localhost-only on port 12346) are confined to the stated purpose. The `SKILL.md` and other documentation files contain no prompt injection attempts or instructions for unauthorized actions. While the `music-server.py` sets `0o666` permissions on its lock file, this is a minor security hygiene issue for a temporary file containing only a port number, not indicative of malicious behavior or a significant vulnerability.

Findings (0)

Artifact-based informational review of SKILL.md, metadata, install specs, static scan signals, and capability signals. ClawScan does not execute the skill or run runtime probes.

What this means

The skill may not run as documented, and any separately obtained wrapper would be unreviewed by these artifacts.

Why it was flagged

The supplied file manifest does not include a `play-music` file, only `music-server.py` plus documentation and metadata, so the advertised executable wrapper is not available for review.

Skill content
The skill has **one clear entry point**: `./play-music`
Recommendation

Verify that the installed package includes the expected `play-music` wrapper and inspect it before running; avoid downloading a replacement from an unknown source.

What this means

Installing pygame runs third-party package code from the configured Python package source.

Why it was flagged

The setup depends on a manual, unpinned package install. This is expected for audio playback, but it is still a supply-chain trust point.

Skill content
pip install pygame
Recommendation

Install dependencies from a trusted package index or environment, and consider pinning a known-good pygame version.

What this means

A local caller could try to make the player load a file path outside the configured music directory, though no file upload or data exfiltration is shown.

Why it was flagged

The command-provided song name is joined to the music directory without a visible basename or path-resolution check. This is local and purpose-aligned, but path components could attempt to play files outside the intended folder.

Skill content
song_name = command.get("song") ... song_path = MUSIC_DIR / song_name
Recommendation

Use simple filenames for playback and consider adding path normalization that rejects `..` or absolute paths.

NoteHigh Confidence
ASI10: Rogue Agents
What this means

The skill may leave a local background process active until music is stopped or the server is shut down.

Why it was flagged

The skill intentionally starts a background server for playback control. This is disclosed and fits the purpose, but users should be aware it can keep running during playback.

Skill content
The server auto-starts when you play music and auto-shuts down when you stop music.
Recommendation

Use `stop` or `server-stop` when finished, and check the local port/process if playback control behaves unexpectedly.