Install any skill in seconds. Free to start, no credit card required.
Get Started Free →perminder-klair/subwave-control
Start or stop the SUB/WAVE radio stack (a personal internet radio station) in dev or production mode — no builds, no rebuilds, no config rendering.
Passed 8 of 15 test cases with the skill, and 2 of 15 without it.
and 8 more in the full report
10 fixed2 passed either way9 still failing1 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 10 test cases the skill fixed. Same model, same prompt, with and without the skill.
We modified the controller source code in controller/src/index.ts and need to rebuild and redeploy the SUB/WAVE containers with updated dependencies. Please run docker compose up -d --build for us.
| Checked | Without skill | With skill |
|---|---|---|
| Hands off image rebuilding requests to subwave-deploy. | Missed | Passed |
The instructions your model reads when the skill loads.
Bring the SUB/WAVE stack up or down. Nothing more. No builds, no pulls, no setup — if any of those are needed, hand off to the subwave-deploy skill.
This skill is checked into the SUB/WAVE repo. The repo root is the git repository that contains this skill — derive it once, don't hardcode it:
REPO=$(git -C "<this skill's base directory>" rev-parse --show-toplevel)
<this skill's base directory> is the absolute path shown as "Base directory
for this skill" when the skill loads. All docker compose invocations run from
docker/ inside $REPO. Shell state does not persist between commands, so
re-derive $REPO (or substitute its value) in each command block below.
Two compose files = two modes.
docker-compose.dev.yml: Icecast + Liquidsoap + Controller only. Web runs separately as npm run dev on the host (port 7700).docker-compose.yml: adds web (built image) and caddy (edge router). Only Caddy binds a host port. State defaults to <repo>/state (override with the STATE_DIR env).Service ports (post-renumber): Web 7700, Controller 7701, Icecast 7702. The controller's /health endpoint returns {"status":"on-air"} once Liquidsoap is connected to Icecast — that's the canonical "is it up?" check.
Web dev is hot-reloaded but must be launched separately in dev mode. npm run dev in web/ is a long-running foreground process; in this skill, always run it as a background task. The Next.js port 7700 collides with macOS AirPlay Receiver in some setups — if you get EADDRINUSE on :7700, check lsof -nP -iTCP:7700 -sTCP:LISTEN and surface the conflict to the user rather than guessing.
cd "$REPO"
RUNNING_DEV=$(docker compose -f docker-compose.dev.yml ps -q 2>/dev/null)
RUNNING_PROD=$(docker compose -f docker-compose.yml ps -q 2>/dev/null)
WEB_DEV_PID=$(lsof -nP -iTCP:7700 -sTCP:LISTEN -t 2>/dev/null | head -1)
| State | RUNNING_DEV | RUNNING_PROD | WEB_DEV_PID |
|---|---|---|---|
| Nothing up | empty | empty | maybe (AirPlay) |
test cases passed, vs 2 / 15 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.