Skip to main content

GhostStack / vault

Status: Coming soon

A credential vault for agents and humans alike.

Vault serves both populations from one store. Humans manage credentials through a clean UI. Agents request them through MCP with scoped, time-bound leases. MCP credential reads return plaintext by default. Clients with reference substitution can keep values out of the model context; that behavior is not automatic.

Public access is not open. This product is separate from initial Identity and Apparatus access. Explore the MCP services.

Read restricted product reference →

01 / Credentials

One vault. Every credential.

Choose a step. See how the pieces fit together.

One vault. Every credential.

Inside the workflow / API keys

API keys

Plain string credentials with per-agent scope. Rotation windows, last-used timestamps, revocation one action deep.

Illustrative product walkthrough. Public access is not open yet.

Inside the workflow / OAuth tokens

OAuth tokens

Store OAuth client credentials and related secret values. Provider refresh behavior depends on the integration.

Illustrative product walkthrough. Public access is not open yet.

Inside the workflow / SSH keypairs

SSH keypairs

Public/private pairs stored encrypted. Ed25519 by default; RSA when a host still requires it.

Illustrative product walkthrough. Public access is not open yet.

Inside the workflow / TLS certificates

TLS certificates

Cert + key + chain together. Expiry surfaced on the dashboard; no surprises during a deploy.

Illustrative product walkthrough. Public access is not open yet.

Inside the workflow / Database URLs

Database URLs

Connection strings with driver awareness. Treated as single credentials so the whole string rotates together.

Illustrative product walkthrough. Public access is not open yet.

Inside the workflow / Generic secrets

Generic secrets

Anything that is a string and should never sit in an env file. Same encryption envelope, same audit discipline.

Illustrative product walkthrough. Public access is not open yet.

02 / For both

Built for agents and humans alike

Password managers built only for humans do not answer the questions an AI agent asks. Vaults built only for apps do not give humans a dashboard. Vault serves both. The agent side is scoped leases over MCP. The human side is a clean UI for the same credentials.

01

Remote HTTP MCP

Authorized clients can list scoped credential metadata and request attributed leases through remote HTTP MCP. Client authentication and secret handling must match the deployment.

02

Credential leasing with TTLs

Requests return leases bound to the agent run id. The server enforces configured lease bounds. Expiry prevents later redemption; it does not invalidate a secret already returned.

03

Agent attribution in audit log

Every access records which agent type, which user, which run, what justification. The audit log is append-only and survives tenant deletion so incident response has history to read.

04

Client-dependent credential delivery

The MCP read tool returns plaintext by default. Keeping it out of model context requires a client that implements credential-reference substitution; ordinary MCP support alone does not provide that isolation.

05

Per-agent-type policies

Scope credentials to specific agent types, not just users. A scoring agent that never needs production DB creds never gets asked about them.

03 / Browser

On every browser tab

A Chrome and Firefox extension brings Vault into the place humans spend most of their day: browser tabs that ask for a username and a password. Same encryption, same audit chain, same RBAC. No long-lived plaintext cache; each fill is a fresh server-side lease consumed in one round-trip.

01

Chrome + Firefox browser extension

A Manifest V3 extension for both browsers auto-fills usernames and passwords on the sites you log in to every day. Sign in once via identity OAuth in a popup; the extension reads stored `login` credentials over the same REST API your CLI uses.

02

Phishing-resistant URL matching

Match is scheme-strict (HTTPS only by default), Punycode-normalized to defeat homograph attacks, and port-aware. Subdomain match is opt-in per credential. The fill button only appears when the URL passes every check.

03

Lease-per-fill, no plaintext cache

Each fill issues and redeems a fresh single-use lease. The reviewed extension uses a 600-second redemption deadline, not a promise that a filled password expires. No persistent credential cache is part of this path.

04

Same audit trail as every other access

Each fill writes lease.issued, lease.consumed, lease.read to the tamper-evident audit chain with the user attribution and a session correlation id. Indistinguishable from a CLI reveal or a manual web-ui copy.

05 / Security

Security posture

  1. Claim 01
    of 06

    Authenticated encryption

    The reviewed providers use XChaCha20-Poly1305 authenticated encryption. The cloud KMS provider wraps per-credential data keys; the local provider uses a configured master key.

  2. Claim 02
    of 06

    Deployment-specific key management

    Key management is deployment-specific. The implementation includes a local key provider and a cloud KMS path. Do not assume a public deployment uses a cloud KMS or a customer-managed HSM.

  3. Claim 03
    of 06

    Append-only audit log

    Every access, lease, grant, and revoke event writes to an audit log that outlasts tenant deletion. Operators and compliance reviewers read the same log; there is no cleaner view that redacts entries.

  4. Claim 04
    of 06

    Tamper-evident integrity

    Stored ciphertexts include an integrity tag verified on every read. Silent corruption is detected rather than returned. A read that fails integrity fails loud.

  5. Claim 05
    of 06

    Tenant isolation at three layers

    Postgres row-level security policies, branded TenantId types at the application layer, and a tenant-scoped repository decorator. Defense in depth, not a single choke point.

  6. Claim 06
    of 06

    OAuth 2.1 with Identity

    Interactive access uses Identity authorization. Approved machine integrations can use the authentication mode configured for their deployment.