🥞PancakeJS

Packages

PancakeJS is modular — install only what you need. Here's an overview of all available packages.

Core Packages

@pancakeapps/core

Platform-agnostic types, registry, validation, and adapter interfaces. The foundation everything else builds on.

@pancakeapps/server

Server runtime with adapter management, resource store, and tool/widget registration.

@pancakeapps/react

React hooks and components for building widget UIs.

@pancakeapps/cli

CLI for development, building, and running your app.

Adapters

@pancakeapps/adapter-mcp-apps

Adapter for MCP-compatible hosts like Claude Desktop.

@pancakeapps/adapter-chatgpt-apps

Adapter for ChatGPT Apps.

Package Details

@pancakeapps/core

The foundation package containing:

  • Type definitions for tools, widgets, and adapters
  • Registry for managing tool/widget definitions
  • Validation utilities using Zod
  • Adapter interfaces for building new host adapters
import { 
  ToolDefinition, 
  WidgetDefinition,
  AdapterInterface,
  Registry 
} from '@pancakeapps/core';

@pancakeapps/server

Server-side runtime including:

  • createUniversalServerApp — Main app factory
  • Tool/Widget registration — Define your capabilities
  • Adapter management — Register multiple adapters
  • Resource store — Serve widget assets
import { 
  createUniversalServerApp,
  textResult,
  htmlResult,
  withData,
  renderWidget 
} from '@pancakeapps/server';

const app = createUniversalServerApp({
  name: 'my-app',
  version: '1.0.0',
});

@pancakeapps/react

React utilities for widgets:

HookPurpose
useToolInvocationAccess initial data passed to widget
useWidgetStatePersist state across renders
useCallToolCall other tools from widget
useHostAccess host info and capabilities
useFollowUpSend follow-up prompts
useThemeGet current theme (light/dark)
useLocaleGet user's locale
useCapabilityCheck if capability is available
import { 
  UniversalAppProvider,
  useToolInvocation,
  useWidgetState,
  useCallTool,
  useHost 
} from '@pancakeapps/react';

@pancakeapps/cli

Development tools:

# Start development server with hot reload
universal-apps dev

# Build for production
universal-apps build

# Run production server
universal-apps start

@pancakeapps/adapter-mcp-apps

MCP (Model Context Protocol) adapter for Claude Desktop and other MCP-compatible hosts:

import { createMcpAppsServerAdapter } from '@pancakeapps/adapter-mcp-apps';

app.adapter(createMcpAppsServerAdapter());

Features:

  • JSON-RPC 2.0 communication
  • Resource serving for widgets
  • Handshake authentication
  • Origin validation

@pancakeapps/adapter-chatgpt-apps

ChatGPT Apps adapter:

import { createChatGptServerAdapter } from '@pancakeapps/adapter-chatgpt-apps';

app.adapter(createChatGptServerAdapter());

Features:

  • window.openai API integration
  • Output template support
  • ChatGPT sandbox compatibility

Installation Matrix

Use CasePackages Needed
Tools only (no UI)core, server, cli, adapters
Tools + WidgetsAll packages
MCP onlycore, server, react, cli, adapter-mcp-apps
ChatGPT onlycore, server, react, cli, adapter-chatgpt-apps
Both platformsAll packages

Version Compatibility

All @pancakeapps/* packages are versioned together. Always use matching versions:

{
  "dependencies": {
    "@pancakeapps/core": "^1.0.0",
    "@pancakeapps/server": "^1.0.0",
    "@pancakeapps/react": "^1.0.0",
    "@pancakeapps/adapter-mcp-apps": "^1.0.0",
    "@pancakeapps/adapter-chatgpt-apps": "^1.0.0",
    "@pancakeapps/cli": "^1.0.0"
  }
}

Peer Dependencies

All packages require:

PackageVersion
zod^3.0.0
react^18.0.0 or ^19.0.0
react-dom^18.0.0 or ^19.0.0

Next Steps

On this page