Free · AES-256-GCM · one request to register

A Secrets Vault for AI Agents

Store a credential once and let every agent, script or teammate that needs it fetch it, scope it and rotate it over plain HTTP or MCP. No SDK to install, no vault to babysit, and no secret left sitting in a .env file.

Humans delegate scoped, expiring tokens — and every share ends on its own.

One vault, three directions

The same primitive every time: a credential with a scope and a deadline, or a single-use code for the one receiver an API token cannot cover — a person.

Human Agent

You keep the account. The agent gets a token that reaches one prefix, or reads only, and stops working on its own.

Agent Human

The agent mints a one-time code and never hands over its own token. The person redeems it once, in a browser.

Agent Agent

A supervisor delegates one slice of its vault to a worker, then revokes it without touching the rest.

Person → person is the same one-time code, redeemed by whoever has an account. Open the sharing page →

Start in one line

Pick the door that fits. Everything below copies.

Send Your AI Agent to AgentSecrets
Read https://agentsecrets.net/skill.md and follow the instructions to join AgentSecrets Click to copy
1. Paste this into your agent's chat runner (Cursor, Windsurf, Claude Code)
2. Agent auto-registers via API & securely persists the 12-word seed phrase
3. Store & fetch AES-256-GCM encrypted credentials with 1-line cURL
ZERO-FRICTION ACCESS

Four ways in.

Sitting in a browser, running an agent in a terminal, connecting via Model Context Protocol, or automating via HTTP — pick the door that fits.

📊

Browser Dashboard

No terminal commands required. Click "Issue in Dashboard" or log in, view your live encrypted vault, reveal secrets, and copy ready-to-use cURL commands automatically.

Instant 1-click agent identity generation
🔒 AES-256-GCM encryption with per-account keys
📋 Visual vault: reveal secrets & copy ready cURLs
1-CLICK • WEB UI
🌐

API Bootstrap

HTTP • ZERO SETUP

Direct HTTP POST endpoint. Ideal for micro-bots, edge runtimes, n8n, Zapier, Postman, and any programming language or workflow automation.

cURL (Bash / Terminal):
curl -X POST https://www.agentsecrets.net/v1/auth/register \
  -H "Content-Type: application/json" \
  -d '{"username": "my_agent418302", "password": "secure_pass"}'
🖥️

OS Native Terminal

CLI • 1-LINER

Direct terminal 1-liner. Perfect for Cursor, Claude Code, Windsurf, CI/CD, and CLI agents. Automatically provisions a unique agent identity and exports AGENTSECRETS_TOKEN to your active shell session.

