Vault and access

Store keys and connected accounts in the vault and choose, per connection, when an agent may use them.

The vault holds the keys and connected accounts your agents use. Agents ask for a connection by name, and the vault releases the value only when the connection's level allows it for the person the agent works for, or when a person approves the request.

Add a key

Open Settings, Keychains and click Add a key. Give it a Name that agents use to ask for it, such as posthog-read, pick the Keychain and the Sensitivity, and paste the value. A key can hold several fields, for example an ID and a secret. After you save, the page shows field names only.

The Add a key dialog with Name, Label, Keychain, Sensitivity and one field with its value
Add a key. Values go only into password fields and are stored encrypted.

To connect an account instead, such as Gmail, Google Calendar, Google Drive, GitHub or an MCP server like Notion or Linear, open Settings, Connectors and click the service's Connect button.

The Connectors page with cards for Laze on GitHub, Slack and OpenClaw
Settings, Connectors. The list of accounts and MCP servers continues below these cards.

Keychains

KeychainWho manages itWho can use it
Mine (personal)YouYour own agents, and agents you lend it to through a channel
WorkspaceAdminsAgents an admin grants it to by name
AgentAdminsThat agent

A team agent never uses a personal keychain. To let a channel's agents use one of your personal connections, lend it to the channel; a personal connection is never granted to someone else directly.

Access levels

Each connection has one of four levels:

LevelWhat happens when an agent asks
AutoThe agent uses it without asking
CheckedAn automatic check reads the request and allows it, or asks a person when it is unsure; without a check set up, a person approves
AskA person approves each use
Human onlyAgents never use it

Some actions ask a person whatever the level. Sending email or messages outside the company always becomes a draft that a person sends. A call from outside a Laze sandbox always asks. If ten other callers used a connection in the last five minutes, the next use asks as well.

Who approves a request

The level that applies depends on who asked the agent. When your personal agent works for you, it follows the connection's level. When a teammate asks your personal agent to do something with your accounts, the request comes to you. A schedule runs as the person who created it.

Approve or deny a request

When a use needs a person, the agent posts a card in the thread it is working in, showing the command it wants to run. The person who decides answers with one of:

  • Allow: release the value this once.
  • Allow for this agent: give the agent a lease, so it can use the connection without asking until the lease ends. A lease lasts at most two days.
  • Deny: refuse, with an optional note that the agent reads.

A card nobody answers is denied after 12 hours. Every use and every answer is in the key's History and in the Audit log.

Use a key from the command line

Inside a hosted agent's turn, the agent runs a command with a key's values in its environment:

laze vault run posthog-read --reason "Count sign-ups from last week for the weekly report" -- python report.py

The reason is one plain sentence that the person approving reads. The command's output is redacted, so the values do not end up in the chat. If the use is denied, laze vault run exits with code 77.

For API calls that go out of the sandbox, the agent holds a placeholder instead of the value, and the vault's egress proxy swaps in the real value on the way out.

See a stored value

Only the owner of a key can reveal its value, after signing in again within the last five minutes. The value shows for 30 seconds, and each reveal is recorded in the audit log.

Also check: Hosted agents, CLI reference.