chainlit

chainlit

Build Conversational AI in minutes ⚑️

Stars: 10549

Visit
 screenshot

Chainlit is an open-source async Python framework which allows developers to build scalable Conversational AI or agentic applications. It enables users to create ChatGPT-like applications, embedded chatbots, custom frontends, and API endpoints. The framework provides features such as multi-modal chats, chain of thought visualization, data persistence, human feedback, and an in-context prompt playground. Chainlit is compatible with various Python programs and libraries, including LangChain, Llama Index, Autogen, OpenAI Assistant, and Haystack. It offers a range of examples and a cookbook to showcase its capabilities and inspire users. Chainlit welcomes contributions and is licensed under the Apache 2.0 license.

README:

Welcome to Chainlit πŸ‘‹

Build python production-ready conversational AI applications in minutes, not weeks ⚑️

Discord Twitter Downloads Contributors CI

⚠️ Notice: Chainlit is now community-maintained.

As of May 1st 2025, the original Chainlit team has stepped back from active development. The project is maintained by @Chainlit/chainlit-maintainers under a formal Maintainer Agreement.

Maintainers are responsible for code review, releases, and security.
Chainlit SAS provides no warranties on future updates.

Want to help maintain? Apply here β†’

Website β€’ Documentation β€’ Chainlit Help β€’ Cookbook

Chainlit%2Fchainlit | Trendshift

https://github.com/user-attachments/assets/b3738aba-55c0-42fa-ac00-6efd1ee0d148

Installation

Open a terminal and run:

pip install chainlit
chainlit hello

If this opens the hello app in your browser, you're all set!

Development version

The latest in-development version can be installed straight from GitHub with:

pip install git+https://github.com/Chainlit/chainlit.git#subdirectory=backend/

(Requires Node and pnpm installed on the system.)

πŸš€ Quickstart

🐍 Pure Python

Create a new file demo.py with the following code:

import chainlit as cl


@cl.step(type="tool")
async def tool():
    # Fake tool
    await cl.sleep(2)
    return "Response from the tool!"


@cl.on_message  # this function will be called every time a user inputs a message in the UI
async def main(message: cl.Message):
    """
    This function is called every time a user inputs a message in the UI.
    It sends back an intermediate response from the tool, followed by the final answer.

    Args:
        message: The user's message.

    Returns:
        None.
    """


    # Call the tool
    tool_res = await tool()

    await cl.Message(content=tool_res).send()

Now run it!

chainlit run demo.py -w

Quick Start

πŸ“š More Examples - Cookbook

You can find various examples of Chainlit apps here that leverage tools and services such as OpenAI, Anthropiс, LangChain, LlamaIndex, ChromaDB, Pinecone and more.

Tell us what you would like to see added in Chainlit using the Github issues or on Discord.

πŸ’ Contributing

As an open-source initiative in a rapidly evolving domain, we welcome contributions, be it through the addition of new features or the improvement of documentation.

For detailed information on how to contribute, see here.

πŸ“ƒ License

Chainlit is open-source and licensed under the Apache 2.0 license.

For Tasks:

Click tags to check more tools for each tasks

For Jobs:

Alternative AI tools for chainlit

Similar Open Source Tools

For similar tasks

For similar jobs