macOS & Linux (bash):
export AGENTSECRETS_TOKEN=$(curl -sf -X POST https://www.agentsecrets.net/v1/auth/register -H "Content-Type: application/json" -d "{\"username\":\"bot_$RANDOM\",\"password\":\"sec_$RANDOM\"}" | grep -o 'as_live_[^"]*')

Remote MCP Stream

MCP • ZERO-CONFIG

Direct connection over Streamable HTTP for Cursor, Windsurf, Claude Desktop (via the mcp-remote bridge) and agent runners. Connect with zero credentials — an autonomous encrypted vault is provisioned on the fly!

Cursor (~/.cursor/mcp.json):
{
  "mcpServers": {
    "agentsecrets": {
      "url": "https://www.agentsecrets.net/mcp"
    }
  }
}

Legacy SSE transport: https://www.agentsecrets.net/mcp/sse (deprecated, kept for older clients).

All four paths grant immediate access to AES-256 encrypted vaults, fully compatible with cURL, MCP, and autonomous agent frameworks.
OPEN PROTOCOLS • PUBLIC CONTRACT • NO SDK REQUIRED

Works With Any Client That Speaks MCP or HTTP

There is nothing to install and no vendor account to create. AgentSecrets speaks the Model Context Protocol over Streamable HTTP (the current transport, one POST endpoint at /mcp) and the older SSE transport (/mcp/sse, deprecated but still served), plus plain REST — so any runtime that can make an HTTP request can keep its credentials here. The whole contract is public: the numbers below are read from the live server, and every one of them can be checked yourself before you trust this with a single secret.

MCP PROTOCOL: 2024-11-05
TRANSPORTS: HTTP • SSE legacy
TOOLS: 15 MCP
PROMPTS / RESOURCES: 5 / 2
ENCRYPTION: AES-256-GCM
Claude Code
Anthropic • Claude 3.7
Cursor Composer
Anysphere • IDE Agent
OpenAI Operator & Swarm
OpenAI • Autonomous Swarm
Google Antigravity
Google DeepMind • Coding Agent
Windsurf Cascade
Codeium • Collaborative IDE
Devin
Cognition AI • Autonomous Dev
Cline / Roo Code
VS Code Autonomous • Extension
GitHub Copilot Agent
GitHub • Workspace & Actions
CrewAI
CrewAI Inc. • Multi-Agent Swarms
Microsoft AutoGen
Microsoft Research • Swarm Mesh
LangGraph / LangChain
LangChain • Cyclical Graphs
MetaGPT
DeepWisdom • Enterprise Swarm
Aider
Paul Gauthier • Terminal CLI
Smolagents
Hugging Face • Micro-Agents
Goose
Block / Square • Open-Source CLI
Model Context Protocol
Open Standard • Anthropic Spec
01
Keeps Secrets Out Of The Transcript
The /raw endpoint returns text/plain designed to be piped straight into a process, so a value never has to be printed into the model's context.
02
Prefix-Scoped Token Isolation
Granular token rules (agents/worker-1/*) prevent subordinate agents from accessing unauthorized root keys.
03
Non-Destructive Rollback Snapshots
Automatic version history protects against agent hallucinations or bad code overwrites with instant 1-click restore.
04
Burn-After-Read & TTL Leases
A secret can be set to self-destruct on first read, or to expire on a timer, so a credential handed to a worker does not outlive the job it was issued for.
REALTIME SERVER STATS

Live Infrastructure & Cryptographic Metrics

Real-time cluster telemetry monitoring cryptographic throughput, plaintext secret-value bytes at rest, and agent swarm activity.

AGENTSECRETS KERNEL TELEMETRY // REALTIME NODE METRICS
LIVE STREAMING
Vault Operations / Sec
ops/s
Live cluster throughput
Encryption Latency
ms
AES-256-GCM, measured server-side
Plaintext Secret Values in DB
0 BYTES
Zero plaintext secret values at rest BY DESIGN
Active Agent Sessions
Swarm & CLI workers
Secrets Stored & Sealed across all vaults
Encrypted records
Scoped Subagent Tokens
Prefix & read-only isolation SCOPED
Max Encrypted Payload
MB
Full .env & JSON bundle support CAPACITY
Compliance / KYC Required
Zero emails • Zero tracking ANONYMOUS
🌱 EARLY STARTUP AgentSecrets is 100% Free for all AI agents & developers. Native Agent Skill: agentsecrets.net/skill.md
CHECK IT YOURSELF

Nothing Here You Have To Take On Faith

You are about to hand a vault your production credentials, so do not trust the copy on this page. Every claim below has a URL you can open right now — no account, no sales call, no NDA.

The entire API contract
OpenAPI 3, generated from the running server
OPEN

Every endpoint, parameter and response shape is published, including which MCP methods require a token and which are answered without one.

Every MCP tool schema
Machine-readable server card and manifests
MCP

All 15 tools with their input and output schemas, plus the 5 prompts and 2 resources the server advertises over MCP.

Live server numbers
Read from the cluster, not from this page
REALTIME

Throughput, measured encryption latency, bytes of plaintext secret values at rest and active agent sessions — the same JSON the live stats section polls every few seconds.

The exact encryption model
AES-256-GCM with per-account derived keys
SECURITY

What is encrypted, when it is decrypted, and what the server can and cannot do with your data — stated in plain language rather than a slogan.

The rules your agent will read
Plain-text instructions, no hidden behaviour
TEXT

Before an agent stores anything here it reads these files. They are short, human-readable and you can audit them in a minute.

🤖 Standardized Agent Architecture

AI Agent Protocols & Specifications

Ready-to-use machine-readable manifests, skill definitions, and operational directives for autonomous AI agents, swarms, and LLM frameworks.

SKILL
Universal AI Agent Skill instruction file with YAML frontmatter. Compatible with Antigravity, Claude Projects, and Cursor.
Open File ↗
📦 MANIFEST
Machine-readable JSON schema defining agent tool interfaces for registries (Smithery, Toolhouse, OpenAgents).
Open File ↗
🛡️ PROMPTS
Mandatory operational rules for autonomous agents: zero-leakage logging policy, /raw capture, and fuzzy 404 recovery.
Open File ↗
💓 PROTOCOL
Autonomous agent liveness protocol, dead-man switch with TTL, workflow state checkpointing, and one-time handoffs.
Open File ↗
📄 LLM DOCS
Concise context documentation and curl cheatsheet designed for consumption by LLMs and autonomous agents.
Open File ↗
🔌 OPENAI
Standard OpenAI / ChatGPT Plugin discovery manifest pointing directly to the OpenAPI specification.
Open File ↗
🤖 MCP PROTOCOL v0.3.0
Native Model Context Protocol server with Zero-Config Auto-Provisioning. 15 tools including get_secret, set_secret, list_secrets, get_agent_context and create_handoff. Connect without tokens, and hand a running agent a scoped token with a TTL instead of its full identity.
Explore API View Server Card ↗
📋 SEP-1649
Static SEP-1649 MCP capability declaration enabling instant indexing by registries (Smithery, Glama, MCP Registry) without active scanning.
Open File ↗
⚙️ OPENAPI 3.1
Standard machine-readable OpenAPI 3.1 schema for function-calling models, LangChain, CrewAI, AutoGen, and automated SDK generation.
Open File ↗
📚 EXTENDED DOCS
Comprehensive reference manual for LLMs: detailed curl walkthroughs, encryption proofs, error matrices, and payload schemas.
Open File ↗
🩺 ERGONOMICS
Zero-auth capability discovery endpoint exposing all 16 cryptographic features, active rate limits, quotas, and service health.
Open File ↗
🌐 CATALOG
Central machine-readable specification index cataloging all markdown protocols, JSON manifests, and SSE streaming doors.
Open File ↗
DATA AT REST

What the database stores, and in what form.

Three groups of columns, field by field. Every line below is checkable against the running service — nothing here asks to be taken on trust.

in memory only
Your secret value plain text
the transform
AES-256-GCM key per account
on disk
Ciphertext IV + 16-byte auth tag

Encrypted

3 fields

Sealed before the write, with a key derived per account (HKDF-SHA256). Unreadable in the database file itself.

  • secrets.encrypted_valueevery secret value
  • secret_versions.encrypted_valueprevious versions kept for rollback
  • users.encrypted_notesprofile notes / scratchpad

Hashed

3 fields

Stored as a digest and never reversed. The service compares a digest at check time instead of keeping the original.

  • users.password_hashthe account password
  • users.recovery_token_hashSHA-256 digest of the 12-word phrase
  • api_tokens.token_hashAPI tokens; the raw value is never stored

Plain text

8 columns

Readable, because lookups depend on them: a login has to find the account, a key list has to show key names, and a prefix: scope has to match them. No encryption layer covers these columns, and saying so is the point of this section.

  • users.usernamelogin lookup and the name shown back to you
  • secrets.keykey listing and prefix: scopes
  • secrets.environment secrets.content_typemetadata, no encryption layer
  • secrets.webhook_urlcallback target on burn or expiry
  • api_tokens.token_prefix api_tokens.nameidentification in the token list
  • web_sessions.csrf_tokencompared with the request header, so it cannot be a hash
What a database dump actually shows one row from secrets
key                                  │ value                                   │ environment
────────────────────────────────────┿──────────────────────────────────────────┿────────────────────────────
prod/stripe_key9f2ac41b7e05…d2f8 (ciphertext + tag)production
plain · the key name sealed · the value plain · metadata
  • Unreadable at rest. Secret values are encrypted. Passwords, tokens, and the recovery phrase are stored only as one-way digests.
  • Readable identifiers. Usernames, key names, environments, token prefixes and session CSRF tokens are stored in plain text, because login, listing and prefix: scopes depend on reading them. Only values, notes and credentials are sealed or hashed.
  • Zero data recovery. The 12-word phrase is kept only as a one-way digest, so nothing but the phrase itself can restore an account. If the phrase and the token are both lost, the vault is unreachable.
ARCHITECTURE & FAQ

Frequently Answered Questions

Technical details regarding AES-256-GCM encryption, autonomous agent orchestration, and vault guarantees.

When an agent registers or logs in, each account gets its own 256-bit key derived from the server master key with HKDF-SHA256, salted with the account id. Every secret value is encrypted using AES-256 in Galois/Counter Mode (AES-256-GCM) with an authenticated payload tag. Secret values are stored only as ciphertext, together with their initialization vectors and authentication tags. A secret value is never written to disk or to the logs in readable form.

🔒 In-Memory Cryptographic Pipeline
1. Agent Request Bearer Token
2. HKDF-SHA256 Salt = Account ID
3. AES-256-GCM IV + 16B Auth Tag
4. Sealed Database Secret values stored as ciphertext
Key Derivation
HKDF-SHA256 (per-account salt)
Cipher Suite
AES-256-GCM (Authenticated)
Plaintext Secret Values
None (ciphertext only)
Tamper Resistance
128-bit GCM authentication tag

During initial account creation, AgentSecrets generates a standard 12-word BIP-39 mnemonic seed phrase. If an agent container restarts, loses memory, or has its bearer token destroyed, it can invoke POST /v1/auth/recover with its username, the 12-word seed, and a new password to immediately regenerate vault access.

🔑 12-Word BIP-39 Vault Seed Phrase Format
01 sound
02 essay
03 present
04 inmate
05 giraffe
06 iron
07 rhythm
08 picture
09 garage
10 confirm
11 bench
12 cable
Programmatic Recovery Endpoint
curl -X POST "https://www.agentsecrets.net/v1/auth/recover" \
  -H "Content-Type: application/json" \
  -d '{"username": "worker_bot", "recovery_phrase": "sound essay present inmate giraffe iron rhythm picture garage confirm bench cable", "new_password": "new_secure_pwd"}'

Autonomous agents running in bash or terminal subshells often fail when parsing JSON using tools like jq if dependencies are missing. The /v1/vault/secrets/{key}/raw endpoint returns only the decrypted plaintext string with Content-Type: text/plain. This allows direct assignment like export TOKEN=$(curl -sf .../raw) and prevents LLM reasoning traces from leaking JSON key-value pairs into memory.

⚖️ Architecture Comparison: JSON vs AgentSecrets /raw
✕ Clumsy JSON Parsing (Error-Prone)
TOKEN=$(curl -s .../secrets/key | jq -r .value)
• Fails if jq is not installed in container
• LLM context logs full JSON response object
• Escape sequence parsing crashes subshells
✓ AgentSecrets Direct /raw (Native)
export TOKEN=$(curl -sf .../secrets/key/raw)
• Zero external dependencies required
• Clean Content-Type: text/plain
• Zero leakage into LLM reasoning trace logs

When orchestrating swarms, parent agents should never share full-access credentials with worker subagents. AgentSecrets allows minting scoped tokens with read_only restrictions or prefix:worker-1/ path locks. If a subagent hallucinates or is injected with adversarial prompt commands, it cannot access or overwrite secrets outside its prefix.

🛡️ Multi-Agent Least-Privilege Hierarchy
Parent Orchestrator
Full Admin (Read, Write, Rotate)
Worker Subagent
Locked to scope="prefix:worker-1/*"
Telemetry Bot
Read-Only scope="read_only"
Ephemeral Job
Auto-Expiring ttl="300" (5 mins)
# Mint a scoped token for worker-1 with 1-hour expiration
curl -X POST "https://www.agentsecrets.net/v1/auth/tokens" \
  -H "Authorization: Bearer $MASTER_TOKEN" \
  -H "Content-Type: application/json" \
  -d '{"scope": "prefix:worker-1/", "ttl": 3600}'

None. AgentSecrets emits strict X-Robots-Tag: noindex, noarchive, nosnippet headers on all API responses, employs zero analytics tracking cookies, and runs an ephemeral in-memory decryption pipeline. Secrets are never cached in web archives or search crawler indexes.

🌐 Hardened Anti-Scraper & Crawler Response Headers
HTTP/1.1 200 OK
X-Robots-Tag: noindex, noarchive, nosnippet, noimageindex
Cache-Control: no-store, no-cache, must-revalidate, max-age=0
Pragma: no-cache
X-Content-Type-Options: nosniff
Set-Cookie: [NONE • 100% Tracking Cookie-Free Architecture]

AgentSecrets was built as public infrastructure for the autonomous AI ecosystem. We believe foundational security primitives should not be locked behind corporate enterprise paywalls. The project is sustained purely by voluntary community donations and infrastructure sponsorships from AI teams.

🌱 Three Public Infrastructure Guarantees
🔓 MIT Licensed
No proprietary SDK and no lock-in on your data: every secret can be exported as a shell script or JSON at any time, under MIT terms.
🛡️ Zero KYC / Anonymity
No email, credit card, phone number, or human identification required. Built for autonomous agents.
🤝 Community Backed
Sustained by voluntary developer sponsors and infrastructure partners passionate about AI security.

The production backend runs FastAPI on Python 3.11 (the package supports 3.10+) backed by high-concurrency PostgreSQL using the asyncpg driver with connection pooling. SQLite is supported as a drop-in alternative when DATABASE_URL points at a SQLite file, which is how the service runs for local development; the deployed instance uses PostgreSQL.

⚙️ Production Infrastructure Stack
Web Framework
FastAPI + Starlette (ASGI Async)
Primary Database
PostgreSQL 16 High-Concurrency
Database Driver
asyncpg Connection Pool
Edge Fallback
SQLite 3 + WAL Journaling

AgentSecrets provides a native Model Context Protocol (MCP) server over Streamable HTTP (/mcp, the recommended single POST endpoint) and the older SSE transport (/mcp/sse, deprecated but kept working for clients that have not moved yet). Agents can connect in Zero-Config mode without pre-shared tokens to get an auto-provisioned vault, or connect in authenticated mode using Authorization: Bearer <token>.

One endpoint, three client shapes (each client reads a different field)
Cursor — ~/.cursor/mcp.json
{
  "mcpServers": { "agentsecrets": { "url": "https://agentsecrets.net/mcp" } }
}

Windsurf — ~/.codeium/windsurf/mcp_config.json
{
  "mcpServers": { "agentsecrets": { "serverUrl": "https://agentsecrets.net/mcp" } }
}

Claude Desktop — claude_desktop_config.json (stdio bridge: no remote URL support)
{
  "mcpServers": {
    "agentsecrets": { "command": "npx", "args": ["mcp-remote", "https://agentsecrets.net/mcp"] }
  }
}

Access moves in two shapes, and neither one asks either side to give up its identity. The human mints a delegated token with POST /v1/auth/tokens (scope, plus a required ttl_seconds) and passes the token string to the agent. Or the human mints a single-use handoff code with POST /v1/handoff and the agent redeems the code with POST /v1/handoff/accept. The code is redeemable for ten minutes, and redeeming it is what creates the credential, so the agent can accept the grant instead of merely receiving it. In both shapes the token records the token that issued it.

🤝 Delegated, and accepted by the other side
Human picks a scope read_only, prefix:, full
Token, or a handoff code the code lasts 10 minutes by default
The agent accepts POST /v1/handoff/accept
Agent gets a token with a deadline the agent keeps its own vault
  1. The supervisor mints the token from the dashboard's Share this vault panel (Issue access) or over the API, choosing a scope and a lifetime between 60 seconds and 30 days — or mints a handoff code and passes that on instead. The panel hands back a ready-made prompt with the token already in it.
  2. The agent uses the token like any other: Authorization: Bearer <token>, or the mint_scoped_token MCP tool when the caller is itself an agent.
  3. When the lifetime ends the token stops working by itself, and the issuer can deactivate one earlier with DELETE /v1/auth/tokens/{id}. Revoking a token does not revoke tokens that token issued.

Paste it into the dashboard. It is a handoff code, shaped like hs_…, and it exists only to let you accept access another account is offering. It is single-use and stops being redeemable ten minutes after it was minted unless the sender deliberately asked for a longer life, so a code left sitting in a chat window overnight is already dead. It is not a credential: it lives in no token row, and sending it as Authorization: Bearer is answered 401.

📥 The code, from the receiving side
Agent mints a code create_handoff / POST /v1/handoff
You paste it dashboard, Accept access
You hold a delegated token scope and TTL the agent chose
Its vault appears in your dashboard the raw token is shown once, then never again
Code lifetime
10 minutes by default
Uses
exactly one
Token default TTL
24 hours
Your own code
refused with 409
  1. The account that owns the vault calls create_handoff over MCP or POST /v1/handoff over REST, and passes you the code it receives. Only a full-scope token may mint one.
  2. You open the link they send you. The sender's Share this vault panel builds that message for them, with the code in the URL fragment so it never reaches a server log — and if you would rather paste something, the same panel has a Have a code from someone else? box. Behind both is POST /v1/handoff/accept, which also works from any Bearer token.
  3. What you receive is a delegated token on that account with the scope and lifetime its owner chose — 24 hours unless they set otherwise — and the vault appears in your dashboard. Either side can end it later.

No. A single unauthenticated request creates an account and returns a token: POST /v1/auth/register with a username and password. There is no email step, no captcha, no KYC and no payment method. Because there is no email on file, password resets work through a 12-word recovery phrase instead of a reset link.

🌱 Zero-friction onboarding
Signup
one request
Email
not required
Card / KYC
not required

Open /dashboard/, press Start Instant Vault and then + New Secret. If you would rather let an agent do it, paste the prompt from the "Connect your agent" panel into Cursor, Claude Code or any chat runner: the agent reads /skill.md, registers itself and stores its credentials.

Three steps to a first secret
1. Start Instant Vault or POST /v1/auth/register
2. + New Secret paste the value
3. Reveal or /raw copy it or pipe it

Up to 100 active secrets per account, with each value up to 1 MB of text or JSON. Values can carry a TTL, be marked burn-after-read, and be tagged with an environment. Encrypted profile notes are stored separately from the vault.

📦 Quota at a glance
Secrets per account
100 active
Value size
up to 1 MB
Profile notes
stored separately

Yes, at any time and without asking us: GET /v1/vault/export?format=shell returns export KEY='value' lines, ?format=json returns the same data as JSON, and the dashboard has Export .env and JSON buttons. There is no proprietary SDK and nothing is held hostage.

📤 Take your data with you
Shell export
/v1/vault/export?format=shell
JSON export
/v1/vault/export?format=json
Lock-in
none

Secrets can be removed one by one or in bulk from the dashboard. Deleting the account is not self-service today: write to support@agentsecrets.net and the account and its vault are removed.

🗑 Removing data
One secret
Delete in the table
Many at once
select rows, then Delete selected
Whole account
support@agentsecrets.net

Yes — and any description that says otherwise is wrong. Every value is sealed with AES-256-GCM under a key derived for your account, so the database never holds plaintext, but the server holds that key and decrypts when you ask for a value. That is exactly what Reveal and the /raw endpoint do. This is encryption at rest with server-side decryption, not zero-knowledge encryption.

🔍 What the encryption covers
At rest
AES-256-GCM ciphertext
In use
the server decrypts on request
Zero-knowledge
no — the server holds the key

No. A token whose scope is read_only or prefix:... cannot mint tokens, rotate them or revoke them — those calls return 403. Creating any token requires a token whose scope is exactly full, so a worker cannot widen its own mandate.

🛡 Privileges cannot be self-granted
Create a token
requires scope: full
Rotate / revoke
requires scope: full
read_only or prefix token
403 on every token call

Roughly 60 requests per minute per token, 15 registrations per minute per IP, and 15 anonymous vaults per hour per IP. Authenticated responses carry X-RateLimit-Limit, -Remaining and -Reset; a rejected request returns 429 with Retry-After. These are anti-abuse quotas, not billing.

Anti-abuse quotas
Per token
60 requests / min
Registration
15 / min per IP
Anonymous vaults
15 / hour per IP

In the ZUR1 region — Zurich, Switzerland. Values are encrypted with AES-256-GCM before they reach disk, keys are derived per account with HKDF-SHA256, and the API is served over TLS.

🌎 Data residency
Region
ZUR1 • Zurich, Switzerland
Cipher
AES-256-GCM
Key derivation
HKDF-SHA256 per account

An agent that connects to /mcp (or the legacy /mcp/sse) without credentials gets a brand-new isolated vault the first time it calls a vault tool. If it never calls a tool within an hour, that unactivated vault is deleted automatically. Once the agent has used a tool, the vault is permanent until its owner deletes it.

Lifecycle of an autonomous vault
Connect without a token a new isolated vault
No tool call within 1 hour the vault is deleted
Any tool call the vault becomes permanent

By a heartbeat key. The worker overwrites agents/<id>/heartbeat with a short ttl_seconds every half-interval; the supervisor reads it, and a 404 means the worker stopped refreshing. GET /v1/agent/context and list_secrets with expiring_within show several workers at once.

💓 Dead-man's switch
Worker writes its key ttl_seconds = 60
Supervisor reads it every 30 seconds
404 KeyNotFound the worker is gone

Mint a scoped token instead of sharing your own: read_only forbids every write, prefix:worker_ limits the token to keys starting with that prefix, and prefix:ro:worker_ makes it read-only inside the prefix. The dashboard's Share this vault panel lists every token below its issue form and can revoke one instantly.

🔑 Scopes in one look
read_only
no writes, no deletes
prefix:worker_
writable inside the prefix
prefix:ro:worker_
read-only inside the prefix

Nothing to install: the MCP server is remote. Point a client at https://agentsecrets.net/mcp (Streamable HTTP, recommended) or https://agentsecrets.net/mcp/sse (legacy Server-Sent Events, deprecated but still served). Both speak JSON-RPC and answer initialize, tools/list, prompts/list and resources/list without credentials, so a client can discover the server before it has a token.

🔌 MCP entry points
Streamable HTTP (recommended)
/mcp
SSE (legacy)
/mcp/sse
To install
nothing

Yes, and it does not matter which side is the human. Every entity — a person at a browser or an agent on the wire — registers the same way, owns its own vault and delegates from it. Sharing always runs in one of four directions, and the receiving side can accept the grant rather than merely be handed a string.

👥 Who can share with whom
Human → agent Share this vault
Agent → human create_handoff, then accept
Agent → agent mint_scoped_token
Person → person share code, then accept
Registration
one call, human or agent
Default delegated TTL
24 hours (60 s to 30 days)
Identity handed over
none, on either side
Issuer recorded
parent_token_id
  1. Same account, either way. A human and an agent register through the same endpoint and each keeps its own vault and its own credential, so the pair is added rather than merged.
  2. Either side can be the issuer. A human issues a scoped, time-bounded token from the dashboard; an agent mints a handoff code for a human to accept, or a scoped token for another agent.
  3. The one-time code is direction-agnostic, so a person shares with another person the same way: mint the code in the dashboard, the other account accepts it, and nothing pins either side to being an agent.
  4. The receiving side keeps its own identity. The credential it gets is a separate, expiring token on the issuer's account — the issuer's own token is never disclosed, and either side can end the relationship later.

Yes, with the same primitive everything else uses: POST /v1/auth/tokens, or the mint_scoped_token MCP tool. The granting agent asks for a scope — read_only, prefix:<p>/, prefix:ro:<p>/ or full — and a ttl_seconds, and receives a token on its own vault. It hands that string to the other agent; it never hands over its own credential.

🤖 One agent to another
Mechanism
mint_scoped_token / POST /v1/auth/tokens
Scope
chosen by the granting agent
Lifetime
always set, 60 s to 30 days
Who may delegate
a full-scope token only
  1. The granting agent mints a token with a scope and a lifetime. Defaults are least privilege: read_only, and the handoff variant defaults to a 24-hour lifetime.
  2. It passes the token string to the other agent, which uses it as its own Bearer credential against the granting agent's vault — over REST or MCP.
  3. The token records the issuing token in parent_token_id, expires on its own, and can be revoked individually. Revoking it does not revoke tokens it went on to issue.

No. The service never calls a model: it answers HTTP and MCP requests and returns what you asked for. Its responses carry X-Robots-Tag: noindex, noarchive, nosnippet, it sets no analytics or tracking cookies, and decryption happens in memory per request. What an agent does with a value it fetched — including printing it — is decided by that agent, not by us.

🤖 What leaves the service
Calls to a model
none
Analytics cookies
none
Response headers
noindex, noarchive
🌱 Early Startup Mission

100% Free Service • Sustained by the Community

AgentSecrets is an independent, early-stage open infrastructure startup. We charge $0 for all AI agents, swarms, and developers. There are no paywalls, no tracking cookies, and no sold data. The service currently exists purely on voluntary donations.

OPEN FOR EVERYONE 100% FREE
$0 / forever

Full uncompromised access to all AgentSecrets capabilities for autonomous agents, CLI tools, and developers.

  • Zero registration friction (1-request instant token)
  • AES-256-GCM encryption with a unique key derived per account
  • Up to 100 active secrets per user
  • Up to 1 MB payload per secret value
  • Granular scoped tokens (read-only, prefix-restricted)
  • Real-time traffic & server load transparency
COMMUNITY FUNDED 🤝
Voluntary Donations & Sponsorships

Server infrastructure, high-availability PostgreSQL, Redis caching, and NVMe edge nodes cost real money. If AgentSecrets saves your agents time or secures your infrastructure, consider fueling our servers:

Crypto Donation Addresses:
USDT (TRC20): TLwdY3ioxo9G2ZBzJnYTZgRqkY8uyTtpuC
SOL: FR83QMNnPuu2cNuL5qR7C7ag2eBBKAmrGk8v7NApwUyz
BTC: bc1qypsyh32p7dv56dpqs4ngxz8tvs4aqelm5ekqmz
💌 Interested in hardware sponsorship or custom enterprise peering? Reach out on GitHub or via our API endpoints.