Galvanized Pukeko
August 26, 2026 · View on GitHub
Give your LLM agent a real UI. Instead of replying with text only, the agent renders forms, charts, tables and interactive A2UI surfaces — and reads back what the user does with them. The UI is a Vue 3 component library that talks to any AG-UI server.


Start here: the Vue UI
The heart of the project is @galvanized-pukeko/vue-ui —
a Vue 3 library that renders the chat interface plus the components an agent asks for.
npm install @galvanized-pukeko/vue-ui vue
import '@galvanized-pukeko/vue-ui/style.css'
import { createApp } from 'vue'
import { CoreApp, configService } from '@galvanized-pukeko/vue-ui'
await configService.load()
createApp(CoreApp).mount('#app')
Point it at any AG-UI server and the agent can render UI right in the conversation. See the docs:
In the wild: the Pukeko robot controller drives a physical robot through the Vue UI — the agent calls browser-side client tools (camera, motion) and reads the results back.
How it works
graph LR
subgraph Browser
UI["Vue UI<br/>@galvanized-pukeko/vue-ui"]
end
subgraph Server["AG-UI server (your choice of backend)"]
direction TB
GTH["Gaunt Sloth<br/>(TypeScript CLI)"]
ADK["ADK agent<br/>(Java / Spring Boot)"]
end
UI -->|"AG-UI · HTTP/SSE"| Server
Server -->|"tool calls → render forms, charts, tables, A2UI"| UI
The Vue UI is backend-agnostic — any AG-UI server works. This repo ships two: the npm-based Gaunt Sloth CLI and a Java/Spring ADK agent.
Packages
| Package | Description |
|---|---|
galvanized-pukeko-vue-ui | The Vue 3 UI library — chat interface, forms, charts, tables, A2UI surfaces. Published on npm. Docs. |
galvanized-pukeko-web-client | Thin host app that mounts the Vue UI — the dev server, and the build embedded by the ADK agent. Not published. |
galvanized-pukeko-agent-adk | One backend option: a Spring Boot / Google ADK agent with UI-rendering tools, MCP and A2A. On Maven Central. See its README. |
Gaunt Sloth — a separate TypeScript CLI — is the other supported AG-UI backend.
Run a demo
Prerequisites: Node.js 24+. (The ADK backend additionally needs Java 17+; Maven is bundled via ./mvnw.)
Option 1 — Gaunt Sloth backend (Node only):
pnpm install
pnpm run start-gth-ag-ui # AG-UI server on :3000 + web client on :5555
Option 2 — ADK agent (Java):
pnpm install
pnpm run start-adk # ADK agent on :8080 + web client on :5555
See the ADK README for ADK setup, models, MCP/A2A and Cloud Run deployment.
Then open http://localhost:5555 and try:
"Show me a contact form"— renders a form"Show me a chart of month lengths"— renders a chart"Show me a table of suppliers"— renders a table
More end-to-end setups live in examples/.
Testing
End-to-end tests use Playwright; the runners start the services for you:
pnpm run it-gth-ag-ui # Gaunt Sloth backend
pnpm run it-adk # ADK backend (add it-adk-headed for a visible browser)
If Playwright reports the browser is missing, run node_modules/.bin/playwright install
from the repository root. Use the installed binary rather than a one-shot package
runner: given a name that does not resolve locally, those fetch and execute whatever
the public registry serves under it.
Contributing
Contributions are welcome — see CONTRIBUTING.md.
Related
@galvanized-pukeko/vue-uion npm- Pukeko robot controller — reference implementation using client tools
- AG-UI protocol
- A2UI
- Gaunt Sloth assistant
- Google ADK (Agent Development Kit)
License
Released under the MIT License © Andrew Kondratev.
The galvanized-pukeko-agent-adk package is a separate, optional backend licensed under
Apache License 2.0.