Your secrets. One vault. Every agent.
Paste a token once. Every agent, MCP server, skill, and channel that needs it picks it up automatically. Rotate the key from one screen and every consumer updates on the next invocation: no re-binding, no config sweeps.
What lives in the vault.
The Credentials Vault is the single place where Actionist stores every secret your agents need to reach the outside world. Everything in it renders as a credential card, whether you typed the value or an OAuth flow created it for you.
Secrets you paste
Secrets OAuth creates
gitlab · oauth_bundle.oauth_bundle kind in its provider slug.The four credential kinds
Long-lived key issued by a service. Examples: SendGrid, Stripe.
Short-lived or scoped bearer token, PAT, or bot token. Examples: GitHub PAT, Slack bot token.
A static secret sent as a custom HTTP header to an MCP or webhook endpoint.
OAuth 2.0 client ID + secret pair for server-to-server flows.
Reading a credential card.
Each card shows a color-coded key medallion, display name, status badge, binding-count pill, provider/kind slug, and relative last-updated time. Five action buttons appear on every card: Rename, Rotate, Test now, Disable / Enable, and Delete. Which ones are usable shifts with the credential’s state. Pick a state:
Open the vault.
Go to Settings and expand the Credentials Vault panel. It is a card on the Settings page rather than a separate tab, so nothing is visible until you expand it. Once open you get the stored and binding counts, a Search credentials field, Refresh, Add credential, and the credential cards themselves.
The full credential lifecycle.
From first save to eventual deletion. Every action you can take on a credential, and exactly how each one works.
Add a credential
Click Add credential in the toolbar and an inline form expands. Three fields are required: Display name (for exampleGitHub PAT - work), Provider (lowercase identifier: github, sendgrid, slack), and Value (password-masked). Submitting an empty form tells you exactly that: “Display name, provider, and value are required.”Kind is a dropdown that defaults to API key, so you never have to touch it, but change it when the secret is a token, header secret, or client credentials pair. Click Save credential and it appears with an Active badge immediately.Everything else you can do
Rename
Rename
Rotate
Rotate
Disable and re-enable
Disable and re-enable
Delete
Delete
Deletion is not guarded. Check first.
The binding-count pill on each card tells you how many consumers depend on that credential, but nothing enforces it. A credential with active bindings deletes exactly as readily as one with none.
Test a key before an agent does.
Clicking Test now on a credential card triggers a live probe against the provider’s API. For supported providers, the backend makes a real API call to verify the key is active and has access. For other providers, it performs structural and format validation.
Rotate once. Every consumer updates.
When you rotate a credential in the vault, you change one encrypted value. Every agent, MCP server, skill, and channel that holds a binding picks up the new secret on their next invocation: silently, with no re-wiring. Watch the pulse propagate:
The picker lists the active credentials in your vault so you can reuse one instead of pasting the same secret again. It surfaces the credential matching the slot’s provider and kind, and it may also list other active credentials, so read the provider slug before you select. Pasting a new value instead saves that value to your vault as a new credential.
One rotation, instant everywhere.
How the vault pays off the moment a key changes, and how the delete guard keeps a live agent running.
”Rotated the SendGrid key at 9:02. All six consumers were on the new key by 9:03.”
Sam · Solo founder, after a scheduled key cycleThe same principle holds whether you are managing one workspace or twelve. Here is how the vault pays off in practice:
Stale bindings and Needs re-auth.
A binding whose credential is gone
A binding whose credential is gone
Needs re-auth
Needs re-auth
Reading credential state.
A credential can exist, be disabled, or be referenced by something that no longer resolves. These look similar in a list and behave very differently at run time.
Why a credential you saved is not offered in a picker
Why a credential you saved is not offered in a picker
A save failed partway through
A save failed partway through
Deletion is not guarded
Deletion is not guarded
Get the most out of the vault.
Rotate, never delete and recreate
Rotate, never delete and recreate
Disable for temporary pauses, delete only when certain
Disable for temporary pauses, delete only when certain
Test now immediately after saving a new key
Test now immediately after saving a new key
Needs re-auth: create fresh and re-bind
Needs re-auth: create fresh and re-bind
One vault. Zero re-wiring.
Add a credential once. Rotate from one screen. Every consumer stays in sync on the next invocation: agents, MCPs, skills, and channels.
Encrypted at rest · Never shown after save · Scoped to your workspace.
Add, rename, rotate, test, disable, and delete: all of it works in the web app.