Skills/Glama/stemlab

stemlab@r1

VERIFIED· not started

Publisher claims: "Enables local, evidence-led analysis of a master recording into inspectable stems, timing, beats, harmony, lyrics, MIDI and sonic evidence, then finds complete-bar loopable sections for Shorts and other short-form video. Results stay traceable through source hashes, manifests, JSON/TSV/NPZ artifacts and portable Sonic Visualiser sessions, and it can run as a CLI, Python library, web service, container or MCP plugin." Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry GlamaPublisher kieransimkin · publishing for 2 daysInstalls 0Last detonated 2d ago
$npx skills add stemlab
WatchReport an issue

Coverage

Not started: dependency install failed; the server itself was not observed.
Tested
the dependency install step · every file read, file written and host contacted by what ran
Not tested
server startup · the tool list · tool behavior

What this means for the label: Verified here covers what ran. The server's tools were not exercised with a real credential, so nothing about their behavior is asserted; the credential summary below says what to do with that.

Before you give it your token

It will ask for
GH_TOKENGITHUB_TOKENConfiguration, not credentials: STEMLAB_CACHE, STEMLAB_RESULTS_DIR, STEMLAB_SERVICE_CLI_ARGS, STEMLAB_SERVICE_DEVICE, STEMLAB_SERVICE_FILE_POLL_SECONDS, STEMLAB_SERVICE_HISTORY_LINES, STEMLAB_SERVICE_MAX_JOBS, STEMLAB_SERVICE_MAX_UPLOAD_BYTES, STEMLAB_SERVICE_MIN_TIMEOUT_SECONDS, STEMLAB_SERVICE_PROFILE, STEMLAB_SERVICE_TIMEOUT_MULTIPLIER, STEMLAB_SERVICE_UPLOAD_CHUNK_BYTES
Where it talks to
kieransimkin.co.uk (its own)Also githubusercontent.com, nuget.org, pythonhosted.org, jku.at, react.dev — not the publisher's domain; check what for before connecting.
What the honeypot saw
no credential files read · no network
What we could not test
server startup · the tool list · tool behavior

Connect it with a scoped credential, under the guard, and read the third-party hosts first. The code names githubusercontent.com, nuget.org, pythonhosted.org, jku.at, react.dev as well as its own vendor. The guard injects GH_TOKEN, GITHUB_TOKEN only into requests to kieransimkin.co.uk (and its subdomains) and refuses the rest.

$vet-skills run --secrets GH_TOKEN=kieransimkin.co.uk,GITHUB_TOKEN=kieransimkin.co.uk -- <the server's command>

Never paste a credential into a chat, a ticket or a report, including ours. How the guard holds it.

Is stemlab@r1 safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (2 scenarios; not started: dependency install failed; the server itself was not observed) on 2026-11-12 and scored it 88/100 (Verified). In what ran, nothing we could detect went wrong: no undeclared network egress, no credential reads, no persistent instruction writes. What it does with a real credential was not observed; the static findings and the publisher carry the rest of the score. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 0 s · 2 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
0.1sprocessdependency install exit 1 ·
0.1sclaimednot started: dependency install failed (exit 1); the server itself was not observed
0.1sprocessscript backend runs setup only
0.1sprocessno install scripts to re-run

Static findings

MEDIUM
Python subprocess execution detectedsrc/stemlab/server.py:432 · Python subprocess execution detectedproc = subprocess.Popen(command, **popen_kwargs)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/viewer_releases.py:56 · Python subprocess execution detectedresult = subprocess.run(args, cwd=cwd, check=True, text=True, encoding='utf-8',Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/vamp.py:191 · Python subprocess execution detectedproc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/vamp_runtime.py:193 · Python subprocess execution detectedsubprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/bootstrap.py:73 · Python subprocess execution detectedsubprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/bootstrap.py:81 · Python subprocess execution detectedsubprocess.run(["git", "clone", "--depth", "1", repo_url, str(dest)], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/vamp_runtime.py:200 · Python subprocess execution detectedsubprocess.run([str(installer)], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
File type combined with upload actionscripts/loop_demo.py:49 · File type combined with upload action — agent may exfiltrate local data files…ynthetic loop QA — supplied grid, not an artist recording'}) write('analysis.json', {'source': {'copied_path': 'input/synthetic-loop-qa.wav', 'sha256': digest}, 'models': [{'stems': [{'model': 'fix…Fix: Remove the call, or declare the host in frontmatter and explain in the README what is sent and why.
AST07
MEDIUM
Python subprocess execution detectedsrc/stemlab/util.py:36 · Python subprocess execution detectedsubprocess.run(args, cwd=cwd, env=merged, check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/vamp_runtime.py:138 · Python subprocess execution detectedproc = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/release_suite.py:81 · Python subprocess execution detectedresult = subprocess.run(args, cwd=cwd, check=True, text=True, encoding='utf-8',Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/vamp.py:182 · Python subprocess execution detectedskeleton = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/server.py:344 · Python subprocess execution detectedsubprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/server.py:244 · Python subprocess execution detectedresult = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/vamp_runtime.py:205 · Python subprocess execution detectedsubprocess.run(["open", str(installer)], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/bootstrap.py:107 · Python subprocess execution detectedsubprocess.run([str(py), "-m", "pip", "install", "-r", str(req)], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/build_onefile.py:172 · Python subprocess execution detectedsubprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/clip_match.py:154 · Python subprocess execution detectedresult = subprocess.run([ffmpeg, "-nostdin", "-v", "error", "-i", str(path),Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedscripts/check_onefile.py:19 · Python subprocess execution detectedresult = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/codex/jobs.py:129 · Python subprocess execution detectedsubprocess.run(["taskkill", "/PID", str(proc.pid), "/T", "/F"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedskills/use-and-improve-stemlab/SKILL.md:239 · Python subprocess execution detected- **Symptom (30 September 2026):** `test_capacity_cancel_and_shutdown` timed out while `subprocess.run(["taskkill", ...])` appeared to wait on the test's 30-second sleeping worker.Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedsrc/stemlab/server.py:264 · Python subprocess execution detectedsubprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05

Cost to the agent

Instructions loaded
≈12,421 tok
2 files · 80 in bundle
Tool list per prompt
≈0 tok
0 tools · 0 per tool
Handshake
no reply
launch to tools/list, stdio
Undocumented tools
0
description under 20 chars · avg 0

Tokens estimated at four characters each. The tool list is re-read by the agent on every turn, so it is the number to compare between servers that do the same job: ranked across the index.

Known vulnerabilities

Vulnerability advisories (OSV) cover npm and PyPI packages; this registry has no advisory database.