ravel@0.1.1

VERIFIED· not started

Publisher claims: "Enables coding agents to search an approved local repository root for code and document evidence, returning source paths and line spans without source editing or network access." Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry GlamaPublisher nazeeh111 · publishing for 1 daysInstalls 0Last detonated 19 h ago
$npx skills add ravel
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
HF_HUB_DISABLE_IMPLICIT_TOKENTOKENIZERS_PARALLELISMConfiguration, not credentials: HF_HOME, HF_HUB_DISABLE_TELEMETRY, HF_HUB_OFFLINE, ORT_DISABLE_TELEMETRY
Where it talks to
no vendor host named in the code
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. It asks for HF_HUB_DISABLE_IMPLICIT_TOKEN, TOKENIZERS_PARALLELISM and talks to its vendor. Give the credential to the guard, not the server: the value never enters the server's environment and only travels to the host you bind. What the tools do with a real credential was not observed.

$vet-skills run --net declared -- <the server's command>

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

Is [email protected] 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-13 and scored it 85/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.2sprocessno install scripts to re-run

Static findings

MEDIUM
Python subprocess execution detectedbenchmarks/external/prepare.py:45 · Python subprocess execution detectedsubprocess.run(["git", "clone", "https://github.com/tobi/qmd.git", str(base / "qmd")], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedbenchmarks/external/prepare.py:48 · Python subprocess execution detectedsubprocess.run(["uv", "venv", "--python", "3.12", str(base / "leann-env")], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_engine.py:152 · Python subprocess execution detectedsubprocess.run(['git', 'init', '-q', str(project)], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Access to sensitive file pathstests/test_engine.py:51 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system files(project / '.env').write_text('not opened')Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
HIGH
Access to sensitive file pathssrc/ravel/sources.py:23 · Access to sensitive file paths — SSH keys, AWS credentials, env files, or system filesSECRET_NAME = re.compile(r"(^\.env($|\.)|credentials|secrets?|id_rsa|id_ed25519|\.pem$|\.key$|\.p12$|\.pfx$)", re.I)Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST05
MEDIUM
Python subprocess execution detectedtests/test_engine.py:157 · Python subprocess execution detectedsubprocess.run(['git', '-C', str(project), 'checkout', '-qb', 'changed'], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedbenchmarks/external/prepare.py:46 · Python subprocess execution detectedsubprocess.run(["git", "checkout", "86d2365d17fc682e491c2c53d1e4a884aee8682a"], cwd=base / "qmd", 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/ravel/engine.py:103 · Python subprocess execution detectedproc = subprocess.run(["git", "-C", str(self.root), "rev-parse", "HEAD"],Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_engine.py:159 · Python subprocess execution detectedsubprocess.run(['git', '-C', str(project), 'add', 'retry.py'], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedtests/test_engine.py:153 · Python subprocess execution detectedsubprocess.run(['git', '-C', str(project), 'add', 'retry.py', 'notes.md'], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedbenchmarks/external/run_cli.py:20 · Python subprocess execution detectedp = subprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedbenchmarks/external/prepare.py:47 · Python subprocess execution detectedsubprocess.run(["bun", "install", "--frozen-lockfile"], cwd=base / "qmd", check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedbenchmarks/evaluate.py:687 · Python subprocess execution detectedsubprocess.run(Fix: Put hosts, commands and strings in plain source. Decoding at runtime looks identical to malware and costs points on its own.
AST05
MEDIUM
Python subprocess execution detectedtests/test_engine.py:154 · Python subprocess execution detectedsubprocess.run(['git', '-C', str(project), '-c', 'user.name=Test', '-c', '[email protected]', 'commit', '-qm', 'fixture'], check=True)Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
MEDIUM
Python subprocess execution detectedbenchmarks/external/prepare.py:49 · Python subprocess execution detectedsubprocess.run(Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST05
LOW
Collapsed <details> block carrying instructionssrc/ravel/inspector.html:55 · Collapsed <details> block carrying instructions · informational: not an instruction file<summary><svg class="icon"><use href="#i-code"/></svg><span>Context</span><strong id="budget-value">2,048</strong><svg class="icon"><use href="#i-chevron"/></svFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01

Cost to the agent

Instructions loaded
≈31 tok
1 file · 79 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.