Components Streamdown

Streamdown

Streamdown is not a registry item. It is the third-party markdown renderer the conversation family consumes when your app supplies it through the renderMarkdown prop, published as the npm package react-native-streamdown.

What Streamdown is

Streamdown renders markdown text that arrives in streaming chunks in React Native. Each chunk can cut a paragraph, emphasis run, or code fence in half; Streamdown renders the partial text as formatted markdown instead of flashing literal syntax, and settles each block once its closing chunk arrives.

The registry items do not bundle a renderer. Message's MessageResponse and Reasoning's ReasoningContent both accept a renderMarkdown prop. Omit the prop and each renders the string as plain Text, which runs anywhere Expo Go runs. Supply a function backed by Streamdown and the same components render streaming markdown.

Half-streamed markdown is repaired before either component renders it. The registry's Markdown repair item closes unterminated emphasis and code runs in each chunk; Streamdown receives already-repaired text through the same renderMarkdown seam. The ownership split behind this choice is covered in What the library owns.

Installing the dependency

Add react-native-streamdown with your package manager, then add every peer below and declare the permissions before the first development build. The installation guide covers the registry items this dependency supports.

Peer dependencies

Platform permissions

Expo Go verdict

requires a dev client — Streamdown loads native modules Expo Go cannot load, so apps that render markdown through it require a dev client: a development build of your app that includes those native modules.

Its relationship to the registry

The registry's per-item manifest endpoints list no streamdown entry, and the CLI cannot add it — there is nothing to add. The registry's Markdown repair lib is the related registry item: the repair pass consumed through the same renderMarkdown seam, installable on its own for apps that keep plain-Text rendering but want repaired chunks.

For the styling side of the seam — theming the rendered markdown your function returns — read Theming: the renderMarkdown seam.