Agent Economy Report

Skill code audit

CAUTION version 1.0.0 · audited 2026-09-09

sonoscli @steipete

This is a small documentation-only skill: it contains no scripts, just a manual telling an agent how to use a `sonos` command-line tool to find and control Sonos speakers on the local network (play, pause, volume, grouping, favorites, queue, and optional Spotify search). The only active element is an install directive that tells the agent to fetch and build a third-party Go program, `github.com/steipete/sonoscli/cmd/sonos@latest`, whose source code is not included in this package and is not pinned to a specific version. Nothing in the files reads credentials, contacts hidden servers, writes files, or tries to override the agent's rules. It does mention that optional Spotify search uses `SPOTIFY_CLIENT_ID/SECRET`, but the skill itself never touches them. Overall the described behavior matches the stated purpose; the reviewable risk is that installing an unpinned upstream binary means you are trusting code that this package does not show you.

Declared purposeControl Sonos speakers on the local network: discovery, status, playback, volume, grouping, favorites, queue, and optional Spotify search.
Observed behaviorProvides plain-text usage guidance for a `sonos` CLI and declares a Go-based install step for that CLI. No executable code, no network calls, no file writes, no credential handling in the package itself.
Verdict, rules onlySAFE
Verdict, AICAUTION
Final verdictCAUTION (never better than either pass)

Capabilities

capabilityvs purposedetail
shellneededThe skill instructs the agent to run `sonos` subcommands (e.g. SKILL.md lines 13-22). Controlling speakers requires shell invocation of the CLI.
install_packagesneededMetadata declares a `go` install of `github.com/steipete/sonoscli/cmd/sonos@latest` (SKILL.md line 5). Needed to obtain the tool, but the fetched source is not part of this package and the version is unpinned.
networkneededSpeaker discovery via SSDP and control traffic go to devices on the local network; `--ip <speaker-ip>` fallback is documented (SKILL.md line 25). No external endpoints are contacted by the skill files themselves.
credentialsneededOptional Spotify Web API search is documented as requiring SPOTIFY_CLIENT_ID/SECRET (SKILL.md line 26). The skill does not read or transmit these itself; the external binary would.

Findings

severityfinding
mediumInstalls unpinned third-party binary not included in the package
The skill asks the agent to build and install an external Go module at `@latest`. The actual code that will run is not reviewable in this package and can change between installs. Anyone installing this is trusting the upstream GitHub repository, not the audited files. Pinning to a specific tag or commit would make installs reproducible and auditable.
SKILL.md:5 "install":[{"id":"go","kind":"go","module":"github.com/steipete/sonoscli/cmd/sonos@latest","bins":["sonos"],"label":"Install sonoscli (go)"}]
lowOptional use of Spotify API credentials
The documentation directs users to supply Spotify client credentials as environment variables for an optional feature. The skill files never read or send them, but the externally installed `sonos` binary would have access to them if configured. Only set them if you need Spotify search.
SKILL.md:26 - Spotify Web API search is optional and requires `SPOTIFY_CLIENT_ID/SECRET`.
infoSkill issues shell commands the agent will execute
All functionality is delivered as shell commands for the agent to run. Commands can change playback, volume, grouping and queue state on any Sonos device reachable on the network, including shared/office speakers. No payment or wallet operations are involved.
SKILL.md:22 - Spotify search (via SMAPI): `sonos smapi search --service "Spotify" --category tracks "query"`
infoPublisher discloses the unpinned-install risk
The skill card itself acknowledges that the Go install uses the latest upstream version and recommends pinning for stricter supply-chain review. The disclosure is accurate and matches what the metadata does.
skill-card.md:23 Risk: The Go install target uses the latest upstream module version. <br>

0 AI finding(s) were dropped because their file, line or quote did not match the package.

Network destinations in the code

domainservice ratingwhere
clawhub.ainot in the service indexskill-card.md:7
sonoscli.shnot in the service indexSKILL.md:4

Other facts

Binaries invokednone
Environment variables readnone
Hard-coded walletsnone
Pipes a download to a shell0
eval / exec / subprocess0
base64 blobs0
File writes0
Persistence0

Files audited

filelinessha256
SKILL.md260b9cf84b375cd226…
_meta.json64f41460a2ebcdf7d…
skill-card.md43553bef2fb4802d55…

For agents

JSON: https://agenteconomy.report/k/sonoscli.audit.json · badge: https://agenteconomy.report/k/sonoscli.audited.svg · skill rating: /k/sonoscli · commission an audit of any skill: US$ 29 per version.

How this is computed

The complete published package of this exact version was downloaded from the registry and read statically; nothing was executed. A deterministic pass extracts network destinations, binaries, environment variables, writes, install commands, obfuscation markers, subprocesses and wallets, each with file and line. An AI then reads the whole package with those facts and writes the summary, the capabilities and the findings under a strict schema; every finding it produces must cite a file, a line and the exact text, or it is dropped. The final verdict is the worst of the two passes. The audit does not change the skill's trust tier (policy); the author may respond through the dispute channel and the response is published here. Commissioned by: the Agent Economy Report (free program: the 150 most downloaded skills, September 2026).