On 2026-10-12 @OpenAIDevs highlighted ChatGPT desktop browser Annotations extensibility (document.oai.annotation): sites can customize selection targets, metadata and preview controls, and pair them with WebMCP site tools so agents receive the user's selected page context and can act through the site's own capabilities. Docs target DevDay 2026+ desktop; Enterprise/Edu need admin policy.

Key Takeaways

  • ✓Docs: Annotations Extensibility and Site tools / WebMCP; API at document.oai.annotation
  • ✓Surfaces: selection containers, text drag-select, metadata (≤6 keys / ≤2048B), request(), registerControls() (≤12), canvas registerSurface()
  • ✓Split: Annotations bring selection + feedback into chat; WebMCP registers page actions; requires GPT-5.6 Sol or GPT-6 Sol (Luna has WebMCP off)
  • ✓Limits: secure top-level pages only; Enterprise/Edu policy; no iframe tools / declarative HTML WebMCP; Edu has no Site tools
  • ✓Verified post: OpenAIDevs 2109716341490106869
ChatGPT Browser Annotation API goes extensible: custom selection and controls, paired with WebMCP site tools for agent actions
🖼️Official Media
Click to view high-res
🧭

Turn your technical choice into a development budget

Compare 40 dev plans & simulate token costs vs $20/mo subscriptions

🔬

In-Depth Technical Analysis

Background

Browser agents used to guess selection from screenshots/DOM, while sites lacked a safe way to expose first-party actions. ChatGPT's desktop built-in browser splits the problem: Annotations send the person's selection and comment into the chat; WebMCP site tools let the page register discoverable tools. On 2026-10-12 @OpenAIDevs demoed custom annotation controls with suggested prompts; full contracts are in the Annotations and Site tools docs (DevDay 2026+ desktop).

Architecture

Selection via oai-annotation-container / oai-annotatable / text containers and flat metadata (≤6 keys, ≤2048B). Programmatic request() must stay inside a user gesture. registerControls() supports color/range/select/toggle (≤12). Canvas objects use registerSurface({ hitTest }). WebMCP registers tools with document.modelContext.registerTool on the live page/session—no separate MCP install.

Benchmarks

No public latency/success benchmarks. Hard limits are documentary: registration quotas, Sol-only WebMCP (Luna off), Enterprise policy, no Edu Site tools, no iframe/declarative HTML tools. Validate with accepted and the Site tools panel.

Developer path

Update ChatGPT desktop; feature-detect APIs; start with read-only tools; reuse app auth; optionally disable site tools in Settings. Cross-check Chrome WebMCP for the wider spec vs ChatGPT's subset.

Action HubReady to adopt this in production?

Benchmark side-by-side against alternatives, or calculate monthly token cost vs subscription break-even.

Up NextOpenAI launches Dots: always-on GPT-6 Astra agents with a cloud computer across 4,000+ apps
Read Now→