Give your AI agents access, not your keys.

LockDock is the permission layer between you and your AI agents. Risky actions wait for your approval, and every attempt is logged.

Building an agent platform? See the API →

One permission layer for 40+ tools

  • Google Calendar
  • Google Drive
  • Google Sheets
  • Gmail
  • Slack
  • Notion
  • GitHub
  • Linear
  • HubSpot
  • Stripe
  • Shopify
  • Figma
  • Jira
  • Asana
  • Zendesk
  • Discord
  • OpenAI
  • Anthropic

Delegate to agents without handing over the keys.

Your agent asks. You decide.

Every request is checked on the server before anything runs. Allowed reads go through right away. Writes wait in your approval queue with a plain-English summary. Anything outside the agent's permissions is rejected with a reason.

How approvals work →
Incoming requestsops-agent
google_calendar.read_eventsexecutedRead up to 10 upcoming calendar events. Reads run automatically.
google_calendar.create_eventpending_approvalCreate calendar event “Investor sync”. Waiting for you.
google_drive.trash_filerejectedBlocked by the Read Only preset on this connection.

Agents never hold your credentials.

OAuth tokens are encrypted at rest with AES-256-GCM and never leave LockDock's servers. Each agent gets its own key. Revoke that key and the agent is cut off on its next request, while your Google and Slack connections stay in place.

Actors and keys →
Actors3 actors
ops-agentagent · key issued Sep 28key activeRevoke key
research-botagent · key issued Sep 14key activeRevoke key
acme-workflowsplatform · key revoked Oct 1revokedIssue new key
agent sees    ld_actor_••••••••
lockdock holds google oauth token (encrypted, server-side)

Every attempt is on the record.

Requests, approvals, rejections, revokes and disconnects are all logged, including the ones that were blocked. Filter by agent, tool or event type to see exactly what happened and when.

How it works →
Activityactor: allprovider: all
10:42:07ops-agentCreated event “Investor sync”executed
10:41:55youApproved create_eventapproved
10:39:51ops-agentsend_email · Q3 invoice follow-uppending
10:31:15research-botRead Pipeline!A1:F200executed
10:12:40research-bottrash_file · Old draftsrejected

Three presets, and a few rules that never change.

You pick a preset for each connection. There are no OAuth scopes to read and no policy language to write.

Read Only

The agent can look things up but cannot change anything.

Readsauto
Writesblocked

Read + Write with Approval

The agent can prepare changes. Each one waits for your yes.

Readsauto
Writesapproval

Manage

Routine writes run on their own, for agents you already trust.

Readsauto
Routine writesauto

Under every preset

  • Deletes always ask first. Deleting, archiving or trashing anything needs your approval, even under Manage.
  • Sending email always asks first. An agent cannot send mail on your behalf without you seeing it.
  • Writes need approval by default. Nothing writes on its own unless you choose a preset that allows it.
  • Revocation is immediate. Revoke a key or disconnect a tool and the next request is refused.

From connection to governed call in three steps.

  1. 01

    Connect a tool

    Sign in with Google, Slack, Notion and others. LockDock stores the tokens, and your agent never sees them.

  2. 02

    Create an actor and choose a preset

    Each agent or platform gets its own key and its own permissions for each connection.

  3. 03

    Your agent calls LockDock

    Allowed actions run right away. Gated ones return pending_approval and wait in your queue.

# Agent submits an action. It never sees the Google token.
curl https://lockdock.ai/api/actions/request \
  -H "Authorization: Bearer $LOCKDOCK_ACTOR_KEY" \
  -d '{
    "provider": "google_calendar",
    "actionType": "create_event",
    "payload": {
      "title": "Investor sync",
      "start": "2026-10-06T15:00:00Z"
    }
  }'

# Response
{
  "status": "pending_approval",
  "actionRequestId": "clx8f2c...",
  "humanSummary": "Create calendar event \"Investor sync\" ..."
}

Govern more than apps.

Put limits on model spend

Connect OpenAI or Anthropic and choose which models an agent may use, a token cap per request and a daily cap. Requests over a limit are rejected with a clear reason.

Anthropic · research-botdaily cap resets 00:00 UTC
Allowed modelsclaude-sonnet-5-5claude-haiku-4-5
Max tokens per request4,000
Daily cap124,000 / 200,000
rejected: Requested 6000 tokens exceeds per-request cap of 4000.

Built for agents and platforms

Give a single assistant its own key, or connect a whole platform as an actor. Both go through one API, with the same presets, the same approvals and the same log.

Actor typesPOST /api/actions/request
agentOne assistant acting for you, such as a chief-of-staff agent.
platformAn app or service that runs agents and submits actions for them.
See the API call →

One queue for every action that needs your yes.

Pending approvals2 waiting
approval requiredgmailops-agent · 2m ago
Send email to 4 recipients: “Q3 invoice follow-up”
action
send_email
preset
Manage (sending is always gated)
to
billing@acme.co +3
ApproveReject
approval requireddriveops-agent · 9m ago
Move “2024 Contracts” folder to trash
action
trash_file
preset
Deletes are always gated

Bring your team in when you're ready.

LockDock works for one person and one agent. When others join, the same controls extend to the team.

  • Shared connectionsConnect a tool once and let teammates' agents use it under the same presets.
  • Team-owned agentsAgents can belong to the team instead of one person.
  • Team approvalsRequests from team agents reach the team, not just the person who created the agent.

Give your agent access you can take back.

Connect your apps in a minute. Change or revoke access any time.