cli@1.6.0

CAUTION· install only

Publisher claims: "Connects Claude Code, Codex, pi and other coding agents to Phantom AI, an OpenAI-compatible API, and manages your keys, credit and spending caps from the terminal." Observed in sandbox: no network, touches nothing outside the project, writes no memory.

Registry npm (MCP server)Publisher phantomcodes · publishing for 30 daysInstalls 3,597Last detonated 23 min ago

Coverage

Nothing executable in the bundle ran; the trace covers the install step only.
Tested
every file read, file written and host contacted by what ran
Not tested
use of the skill by an agent

Is [email protected] safe to install?

KillerSkills ran it in the KillerSkills honeypot sandbox (1 scenario; nothing executable in the bundle ran; the trace covers the install step only) on 2026-11-14 and scored it 67/100 (Caution). It is not known to be malicious, but it has behaviour or code a security policy should decide on before install. Notable findings: Credential pass-through configuration; Collapsed <details> block carrying instructions; Credential pass-through configuration. Summary: no network, touches nothing outside the project, writes no memory.

Behavior trace

Honeypot run · 0 s · 1 scenarios · 0 deviations
t+CategoryObserved action
0.0sprocessno install scripts in bundle
0.0sprocessscript backend runs setup only
0.0sprocessscript backend runs setup only
0.0sprocessno install scripts to re-run

Static findings

HIGH
Credential pass-through configurationdist/agents/command.mjs:16 · Credential pass-through configuration — agent relays sensitive credentialsimport { proxyToken, startProxy } from "./proxy.mjs";Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST02
HIGH
Collapsed <details> block carrying instructionsREADME.md:189 · Collapsed <details> block carrying instructions<summary><strong>Development and contributing</strong></summary> The CLI lives in `cli/` in the Phantom repo, which uses pnpm. Install once at the repo root, thFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.
AST01
MEDIUM
Process kill commanddist/workspace/command.mjs:629 · Process kill command — agent can terminate processes// server would kill the recovery file, so a sign-in that is the recovery credential is only forgotten here.Fix: Build commands from fixed arguments; do not interpolate untrusted strings into a shell.
AST05
HIGH
Credential pass-through configurationdist/agents/proxy.mjs:18 · Credential pass-through configuration — agent relays sensitive credentialsexport function proxyToken() {Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST02
HIGH
Credential pass-through configurationdist/agents/command.mjs:164 · Credential pass-through configuration — agent relays sensitive credentialsconst token = proxyToken();Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST02
CRITICAL
Pipe-to-shell patterndist/core/node-trust.mjs:23 · Pipe-to-shell pattern — downloads and immediately executes remote code`curl -fsSL https://phantom.codes/install | sh, which brings its own.\n`);Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST06
HIGH
Credential pass-through configurationdist/agents/proxy.mjs:46 · Credential pass-through configuration — agent relays sensitive credentials* @param opts.token The run's secret ({@link proxyToken}). A request without it, as `Authorization: Bearer` or `x-api-key`, gets 401.Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST02
HIGH
Credential pass-through configurationdist/agents/proxy.mjs:12 · Credential pass-through configuration — agent relays sensitive credentials* it started: each request must carry the run's token ({@link proxyToken}),Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
AST02
MEDIUM
Remote installer piped to shelldist/core/node-trust.mjs:23 · Remote installer piped to shell`curl -fsSL https://phantom.codes/install | sh, which brings its own.\n`);Fix: Build commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
AST07
MEDIUM
npx invocation of non-well-known packagedist/setup/agents.mjs:101 · npx invocation of non-well-known package — may execute untrusted code// runs the helper outside this shell, so a relative or npx path won't do.Fix: Pin versions and sources; vendor anything fetched at install time.
AST06

Cost to the agent

Instructions loaded
≈1,936 tok
1 file · 49 in bundle

Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.

Known vulnerabilities

Not checked against OSV yet; the weekly check has not reached this version.

What would make this Verified

13 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%
  1. Pipe-to-shell pattern≈ +9 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
  2. Unclaimed publisher≈ +8 on the totalClaim phantomcodes: a verified publisher gets +50 on publisher trust. It is free and usually instant with GitHub sign-in.
  3. Hidden instructions≈ +6 on the totalRemove HTML comments, zero-width characters and white-on-white text that carry instructions. Everything the agent is meant to read should be visible to the person reading the file.
  4. Credential pass-through configuration≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
  5. Process kill command≈ +2 on the totalBuild commands from fixed arguments; do not interpolate untrusted strings into a shell.
  6. Remote installer piped to shell≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
Publish a new version to npm, then queue it here. Not your skill? Claim the handle to get verdict changes by email.Claim phantomcodesPropose a patch to the maintainer