Smart Components
Self-managing widgets, organized into capability tiers.
Most A2UI types are plain primitives, but MeghaOS also ships smart components: widgets that manage their own behavior, fetch their own data, or persist their own state. The LLM assembles rich interfaces from these instead of writing code.
They're organized into tiers by how much backend they need.
Tier 1 — Pure client
Run entirely in the shell. No backend, no network. The LLM should prefer these over JIT code for time/game/utility queries.
live_timer, countdown, live_clock, pomodoro, metronome
dice_roller, coin_flip, tic_tac_toe, snake_game, quiz
habit_tracker, breathing, tip_calculator, bmi_calculator,
password_generator
color_picker, drawing_canvas, flashcards, poll, markdown_editor,
pixel_art, whiteboard
Tier 2 — Hybrid (client renders, backend fetches)
Make a single HTTP call to the agent for live data, then render it client-side. Use these for real-world info queries.
| Component | Data |
|---|---|
live_weather | Animated weather card + hourly forecast |
live_stock | Stock ticker with sparkline |
currency_converter | Live exchange rates |
news_ticker | Scrolling headlines |
wiki_summary | Wikipedia article card |
dictionary | Definitions + phonetics |
translator | Auto-translate text |
rss_reader | RSS headline cards |
astronomy | NASA APOD + live ISS position |
live_sports | Live/recent match scores |
recipe_viewer | Step-by-step recipes |
Each maps to a backend endpoint under /api/widget/* — see Widget APIs.
Tier 3 — Persistent (stateful)
Read and write to the backend store automatically. Data persists across sessions via
/api/store/{key}.
todo_list · notes · journal · budget_tracker · reading_list · kanban_board ·
code_snippets · bookmarks · contacts
Use Tier 3 components whenever the user wants to track, manage, or save personal data across sessions.
Tier 4+ — Platform-level & experimental
Reactive data, multi-widget coordination, and LLM-in-the-loop widgets.
| Component | What it does |
|---|---|
data_bound | Self-refreshing display bound to a dataSource URL on an interval |
dashboard | Multi-widget coordinated layout from a template |
pipeline | Reactive data pipeline with chained stages (fetch → transform → filter…) |
writing_assistant | AI writing helper (improve/shorten/expand/grammar/continue) |
custom_widget | Visual widget builder with a small DSL |
scene_3d / 3d_scene | GPU-accelerated interactive 3D scenes |
Educational visualizations
For "how does X work" queries, the LLM emits animated diagrams:
animated_svg— animated SVG with CSS-like animation classes (animate-rise,animate-orbit,animate-pulse, …)diagram— labelled educational diagramnode_graph— force-directed graphcalendar_view— full calendar grid
Registering a new widget
A widget becomes available to the LLM once it's:
- Implemented in.
- Registered in.
- Documented in the A2UI schema so the model knows when and how to use it.
The roadmap for new tiers and components lives in SMART_COMPONENTS_ROADMAP.md at the
repo root.