Skip to main content
Glama
kanchingyg

env-phantom

by kanchingyg

env-phantom

ci npm JSR Bun license

One line: npx env-phantom mask .env --allow-write && npx env-phantom run -- node app.js

Child processes and coding agents see format-preserving phantom_* tokens in process.env. Real secrets are swapped in only inside the local edge HTTP proxy when the outbound Host matches your allowlist; everything else gets 403 Blocked by env-phantom. HTTPS_PROXY uses HTTP CONNECT (tunnel or local TLS MITM for rewrite hosts). The vault is encrypted at rest (AES-256-GCM); set ENV_PHANTOM_VAULT_KEY or use the machine-derived fallback. mask --allow-write backs up .env to .env.bak first.

Why not dotenvx / 1Password / Infisical?

Those tools decrypt secrets directly into the child process environment. Any dependency, coding agent, or postinstall script can read process.env and exfiltrate the real key. env-phantom never places the real secret value in the child environment.

Related MCP server: Janee

Install

Bun / npm:

bunx env-phantom mask .env --dry-run
npx env-phantom mask .env --dry-run

# or install in your project / globally
bun add -d env-phantom
npm i -D env-phantom

JSR:

bunx jsr add @kanchingyg/env-phantom
npx jsr add @kanchingyg/env-phantom

CLI

Command

Purpose

mask .env

Print masked env (--dry-run / --allow-write to persist + vault)

run -- <cmd>

Run command with phantom env + local proxy

audit

Print blocked exfiltration attempts

--mcp

Start MCP server over stdio

MCP setup

Add to .cursor/mcp.json or Claude Code MCP config:

{
  "mcpServers": {
    "env-phantom": {
      "command": "npx",
      "args": ["-y", "env-phantom", "--mcp"]
    }
  }
}

Ollama (optional)

For explain_exfil_attempt, run Ollama on port 11434. Cloud OpenAI-compatible endpoints used for embeddings can sit behind the same phantom vault pattern via HTTP_PROXY.

License

MIT

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    C
    maintenance
    MCP server that lets AI agents call APIs without ever seeing the credentials, using a local encrypted vault and per-secret allowlist policies for HTTP requests and subprocess environment variables.
    1
    AGPL 3.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    Secrets management MCP server that injects credentials into API requests for AI agents, enforcing policies and logging all activity without exposing raw keys.
    31 npm
    30
    MIT
  • A
    license
    Not graded
    quality
    B
    maintenance
    A local-first MCP server that lets AI agents use gated APIs without holding keys, enforcing declarative policies, injecting secrets server-side, and auditing access without content.
    2
    Apache 2.0
  • A
    license
    Not graded
    quality
    C
    maintenance
    A tiny local MCP server and CLI that lets AI agents read only allowlisted environment variables, redacts known secrets from text, and logs every access.
    MIT