Skip to main content
Personal access tokens are available in the hosted Ela web app. They bind requests to your vault and work with Cloud MCP, HTTP, the CLI, and the workspace SDKs.

Create a token

  1. Sign in to Ela and open Settings → Access tokens.
  2. Enter a descriptive Token name, such as Research assistant.
  3. Leave both checkboxes off for retrieval only. Select Write notes if the integration must submit note mutations.
  4. Reserve Review agent writes for a reviewer-controlled integration. An agent submitting proposals does not need this permission.
  5. Click Create token.
  6. Copy the secret immediately, or click Copy config to copy the Cloud MCP configuration shown beside it.
  7. When you no longer need the token, click Revoke on its row and confirm. Clients using it will stop working.
The secret is shown only when created. Subsequent token listings never include it. If you lose it, revoke the old token and create a replacement. The section is hidden in local mode without authentication. Desktop and iOS do not yet offer token-management UI; create tokens on the web.

Permissions

Your session can grant only permissions it already holds. A token with notes.review does not automatically have notes.write, or vice versa. These checks apply through HTTP, SDKs, CLI, and Cloud MCP. Authenticated note mutations without notes.write return 403 PERMISSION_MISSING. Supplying agent_id does not grant permission. Read-only static bearers also remain read-only. Cloud MCP retrieval tools are available to valid read-only tokens. Write tools appear only with notes.write and configured write storage; inspect tools/list before calling them. Open local mode skips the permission check. Local MCP is always read-only.

Call HTTP with your token

Store the copied token in ELA_API_TOKEN in your environment. The examples below assume it is already set; keep the secret out of committed files and shared command output. Search requires only read access:
Creating a note requires notes.write. Generate a fresh key for this operation; retain it and reuse it only when retrying this exact request:
Token writes are attributed to pat:<prefix>, regardless of the submitted agent_id. They follow agent write policy, idempotency, budget, and review rather than applying as the signed-in user. Check status before reading applied-only fields. An illustrative queued HTTP receipt is:
queued means the note has not changed. Record and report pending_id. In authenticated mode, even GET /v1/writes/{id} requires notes.review. With a write-only token, hand the ID to a reviewer; receipt polling will return 403 PERMISSION_MISSING. With review permission, inspect the receipt and report its state. Agents must not approve their own proposals or request additional review permission just to finish a task. An illustrative applied HTTP receipt is:
applied means the operation completed. unchanged: true means it did not create a new version. Use committed_seq as min_seq on a subsequent search when you need read-your-writes behavior. Cloud MCP receipts differ: a queued result includes status and pending_id, without the HTTP slug; an applied result includes version and sequence fields, without the embedded HTTP note. See MCP tools. The API accepts review-scoped personal tokens for approval and rejection. Leaving approval to a human is the agent workflow rule, not a restriction to a human-only credential type.

Limits and token management

  • At most 25 unrevoked, unexpired tokens can exist for a subject in a vault. Revoke unused tokens before creating more.
  • The API accepts an optional future expires_at. Settings currently has no expiry control; omitting expiry creates a token without a scheduled expiry.
  • Personal tokens cannot mutate device replicas (/v1/sync/ops, /v1/sync/checkpoint, or /v1/sync/e2ee) or rename/delete folders. Those operations require a suitable signed-in session. Folder creation remains available with notes.write.
Token-management endpoints require a signed-in session, even if a personal token has both permissions:

Troubleshooting

Full reason codes: Errors. Version-safe edits and retries: Agents.