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-memoUsage
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: '…' }}
/>| Prop | What it does |
|---|---|
variant | The look of the whole component: clean, minimal, glass, pop, candy, metal, shine |
size | sm, md, lg; type, rows, icons and keys scale together |
tint | Any colour; the variant paints its keys, tiles and glow in it |
radius | Corner radius of the container |
icons | Replace any icon (a lucide component, an element, or null to hide it): check, added, retry |
labels | Every visible and spoken string; defaults are exported as voiceMemoLabels: record, reading, todos, add, addSome, added, none, error, refusal, retry, showAll, showLess |
| Slots | Draw a part yourself: renderAction, renderSummary, renderAdd, renderEmpty |
styles | Style any named part |
Variants
| Prop | Options |
|---|---|
variant | clean, minimal, glass, pop, candy, metal, shine |
size | sm, 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











