Skip to main content

Documentation Index

Fetch the complete documentation index at: https://docs.chainlit.io/llms.txt

Use this file to discover all available pages before exploring further.

The Message class is designed to send, stream, update or remove messages.

Parameters

content
str
The content of the message.
author
str
The author of the message, defaults to the chatbot name defined in your config file.
elements
Element[]
Elements to attach to the message.
actions
Action[]
Actions to attach to the message.
language
str
Language of the code if the content is code. See https://react-code-blocks-rajinwonderland.vercel.app/?path=/story/codeblock—supported-languages for a list of supported languages.
metadata
Dict
Custom metadata dictionary to attach to the message. Persisted with the message in the data layer.
tags
List[str]
Tags to attach to the message for filtering and categorization.
command
str
The command selected by the user for this message. Set automatically by the UI when the user picks a command. Access this value in the on_message handler via msg.command.
Since version 2.1.0.
modes
Dict[str, str]
The modes selected by the user for this message, as a dict of {mode_id: option_id}. Set automatically by the UI when the user configures mode pickers. Access this value in the on_message handler via msg.modes.
Since version 2.9.4.
id
str
Unique identifier for the message. Auto-generated as a UUID if not provided.
parent_id
str
ID of the parent step or message. Automatically resolved from the current step context if not provided.
type
str
default:"assistant_message"
The message type (assistant_message or user_message). Automatically set based on the message direction.
created_at
str
ISO 8601 timestamp for the message creation. Automatically set to the current UTC time when .send() is called.

Send a message

Send a new message to the UI.
import chainlit as cl


@cl.on_message
async def main(message: cl.Message):
    await cl.Message(
        content=f"Received: {message.content}",
    ).send()

Stream a message

Send a message token by token to the UI.
import chainlit as cl

token_list = ["the", "quick", "brown", "fox"]


@cl.on_chat_start
async def main():
    msg = await cl.Message(content="").send()
    for token in token_list:
        await msg.stream_token(token)

    await msg.update()

Update a message

Update a message that already has been sent.
import chainlit as cl


@cl.on_chat_start
async def main():
    msg = cl.Message(content="Hello!")
    await msg.send()

    await cl.sleep(2)

    msg.content = "Hello again!"
    await msg.update()

Remove a message

Remove a message from the UI.
import chainlit as cl


@cl.on_chat_start
async def main():
    msg = cl.Message(content="Message 1")
    await msg.send()
    await cl.sleep(2)
    await msg.remove()