Documents
editing
editing
Type
External
Status
Published
Created
Mar 17, 2026
Updated
Mar 17, 2026

Give the user the ability to edit their message.

Enabling edit support#

You can show an editor interface by using ComposerPrimitive.

import { ComposerPrimitive, useAuiState } from "@assistant-ui/react";
...

const Thread = () => {
  return (
    <ThreadPrimitive.Root>
      <ThreadPrimitive.Viewport>
        ...
        <ThreadPrimitive.Messages>
          {({ message }) => {
            // Show our new component during edit mode
            return <MessageWithEditComposer />;
          }}
        </ThreadPrimitive.Messages>
      </ThreadPrimitive.Viewport>
      ...
    </ThreadPrimitive.Root>
  );
};

const UserMessage = () => {
  return (
    <MessagePrimitive.Root>
      ...
      <ActionBarPrimitive.Root>
        ...
        <ActionBarPrimitive.Edit /> {/* <-- add a button to enable edit mode */}
      </ActionBarPrimitive.Root>
    </MessagePrimitive.Root>
  );
};

// define a wrapper component that handles both display and edit mode
const MessageWithEditComposer = () => {
  const isEditing = useAuiState((s) => s.composer.isEditing);
  if (isEditing) return <EditComposer />;
  return <UserMessage />;
};

// define the edit composer component
const EditComposer = () => {
  return (
    // you can return a MessagePrimitive including a ComposerPrimitive, or only a ComposerPrimitive
    <MessagePrimitive.Root>
      ...
      <ComposerPrimitive.Root>
        <ComposerPrimitive.Input />
        <ComposerPrimitive.Cancel />
        <ComposerPrimitive.Send />
      </ComposerPrimitive.Root>
    </MessagePrimitive.Root>
  );
};