Voice memo

Talk, and get the memo back as something to act on: a title, a two-line summary and the to-dos you mentioned, ticked and ready to add. All on device.

Mock· scripted answersNo model runs in a browser, so every answer here is scripted. On a phone it comes from the model.
  • Apple Foundation Models: supported
  • Gemini Nano: not supported
  • Llama (not yet supported): not supported
  • A cloud model: not supported
  • iPhone only for now: it records through VoiceInput (Apple SpeechAnalyzer), with the recorder passed in by the app.

Install

npx ondai add voice-memo

Usage

import { VoiceMemo } from '@/components/ondai/voice-memo'

<VoiceMemo onAdd={(todos) => reminders.add(todos)} addLabel="Add to Reminders" />
  • Recording, transcription and reading all run on the device; the schema is exported as memoSchema.

Customize

Every AI component takes the same look and customization props, so it fits your app rather than ours.

<VoiceMemo
  variant="pop"
  tint="#FF5A5F"
  size="lg"
  radius={12}
  icons={{ check: Search, added: null }}
  labels={{ record: '…', reading: '…' }}
/>
PropWhat it does
variantThe look of the whole component: clean, minimal, glass, pop, candy, metal, shine
sizesm, md, lg; type, rows, icons and keys scale together
tintAny colour; the variant paints its keys, tiles and glow in it
radiusCorner radius of the container
iconsReplace any icon (a lucide component, an element, or null to hide it): check, added, retry
labelsEvery visible and spoken string; defaults are exported as voiceMemoLabels: record, reading, todos, add, addSome, added, none, error, refusal, retry, showAll, showLess
SlotsDraw a part yourself: renderAction, renderSummary, renderAdd, renderEmpty
stylesStyle any named part

Variants

PropOptions
variantclean, minimal, glass, pop, candy, metal, shine
sizesm, md, lg

Fallback

When no provider is ready the component renders the unavailable state (AvailabilityGate copy) and, where a deterministic path exists, keeps working without the model.

Eval score

No model-driven fixtures for this component.

Files

Registry dependencies: button, on-device-badge, shimmer-text, surface, voice-input

npm dependencies: @ondai/core, @ondai/tokens, lucide-react-native, react-native-reanimated, zod

On this page