Codecast

SuspiciousAudited by ClawScan on May 10, 2026.

Overview

Codecast clearly streams coding sessions to Discord, but it also encourages unrestricted agent permissions and includes bridge/review modes that can enable unsafe local actions.

Install only if you understand that coding-agent output, file previews, and command results will be sent to Discord. Avoid the global Claude permission-bypass setup, restrict the Discord bridge to specific channels and users, and do not use PR review mode on untrusted PRs until the eval-based command construction is fixed.

Findings (6)

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

A coding agent launched through this workflow may read, write, and run commands without normal confirmation, increasing the blast radius of mistakes or prompt-injected instructions.

Why it was flagged

The setup recommends globally disabling Claude Code permission prompts and allowing all actions, while SKILL.md examples also use --dangerously-skip-permissions.

Skill content
"defaultMode": "bypassPermissions", "allow": ["*"]
Recommendation

Do not require global permission bypass. Prefer per-project approvals, sandboxed working directories, and explicit confirmation for file writes, shell commands, network access, and destructive actions.

What this means

If the bridge is running, a Discord user who can reach it could terminate arbitrary local processes by PID, not just Codecast sessions.

Why it was flagged

The Discord !kill handler passes a user-supplied PID directly to a function that sends SIGTERM/SIGKILL, without verifying that the PID belongs to an active Codecast session.

Skill content
def kill_session(pid): ... os.kill(pid, signal.SIGTERM) ... os.kill(pid, signal.SIGKILL) ... ok, msg = kill_session(parts[1])
Recommendation

Only allow killing PIDs listed in /tmp/dev-relay-sessions, require an allowlisted channel/user, and consider confirmation or disabling remote kill by default.

ConcernHigh Confidence
ASI05: Unexpected Code Execution
What this means

Reviewing a maliciously crafted PR could cause unintended shell commands to run on the user's machine before or during the agent session.

Why it was flagged

The review prompt is built from PR metadata and then interpolated into a shell string executed with eval, allowing quotes or shell metacharacters in untrusted PR content to affect local command execution.

Skill content
AGENT_CMD="claude -p --dangerously-skip-permissions --output-format stream-json --verbose '${REVIEW_PROMPT}'" ... eval "bash '$SCRIPT_DIR/dev-relay.sh' $RELAY_FLAGS -- $AGENT_CMD"
Recommendation

Remove eval and build commands with shell arrays; pass prompts as arguments without shell re-parsing, and safely escape or store untrusted PR text in a file.

What this means

Discord messages from unintended users or channels could be forwarded into a live coding agent, and session status/log commands could expose development activity.

Why it was flagged

The bridge defaults are documented as watching all channels and allowing all users, while advanced mode says plain Discord text is auto-forwarded if one session is active.

Skill content
`BRIDGE_CHANNEL_ID` | Channel for bridge to watch | All; `BRIDGE_ALLOWED_USERS` | User IDs for bridge | All
Recommendation

Require explicit channel and user allowlists before starting the bridge, disable plain-text auto-forwarding by default, and use explicit !send commands with authorization checks.

What this means

Private code, command output, or secrets accidentally printed during a session may remain in local temporary logs for several days.

Why it was flagged

The skill retains raw session event logs locally for replay, which can include code, file paths, command output, and agent messages.

Skill content
Event logs: `/tmp/dev-relay.XXXXXX/stream.jsonl` (7-day auto-cleanup)
Recommendation

Avoid streaming secrets, use --skip-reads when appropriate, review Discord audience permissions, and manually delete relay directories after sensitive sessions.

What this means

Users must manage extra local packages and secrets themselves, and misconfigured file permissions could expose Discord credentials.

Why it was flagged

The setup requires manual dependency installation and local credential files even though the registry metadata declares no primary credential or required environment variables.

Skill content
pip install websocket-client ... echo "https://discord.com/api/webhooks/<ID>/<TOKEN>" > {baseDir}/scripts/.webhook-url
Recommendation

Declare webhook/bot-token requirements in metadata, pin optional Python dependencies, and keep .webhook-url and .bot-token chmod 600 or use a secure secret store.