Replace custom widgetRenderer with CopilotKit Open Generative UI

Open
#82 0 comments 0 reactions 0 assignees View on GitHub

Nobody has claimed this yet.

Assessment

Difficulty
5/5
Estimated time
Over a week
Newbie friendliness
35/100
Issue type
Refactor
Clarity
Mostly clear
Activity status
Quiet
Tech stack
typescript
Domain
backend, frontend

Research direction

Start with apps/app/src/app/api/copilotkit/route.ts and verify whether openGenerativeUI supports the current LangGraphHttpAgent runtime; compare this with the linked CopilotKit documentation. Then inspect use-generative-ui-examples.tsx, widget-renderer.tsx, idiomorph-inline.ts, export-overlay.tsx, and export-utils.ts, including the CopilotKit provider's sandboxFunctions. Done means generated calculator and binary-search UIs work, theme toggling remains functional, custom helpers are removed, and README/CLAUDE.md no longer reference widgetRenderer.

Written by the indexing model from the issue text.

Description

Background

We currently ship a hand-rolled open generative UI implementation:

  • WidgetRenderer — ~730-line component that renders agent-authored HTML/CSS/JS inside a sandboxed iframe, with our own theme CSS, idiomorph streaming, and export overlay.
  • Registered as a useComponent({ name: "widgetRenderer", ... }) in use-generative-ui-examples.tsx.

CopilotKit now ships this as a first-class feature: Open Generative UI. It covers the same use case (live-streamed sandboxed HTML/CSS/JS, CDN libraries, two-way host bridges) without per-app widget code.

Goal

Delete the custom widget pipeline and use CopilotKit's built-in Open Generative UI instead.

Scope

  • Enable openGenerativeUI: true in the runtime (route.ts).
  • Remove the widgetRenderer useComponent registration and its supporting files (widget-renderer.tsx, idiomorph-inline.ts, export-overlay.tsx, export-utils.ts) once parity is confirmed.
  • Port any host-side hooks we relied on (e.g. theme toggling) to sandboxFunctions on the CopilotKit provider.
  • Keep the other declarative components (pieChart, barChart, plan_visualization, HITL scheduleTime) as-is.
  • Update CLAUDE.md and any demo prompts/suggestions referencing "widgetRenderer".

Open question

The current runtime is v1 CopilotRuntime + LangGraphHttpAgent pointing at the Python LangGraph agent. The docs example for openGenerativeUI: true uses the v2 runtime with BuiltInAgent + InMemoryAgentRunner. We need to verify whether the flag is supported alongside LangGraphHttpAgent, or whether this upgrade also requires migrating the runtime wiring (and what that means for the Python agent in apps/agent/).

Acceptance criteria

  • "Build me a calculator" / "Visualize binary search" prompts produce a streamed, sandboxed UI in chat with no custom widget code in this repo.
  • Theme toggle still works from generated UI (via sandboxFunctions).
  • Custom widget-renderer.tsx and helpers are deleted.
  • README/CLAUDE.md reflect the new approach.

Docs: https://docs.copilotkit.ai/generative-ui/open-generative-ui

Dominant language
TypeScript
Stars
1.6k
Forks
202
PR merge metrics
No merged PRs in 30d

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

More from CopilotKit/OpenGenerativeUI

All issues in CopilotKit/OpenGenerativeUI

Similar issues

More TypeScript issues

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.