@opengeni/react renders OpenGeni sessions in your product. It uses the SDK client you pass to OpenGeniProvider, so it works unchanged behind createSessionProxyHandler. Install it from the same release as @opengeni/sdk.
Components
See Conversation UI & theming for props, tool renderers, and branding.
Entry points
Hooks
Root conversation imports build without any optional workbench peers. Keep all existing root component imports; enable terminal, editor, or VNC libraries once from the corresponding opt-in entry only when your product mounts that surface. The libraries load on mount, not during setup or SSR. Optional editor grammars and terminal WebGL use host-supplied dynamic imports; do not name uninstalled packages in those loaders. See the optional peer setup. Build a custom interface on the same session behavior withuseSessionEvents, useSession, useTurnQueue, useComposer, useSessionControl, and useHumanInputRequests. Each takes a session id and reads the client from OpenGeniProvider, or from { client, workspaceId } passed per call.
Styling
Import@opengeni/react/compiled.css once. Every style is scoped to the components and every visual choice is a --og-* variable. Dark is the default; set data-og-theme="light" on an ancestor for light and data-og-density="compact" for narrow panels.
The full reference, including Tailwind integration and the workbench, is in packages/react/README.md.