MIT-licensed core · commercial services by agreement

Open source without a gate.
Expert help with a written scope.

Use the local-first core under MIT. Contract separately for an enterprise or government evaluation, integration work, and support commitments tailored to a named environment.

Open source

$0

Use, modify, and distribute Phantom's local-first core under MIT.

  • CLI, local vault, proxy, and MCP server
  • No seat count or local-secret limit imposed by Phantom
  • Community support through GitHub
  • Self-directed deployment and validation
View the repository
Written scope

Enterprise

Scoped

Contract for evaluation, integration, and support around the MIT core.

  • Written pilot scope and acceptance criteria
  • Architecture and security-boundary review
  • Integration with named repositories and supported clients
  • Support commitments only as written in the agreement
Scope an enterprise evaluation

Government

Scoped

Evaluate a local-first workflow against a named public-sector environment.

  • Bounded technical evaluation with explicit exclusions
  • Evidence packet for the reviewed source and test scope
  • Environment-specific integration and risk review
  • Procurement and support terms only by written agreement
Discuss a government evaluation

The MIT License already grants the core software rights. A commercial agreement covers only its stated services, deliverables, support commitments, and acceptance criteria.

A useful first conversation

Bring a concrete environment, not a blank check.

We start with a reversible, non-production workflow and define what evidence would justify the next decision. Scope, price, schedule, and support terms exist only when written and agreed.

  1. 01The repositories, teams, operating systems, and AI clients in scope
  2. 02The exact local workflow and non-production acceptance criteria
  3. 03Security, data-residency, procurement, and support requirements
  4. 04Required timeline, stakeholders, and decision owner

Current commercial boundary

What this site does not promise

No generally available Phantom Cloud service or hosted control plane
No shipped SSO, SAML, or SCIM integration
No regulatory certification, authorization, or compliance attestation
No contractual SLA unless one is expressly included in a signed agreement
No supported self-hosted enterprise control plane

A source implementation or passing test does not prove a hosted service, external certification, provider commissioning, or customer acceptance. Those require their own evidence.

Why not just use what you have?

Phantom addresses a narrow boundary: supported agent-driven HTTP requests can use configured credentials without placing provider values in the agent's dotenv context. This compares Phantom's managed path with giving an agent a plaintext dotenv value; it is not a vendor feature benchmark.

Boundary comparison: Phantom's managed path versus direct plaintext dotenv access.
CapabilityPhantomPlaintext agent .env
Value-blind managed agent pathYesNo
Open sourceYes
Local-first vaultYes
MCP-native (supported clients)YesNo
Staged dotenv and prefix checksYesNo
Fresh proxy authorization per exec sessionYes
Configured-upstream boundary for supported HTTP routesYesNo

Review questions

Ask where the boundary ends.

Security claims are useful only when their assumptions and failure modes are visible. For a question not covered here, open a GitHub issue or email mason@ashlr.ai.

Does Phantom slow down my AI requests?
Phantom adds a local Rust HTTP proxy bound to 127.0.0.1. Request bodies are collected under byte and time limits; response streams remain bounded and incremental. Measure overhead in your own workload before adopting it on a latency-critical path.
What does a supported child process see after phantom init and phantom exec?
Installation alone changes nothing. After successful initialization, your .env file contains phm_xxxxxxxx tokens instead of real values. In the managed workflow, supported clients read those placeholders rather than provider values from the rewritten dotenv file. phantom exec gives the child fresh placeholders and a separate proxy bearer. On an exact supported route, the proxy injects only that route's vault value into its fixed auth header; client headers and bodies never resolve placeholders. Other files and unmanaged processes remain outside that boundary. Human plaintext reveal is a separate trusted-terminal action with no noninteractive bypass.
What if a phm_ token leaks from AI logs?
A managed .env placeholder persists until you rotate it; it is not the provider credential and is not sufficient by itself to use the authenticated local proxy. phantom exec separately creates fresh session phm_ values and a fresh PHANTOM_PROXY_TOKEN for the child process. Treat a leaked placeholder as sensitive metadata and run phantom rotate.
How are real keys stored?
macOS uses Keychain Services and Windows uses Credential Manager. Current Linux desktop builds use the kernel keyring, which does not provide reboot persistence; Linux users who need durable storage should select the encrypted-file vault with a protected persistent passphrase. The file backend uses ChaCha20-Poly1305 with Argon2id key derivation. Vault retrieval uses Zeroizing<String> buffers that zero those allocations on Drop. This is defense in depth, not a guarantee that every plaintext copy is erased from process or OS memory. Phantom's managed init path writes the vault before atomically replacing dotenv values and does not create a plaintext project-local backup. Existing backups, logs, and unmanaged tools are outside that boundary.
Can the proxy be tricked into revealing the real key?
The proxy discards client control of the matched route's auth header and injects only that route's vault value there; client headers and bodies never resolve placeholders. It redacts recognized credential formats in responses. This reduces accidental exposure; it is not a substitute for provider scoping, rotation, or OS user-presence controls. Proxy session tokens use constant-time comparison.
What about secrets in HTTP request bodies, not just headers?
Client headers and bodies never resolve phm_ placeholders. Bodies are collected under explicit byte/time limits and forwarded byte-for-byte. Only an exact matched route can inject its own vault value into its fixed authentication header.
Can my team share secrets without sharing the .env?
The repository includes Pro-gated team-vault source with envelope encryption for fixed-membership pilots. Each member has their own keypair; the vault is encrypted to every member's public key, and the service path accepts ciphertext. Hosted availability still requires a commissioned Phantom Cloud deployment. Member removal and automatic vault-key rotation are not shipped, so do not treat this as an offboarding control.
What if I want to leave Phantom?
Phantom intentionally does not leave a plaintext .envbackup during init. Keep an independent provider recovery path before migrating. phantom unwrap only reverses package-script wrapping; it does not restore dotenv values. To leave, recover or rotate credentials through the provider, update your dotenv file in a trusted terminal, then remove Phantom configuration.