Beyond the Chat Box: Building Sidecars and UI Extensions in Antigravity Developer Daniela Petruzalek built Paint Studio (agy-paint-studio), a multi-layer drawing canvas, layered .psd editor, and Gemini image refinement studio that runs inside Google Antigravity as a plugin, using the platform's sidecar, UI extension, and inline generative UI extensibility model. The plugin lives under ~/.gemini/config/plugins/agy-paint-studio/ and serves four views — an auxiliary side pane on a plugin:// origin, a custom image and .psd file viewer, an inline chat widget via , and a full browser workspace at http://127.0.0.1:/?mode=full — while a supervised Node.js sidecar process handles the backend. Petruzalek reported hitting blank-screen debugging issues around sandboxed iframes and custom plugin:// origins that other developers building visual tools should expect. When I wrote The Hitchhiker’s Guide to Antigravity 2.0 https://danicat.dev/posts/the-hitchhikers-guide-to-antigravity-2-0/ , I mentioned that the biggest mental shift in the new desktop application was the removal of the traditional code editor in favour of a conversation-centric interface. I also promised to report back once I started pushing the plugin system beyond basic prompt packaging. Living inside an agent manager for a few months teaches you where text excels and where it gets in the way. Natural language is great for describing state machines, refactoring Go packages, or reviewing pull requests. It is terrible when you want to tell an agent, “Move this button over there,” or when you want to sketch a rough concept for a 2D game sprite before generating assets. Sometimes a five-second scribble or a red arrow on a screenshot replaces three paragraphs of prompt engineering. That friction led me to build Paint Studio agy-paint-studio https://github.com/danicat/agy-paint-studio : a multi-layer drawing canvas, layered .psd editor, and Gemini https://ai.google.dev/ image refinement studio that runs directly inside Google Antigravity https://antigravity.google . Building it turned into a great tour of Antigravity’s extensibility model — specifically sidecars , UI extensions , and inline generative UI . Along the way, I hit a few blank-screen debugging mysteries around sandboxed iframes and custom plugin:// origins that are worth sharing if you plan to build your own visual tools. How Antigravity plugins, sidecars, and UI extensions fit together how-antigravity-plugins-sidecars-and-ui-extensions-fit-together If you have built Agent Skills https://danicat.dev/posts/the-pragmatic-guide-to-agent-skills/ or Model Context Protocol https://modelcontextprotocol.io MCP servers before, you are already familiar with how agents acquire instructions and call tools. Antigravity plugins can bundle those, but they also introduce sidecars : supervised background processes that Antigravity starts, monitors, and restarts automatically alongside your workspace. A sidecar becomes a UI extension when its manifest declares a web interface. Instead of communicating only with the model through tool calls, a UI extension serves an interactive web panel that docks into the right-hand auxiliary pane next to your conversation. flowchart LR subgraph Plugin "Plugin ~/.gemini/config/plugins/agy-paint-studio " Manifest "plugin.json" Skill "skills/paint-studio/SKILL.md" SidecarManifest "sidecars/studio/sidecar.json" end subgraph Runtime "Antigravity Host & Sidecar Runtime" Sidecar "Node.js Sidecar Process SidecarApp on 127.0.0.1: