Overview
ABP uses dot-notation namespaces to organize capabilities:export.pdf— Export as PDFconvert.markdownToHtml— Convert markdown to HTMLai.summarize— Summarize text using AIrender.html— Render HTML with CSS
Standard Namespaces
export.* — Export Operations
convert.* — Format Conversion
render.* — Rendering Operations
ai.* — AI Operations
storage.* — Browser Storage
auth.* — Authentication
Forbidden Capabilities: Delivery and Input-Acquisition Mechanisms
For a decision test to identify these mechanisms, see the Implementation Guide — How to Recognize a Delivery Mechanism. The primary example isclipboard.*: apps MUST NOT declare clipboard.* capabilities. The browser Clipboard API requires user gestures that automated agents cannot provide, and clipboard is a host-side delivery mechanism — agents can write to the system clipboard directly using host tools (pbcopy, xclip, clip). Instead, expose the underlying content-producing capability (e.g., convert.markdownToHtml) and let the agent handle clipboard operations on the host side. The same principle applies to navigator.share(), showSaveFilePicker() / showOpenFilePicker(), new Notification(), and any future browser API that triggers OS-level UI.
See the Protocol Overview for additional context on forbidden capabilities.
Vendor Namespaces
Vendors can use reverse-domain notation for custom capabilities:com.acme.imageFilter.blurio.github.username.customTool
Naming Conventions
Action Verbs
Use consistent action verbs:- Create/Generate:
export.pdf,generate.thumbnail - Read/Get:
storage.read,auth.getToken - Write/Set:
storage.write,storage.set - Convert/Transform:
convert.markdownToHtml - Delete/Remove:
storage.delete
Case Convention
- Use
camelCasefor multi-word names - Namespace and action are separated by
. - Examples:
convert.markdownToHtml,auth.getToken
Capability Lifecycle
Capabilities progress through three stages:Experimental
- Marked with
experimental: truein the manifest - May change without notice between versions
- Agents SHOULD warn users when calling experimental capabilities
Stable
- The default state (no
experimentalordeprecatedflag) - Follow semantic versioning
- Breaking changes only in major protocol versions
Deprecated
- Marked with
deprecated: trueand optionallydeprecationMessage - Deprecated capabilities MUST remain functional for at least one major version
- The
alternativesfield SHOULD suggest replacement capabilities - Agents SHOULD warn users when calling deprecated capabilities
Next Steps
Examples & Tutorials
See capabilities in action
Building ABP Apps
Build your own app with capabilities
Protocol Overview
Full specification details