cli@1.3.3
CAUTION· install onlyPublisher 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.
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-10 and scored it 63/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; Access to sensitive file paths; Collapsed <details> block carrying instructions. Summary: no network, touches nothing outside the project, writes no memory.
Behavior trace
Honeypot run · 0 s · 1 scenarios · 0 deviationsStatic findings
const token = proxyToken();Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.return { args: [...config.flatMap((c) => ['-c', c]), ...args], env: { ...env, OPENAI_BASE_URL: base, PHANTOM_AGENT_TOKEN: token } };Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.<summary><strong>Development and contributing</strong></summary> ```bash npm ci npm run typecheck npm run build npm run coverage ``` Report a security problem pFix: Remove the text that addresses the agent rather than the reader; describe behavior, do not instruct.import { proxyToken, startProxy } from "./proxy.mjs";Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.return { args: ['-e', file, ...(hasModel(args) ? [] : ['--provider', 'phantom', '--model', startModel(env)]), ...args], env: { ...env, PHANTOM_AGENT_TOKEN: token } };Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.* 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.`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.`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.// 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.* @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.export function proxyToken() {Fix: Stop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.Cost to the agent
Tokens estimated at four characters each. Skills load their instruction text when triggered; the figure is what that costs.
Known vulnerabilities
No advisories in OSV for @phantomcodes/cli@1.3.3 as of 4d ago. This is the package itself, not its dependencies.
What would make this Verified
17 points to 80 · weights: behavior 45%, static 25%, prompt 15%, publisher 15%- Pipe-to-shell pattern≈ +9 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.
- 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.
- 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.
- 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.
- Access to sensitive file paths≈ +4 on the totalStop enumerating or reading credential locations; take secrets from a declared environment variable the user sets on purpose.
- Remote installer piped to shell≈ +2 on the totalBuild commands from fixed arguments, never from interpolated strings; prefer an API client over shelling out.