Docs / Darwin AI

Passes (handoffs) and access levels

How to give an AI agent a time-limited, permission-limited pass to your site, and how to take it back.

Written for Darwin AI 2.87.3

A handoff is a pass you create in wp-admin and give to your own AI agent, such as Claude Code or Codex. It decides three things: how much the agent may do (its permission level), how long it lasts, and how many sessions it may open. You can revoke it at any time.

How a handoff works

  • The handoff is held by your main agent. It cannot change anything on the site by itself. Its only job is to open and close leases.
  • A lease is one agent's working session. The agent uses it to run tools. A lease can never have a higher level, or last longer, than the handoff it came from. A main agent can give each helper agent (sub-agent) its own lease. That way, each one's work shows separately in History.
  • Agents act as the administrator who created the handoff, but only within the handoff's level. A user who can delete every page can still hand out a pass that cannot.
  • Everything a lease does is recorded in History, tagged with the handoff and lease names. History is kept after the handoff ends.

Creating a handoff

  1. Open the Darwin AI panel from the round button in the bottom-right corner of wp-admin.
  2. Switch to Handoff at the top of the panel, and make sure Handoffs is selected at the bottom.
  3. Click + New handoff. The counter beside it shows how many of your 5 handoffs are in use.
  4. Name: describe the job, for example "Fix contact page". The default name is "Handoff -" followed by the date and time.
  5. Permission level: choose Inspector, Editor, Builder, Manager or Owner. The default is Builder. Choose the lowest level the job needs.
  6. Lifetime: choose 1h, 2h, 4h, 8h, 12h or 24h. The default is 8h.
  7. Click Create. The connection details are copied to your clipboard, and the message says "Handoff created - the connection is in your clipboard. Paste it to your agent."
  8. Paste the connection into your agent. Connect an agent explains what happens next.

You can change the preselected level and lifetime under Settings > Personal > Handoffs (Default permission level and Default lifetime).

The connection contains a secret token. Anyone who has it can open sessions on your site at the handoff's level until it expires or you revoke it. Paste it only into your own agent. Never post it in a public place.

The handoff card

Each handoff appears as a card with its name, ID and level. Open it to see:

  • calls by live leases, leases (live out of 10), mints left (leases it may still open) and time left.
  • Under Leases, each session's name, level, calls used out of its allowance, and time left, with its own Revoke button.
  • Copy: copies the connection again, for as long as the handoff is live.
  • Revoke: ends the handoff.

Agents normally open their own leases. If you need one by hand, use the click here link shown when a handoff has no lease yet. The new lease's tokens are copied to your clipboard and are shown only once.

The five permission levels

Each level includes everything in the levels above it in this table.

LevelWhat it adds
InspectorRead only: can look at the site's content but change nothing. Can also send a tool improvement report, if reporting is switched on. Some configuration reads, such as site settings, start at Editor.
EditorConfiguration reads. Creating, editing and binning posts, pages and media. Menus and page building. Files in uploads that the media library does not own.
BuilderTheme files (except PHP), widgets and widget areas, SVG uploads, and the Elementor Kit's design system and global classes.
ManagerSensitive reads, such as the user list and orders. Site settings, Elementor Kit site settings and plugin settings.
OwnerPermanent deletion; installing, activating, deactivating and deleting plugins; must-use plugins; PHP code; plugin, theme and WordPress updates; changing the admin email.

If an agent tries something above its level, the call is refused and says which level it needed. Only you can raise the level, by creating a new handoff.

Limits

LimitValue
Live handoffs per administrator5
Handoff lifetime1 to 24 hours (default 8)
Live leases per handoff10 at once
Leases a handoff may open in its lifetime30
Calls per lease500 at most
Lease ends if not refreshed for3 hours

Handoffs belong to the administrator who created them. You see and manage only your own. When you reach 5, the form says "You already have 5 handoffs, the maximum. Revoke one to create another."

Revoking, and what ends a handoff automatically

To end a handoff early, open its card, click Revoke, then click Confirm within three seconds. All its leases end with it. To end a single session, click Revoke next to that lease.

A handoff also ends on its own when:

  • its lifetime runs out;
  • the administrator who created it can no longer manage the site's settings (for example, they stop being an administrator), or is deleted (on a multisite network, removing them from the site counts too);
  • incognito mode is switched on without that administrator on the list, or they are removed from it.

A lease also ends when its own time runs out, when it has gone 3 hours without a refresh, when it has used its calls, or when an old refresh token is reused (see below).

Leases and refresh, simply

A lease works with two tokens, which are like keys. The access token is the everyday key the agent shows with each request. It lasts 30 minutes or 80 calls, whichever comes first. The refresh token is used once to swap both keys for a fresh pair. This keeps any single key short-lived.

Each refresh token works only once. If an old one is ever presented again, Darwin AI assumes it may have been copied, and revokes that lease straight away. The Darwin client handles refreshing for your agent automatically.

Protection against guessing

Darwin AI counts tokens that were never issued, or that are malformed, by the address they came from. After 60 such failures in 10 minutes, that address is blocked from every Darwin AI entry point for 10 minutes.

  • Expired, already-rotated or revoked tokens that Darwin AI really issued do not count. An agent that simply needs to refresh never locks out others sharing its address.
  • A successful request does not reset the count.
  • Addresses are stored scrambled (hashed), never as plain IP addresses.

For more on how Darwin AI keeps your site safe, see Safety.