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.

Time

live_timer, countdown, live_clock, pomodoro, metronome

Games & random

dice_roller, coin_flip, tic_tac_toe, snake_game, quiz

Health & productivity

habit_tracker, breathing, tip_calculator, bmi_calculator, password_generator

Creative

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.

ComponentData
live_weatherAnimated weather card + hourly forecast
live_stockStock ticker with sparkline
currency_converterLive exchange rates
news_tickerScrolling headlines
wiki_summaryWikipedia article card
dictionaryDefinitions + phonetics
translatorAuto-translate text
rss_readerRSS headline cards
astronomyNASA APOD + live ISS position
live_sportsLive/recent match scores
recipe_viewerStep-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

Tip

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.

ComponentWhat it does
data_boundSelf-refreshing display bound to a dataSource URL on an interval
dashboardMulti-widget coordinated layout from a template
pipelineReactive data pipeline with chained stages (fetch → transform → filter…)
writing_assistantAI writing helper (improve/shorten/expand/grammar/continue)
custom_widgetVisual widget builder with a small DSL
scene_3d / 3d_sceneGPU-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 diagram
  • node_graph — force-directed graph
  • calendar_view — full calendar grid

Registering a new widget

A widget becomes available to the LLM once it's:

  1. Implemented in.
  2. Registered in.
  3. Documented in the A2UI schema so the model knows when and how to use it.
Note

The roadmap for new tiers and components lives in SMART_COMPONENTS_ROADMAP.md at the repo root.