kosmi dj

ReviewAudited by ClawScan on May 10, 2026.

Overview

This Kosmi automation is mostly on-purpose, but it needs review because it can use your login/session, execute commands from its .env file, and keep controlling a room in a long-running loop.

Install only if you are comfortable letting an automated browser control your Kosmi room. Use a dedicated Kosmi account if possible, verify the room URL is really on Kosmi before storing credentials, protect the .env file, install a trusted pinned agent-browser version, and manually stop any DJ loop when finished.

Findings (5)

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

If the room URL is mistyped, changed, or malicious, the agent could type the user's Kosmi credentials into the wrong page.

Why it was flagged

The script opens the user-configured URL and then fills Kosmi email/password fields if it sees matching inputs. The artifacts do not show a host/domain validation step before credentials are entered.

Skill content
ab open "$KOSMI_ROOM_URL"
...
ab fill "$EMAIL_BOX" "$KOSMI_EMAIL"
...
ab fill "$PASS_BOX" "$KOSMI_PASSWORD"
Recommendation

Validate that KOSMI_ROOM_URL is on the expected Kosmi domain before filling credentials, prompt before first login, and prefer a dedicated Kosmi account or encrypted persistent session over storing a password.

What this means

Commands placed in the .env file would run automatically when the skill is invoked, so a tampered or copied .env could execute local shell commands.

Why it was flagged

The script sources the .env file as shell code rather than parsing only key/value pairs. The same pattern appears in the other scripts.

Skill content
if [[ -f "$ENV_FILE" ]]; then
  set -a
  source "$ENV_FILE"
  set +a
fi
Recommendation

Use a safe .env parser, keep the file skill-specific, restrict its permissions, and do not paste untrusted content into the .env file.

What this means

A stale or tampered PID file could cause the script to stop an unrelated local process when the DJ loop starts.

Why it was flagged

The loop uses a predictable /tmp PID file and kills whatever PID is stored there without verifying that it belongs to this skill's own loop process.

Skill content
PID_FILE="/tmp/kosmi-dj-loop.pid"
...
OLD_PID="$(cat "$PID_FILE" 2>/dev/null)" || true
...
kill "$OLD_PID" 2>/dev/null || true
Recommendation

Store runtime files in a private user-owned directory, use locking, and verify the target process command/session before sending kill signals.

What this means

If started, the skill can keep controlling the Kosmi room after the initial request until the user stops it.

Why it was flagged

The DJ mode is an indefinite loop that keeps selecting and playing videos until interrupted; this is disclosed and central to the auto-DJ purpose.

Skill content
while true; do
  # Get next video
  NEXT_URL="$(next_video)"
Recommendation

Start loop mode only intentionally, monitor the status/PID file, and stop it when the watch party is over.

What this means

The external package has substantial browser control, so users must trust the installed agent-browser version.

Why it was flagged

The skill depends on an external browser-automation CLI installed globally, but no pinned install spec or reviewed dependency version is provided.

Skill content
`agent-browser` CLI installed and on PATH (`npm install -g agent-browser` or available in the environment)
Recommendation

Install agent-browser only from a trusted source, pin and document the expected version, and declare required binaries such as agent-browser and jq in metadata.