List

An editable checklist you can talk to: “checklist add fuel cells and rations”.

The most conversational control: add, delete, check, uncheck, rename, and clear — by voice. Adds stream in live (say “add milk and eggs” and watch two items form as you speak); renames chain correctly across interim results (“rename chicken to beef” lands on beef, not half a word). Tapping a row toggles it; the ✕ deletes.

Basic editable list

Loading the React kit…

Hold anywhere and say:“checklist add fuel cells and rations”“checklist check star charts”“checklist delete rations”

Props

  • default command
  • default false
React
Updates as you tick props
import { ListensList } from "@listenssoft/speechui-react";import { useState } from "react";
function Demo() {  const [items, setItems] = useState([    { id: "1", text: "oxygen tanks", checked: true },    { id: "2", text: "star charts", checked: false },  ]);  return (    <ListensList      label="Pre-flight checklist"      command="checklist"      value={items}      onChange={setItems}    />  );}

What you can say

SayEffect
“checklist add fuel cells and rations”Adds two items — “and” separates them; the items refine live while you speak.
“checklist delete rations”Deletes the item whose text matches. “remove” works as a synonym.
“checklist check star charts”Checks the matching item; “uncheck …” clears it.
“checklist rename star charts to nav charts”Renames in place — the new name accumulates correctly as you speak.
“checklist clear”Removes every item.

With no command configured, the bare action words work directly: “add milk”, “clear”. Item-name matching is on the normalized text (case and quotes ignored). onMatch fires once when listening stops, with the final items.

API reference

React props for @listenssoft/speechui-react.

Props

PropTypeDefaultDescription
listeningContentReactNodecommandContent shown as the label while the mic is open — a place for a hint like “say: volume to seventy”.
disabledbooleanfalseDisables row toggling and deleting.

Extra props

PropTypeDefaultDescription
commandstringlabelThe spoken prefix: actions are “<command> add x”, “<command> delete x”, … With no command (and no label), bare “add x” works.
labelstring—Label above the list; the command fallback.
valueListensListItem[]—Controlled items: { id, text, checked }[].
onChange(items: ListensListItem[]) => void—Called with the next items — taps, deletes, or speech edits.
onMatch(items: ListensListItem[]) => void—Fires once when listening stops after speech edits, with the final items.
classNamestring—Extra class name(s) on the root.
classNamesListensListClassNames—Per-part class overrides (label, listeningLabel, list, item, itemCheckbox, itemText, itemDelete, empty). Each is appended after the component's own classes, so your rules win without extra specificity.

Styling hooks

classNames parts and CSS classes

HookTypeDefaultDescription
classNames.list / .listens-list-itemsclass—The items container (ul).
classNames.item / .listens-list-itemclass—Each row (li).
classNames.itemCheckbox / .listens-list-item-checkboxclass—The row's checkbox.
classNames.itemText / .listens-list-item-textclass—The row's text (struck through when checked).
classNames.itemDelete / .listens-list-item-deleteclass—The row's delete button.
classNames.empty / .listens-list-emptyclass—The empty-state message.

Behavior notes

  • All frameworks: Utterance boundaries matter and are handled: pause, then “checklist add beef” starts a new item instead of revising the previous one.

Was this page helpful?