Skip to main content
Skybridge is designed to be runtime-agnostic. Your widget code works the same whether it runs in ChatGPT (via Apps SDK) or in MCP-compatible clients like Goose.

The Problem

Different AI platforms use different APIs to communicate with embedded widgets:
  • ChatGPT uses the Apps SDK with window.openai global
  • MCP Apps use JSON-RPC postMessage protocol (MCP ext-apps spec)
Without abstraction, you’d need to write different code for each platform—or lock yourself into one ecosystem.

Skybridge’s Solution

Skybridge introduces an adaptor layer that normalizes these differences: Skybridge automatically detects which runtime is available and uses the appropriate adaptor.

Benefits

Future-Proof

As new AI platforms adopt MCP, your widgets will work without code changes

No Vendor Lock-in

Ship to ChatGPT today, expand to Claude and others tomorrow

Single Codebase

One set of hooks, one mental model, multiple platforms

Graceful Degradation

Platform-specific features degrade gracefully with clear warnings

Runtime Compatibility

Not all features are available on all platforms. See the API Reference for a full compatibility matrix. Key differences:
  • useFiles is Apps SDK only
  • useRequestModal MCP Apps support coming soon (will render in-iframe)
  • useDisplayMode doesn’t support “modal” mode in MCP Apps
  • useWidgetState is Apps SDK only
Check individual hook documentation for runtime-specific notes and limitations.