
Google Chat’s cardsV2 widget set is fixed — no custom layout, no charts beyond what Google ships. The fix: render the atom to a real image server-side and hand Chat a plain URL. This piece covers the real, self-hostable Cloud Run bundle, the exact wire-level trace of one request, and the Chat-setup gotchas Google’s own docs don’t lead with.
Back in June, we explored Beyond the Card Layout: A Deeper Dive into the Agent2UI (A2UI) and Google Workspace Development. That piece featured community contributor Curtis Krygier and the work he has been doing making it easier for AI agents to create UIs in platforms including Google Workspace.
Curtis recently shared an update to this work in Rich UI in Google Chat: a real, self-hostable bot built on the print-channel trick. It solves a limit a lot of developers will hit, the limitation of the card framework to render the required UI.
The clever solution is to render the complex visual elements using headless Chromium generating a PNG or animated GIF that can be shown as an image in Google Chat. Of course this has its limitations for interactive form elements but makes it possible to render complex dashboards, custom charts and more.
The really clever bit is as a developer, you create an AI agent that uses a single consistent A2UI vocabulary. If the platform supports live web components, these can be drawn interactively and if not your backend automatically “prints” the exact same A2UI element as a PNG or GIF.
Follow the source link to find out more or explore the cloud-run-renderer repo.
