Overview
Your agents call APIs through TAP. Credential values are stored encrypted in a secure enclave that not even we can read.
Your agent calls TAP's proxy URL with a service name instead of a real API key.
By default, reads auto-approve and writes (POST, DELETE…) wait for your OK. You can customize this per credential.
You see exactly what your agent wants to do in your approval channel and approve or deny with one tap.
After approval, TAP substitutes the real credential and forwards the request.
Everything you need is in the sidebar. Here's what each section is for.
Credentials
API keys and tokens for third-party services. Agents reference them by name; the actual values are stored encrypted in a secure enclave that not even we can read.
Agents
Registered AI agents that can make requests through TAP. Each has its own API key and access is scoped to specific credentials.
- Create an agent below and copy the API key
- Add this block to your agent's system prompt:
/setup-tap configures this automatically.
Roles
Named permission sets that group credentials together. Assign a role to an agent instead of granting credentials one by one.
Policies
Per-credential rules for when requests are auto-approved vs. held for review. Typically: reads pass through, writes require approval.
The proxy checks in order: URL patterns → HTTP method → default deny.
Approvals
Configure where approval requests are sent. Connect a Telegram or Matrix group to review and act on pending agent requests in real time.
- Create a Telegram group for approvals (or use an existing one)
- Add @vaulty_tap_bot to the group
- Get the group's Chat ID: add @raw_data_bot to the group, it will post the Chat ID, then remove it
- Paste the Chat ID below
A negative number for groups. The approval bot must be a member of this chat.
on
to your room.
The bot can join rooms on any federated homeserver.
Matrix bot is not configured on this server. Set MATRIX_HOMESERVER_URL and MATRIX_ACCESS_TOKEN to enable it.
- Invite the bot above to the room you want approval messages in
- Find the internal Room ID (starts with
!) for that room:How to find it: Element Web / Desktop: open the room → Room Settings → Advanced → copy Internal room ID
Element iOS / Android: tap the room name at the top → Settings → scroll to Room ID
Any client: room IDs look like!aBcDeFgH:your.server— the!prefix distinguishes them from#alias:your.serverroom aliases - Paste it below
Internal Matrix room ID, starting with !. Not the human-readable alias.
My Profile
Your identity as an approver. Display name and messaging IDs are used to match you to credentials that require your approval.
Security
Manage passkeys for this account. Login requires a registered passkey — Face ID, fingerprint, or a hardware security key.