[project] name = "chainlit" dynamic = ["version"] keywords = [ "LLM", "Agents", "MCP", "gen ai", "chat ui", "chatbot ui", "openai", "copilot", "langchain", "conversational ai", ] description = "Build Conversational AI." authors = [ { name = "Willy Douhard" }, { name = "Dan Andre Constantini" } ] license = { text = "Apache-2.0" } readme = "README.md" requires-python = ">=3.10,<3.14.0" classifiers = [ "Framework :: FastAPI", "Topic :: Scientific/Engineering :: Artificial Intelligence", "Topic :: Communications :: Chat", "Programming Language :: JavaScript", "Topic :: Software Development :: User Interfaces", "Topic :: Software Development :: Libraries :: Python Modules", "Environment :: Web Environment", ] dependencies = [ "httpx>=0.23.0", "literalai==0.1.201", "dataclasses_json>=0.6.7,<0.7.0", "fastapi>=0.116.1", "starlette>=0.47.2", "uvicorn>=0.35.0", "python-socketio>=5.11.0,<6.0.0", "aiofiles>=23.1.0", "syncer>=2.0.3,<3.0.0", "asyncer>=0.0.8,<0.1.0", "mcp>=1.11.0,<2.0.0", "nest-asyncio>=1.6.0,<2.0.0", "click>=8.1.3,<9.0.0", "tomli>=2.0.1,<3.0.0", "pydantic>=2.7.2,<3", "python-dotenv>=1.0.0,<2.0.0", "watchfiles>=1.1.1,<2.0.0", "filetype>=1.2.0,<2.0.0", "lazify>=0.4.0,<0.5.0", "packaging>=23.1", "python-multipart>=0.0.18,<1.0.0", "pyjwt>=2.8.0,<3.0.0", "audioop-lts>=0.2.1,<0.3.0; python_version>='3.13'", "pydantic-settings>=2.10.1" ] [dependency-groups] dev = [ "hatchling", "ruff>=0.13.3,<1.0.0", ] [project.urls] Homepage = "https://chainlit.io/" Documentation = "https://docs.chainlit.io/" Repository = "https://github.com/Chainlit/chainlit" [project.scripts] chainlit = "chainlit.cli:cli" [project.optional-dependencies] tests = [ "pytest>=8.3.2,<10.0.0", "pytest-asyncio>=1.0.0,<2.0.0", "pytest-cov>=6.0.0,<7.0.0", "openai>=2.0.0,<3.0.0", "langchain>=1.0.0", "llama-index>=0.13.0,<1.0.0", "semantic-kernel>=1.24.0,<2.0.0", "tenacity>=9.0.0,<10.0.0", "transformers>=5.0,<6.0", "matplotlib>=3.7.1,<4.0.0", "plotly>=5.3.0,<7.0.0", "slack_bolt>=1.18.1,<2.0.0", "discord>=2.3.2,<3.0.0", "botbuilder-core>=4.15.0,<5.0.0", "aiosqlite>=0.20.0,<1.0.0", "pandas>=2.2.2,<4.0.0", "polars>=1.0.0,<2.0.0", "moto>=5.0.14,<6.0.0", ] mypy = [ "mypy>=1.13,<2.0.0", "types-requests>=2.31.0.2,<3.0.0", "types-aiofiles>=23.1.0.5,<26.0.0", "mypy-boto3-dynamodb>=1.34.113,<2.0.0", "pandas-stubs>=2.2.2,<4.0.0; python_version>='3.9'", ] custom-data = [ "asyncpg>=0.30.0,<1.0.0", "SQLAlchemy>=2.0.28,<3.0.0", "boto3>=1.34.73,<2.0.0", "azure-identity>=1.14.1,<2.0.0", "azure-storage-file-datalake>=12.14.0,<13.0.0", "azure-storage-blob>=12.24.0,<13.0.0", "google-cloud-storage>=2.19.0,<4.0.0", ] [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build] exclude = [ "chainlit/frontend/**/*", "chainlit/copilot/**/**/" ] [tool.hatch.build.hooks.custom] path = "build.py" [tool.hatch.build.targets.sdist] artifacts = [ "chainlit/frontend/dist/**/*", "chainlit/copilot/dist/**/*" ] [tool.hatch.build.targets.wheel] packages = ["chainlit"] artifacts = [ "chainlit/frontend/dist/**/*", "chainlit/copilot/dist/**/*" ] [tool.hatch.version] path = "chainlit/version.py"