Skip to main content
Store a credential, a card, an environment variable, under a name a run can reference. No surface, API, SDK, CLI or console, ever reads a stored value back. A run reaches it only by naming it; the substitution happens below the model, which never sees the raw value.
This has no MCP tool, deliberately. An assistant must never manage a credential itself; a model that could create, list or delete one is one convincing page away from moving somebody’s money. A secret is created from the CLI or an SDK, straight to the platform; the console at https://outcrawl.ai/console/secrets lists what is stored and revokes it, and neither surface ever holds a value. An agent still uses one, at runtime, by naming it, the one it was given at submit time.
secrets.list returns names and, for a card, its last four digits, and nothing else. secrets.delete takes effect the next time a run would type the value, not at the end of the run: a run that was given a deleted secret finds it gone and stops, naming it.