HEX
Server: LiteSpeed
System: Linux houston.panomity.com 6.8.0-100-generic #100-Ubuntu SMP PREEMPT_DYNAMIC Tue Jan 13 16:40:06 UTC 2026 x86_64
User: nudepix (1011)
PHP: 7.4.33
Disabled: pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals,pcntl_unshare,
Upload Files
File: //opt/PraisonAI/pyproject.toml
[project]
name = "PraisonAI"
version = "2.1.1"
description = "PraisonAI is an AI Agents Framework with Self Reflection. PraisonAI application combines PraisonAI Agents, AutoGen, and CrewAI into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customisation, and efficient human-agent collaboration."
readme = "README.md"
license = ""
requires-python = ">=3.10,<3.13"
authors = [
    { name = "Mervin Praison" }
]
dependencies = [
    "rich>=13.7",
    "markdown>=3.5",
    "pyparsing>=3.0.0",
    "praisonaiagents>=0.0.71",
    "python-dotenv>=0.19.0",
    "instructor>=1.3.3",
    "PyYAML>=6.0",
    "mcp==1.6.0",
]

[project.optional-dependencies]
ui = [
    "chainlit==2.0.3",
    "sqlalchemy>=2.0.36",
    "aiosqlite>=0.20.0",
    "greenlet>=3.0.3",
    "pydantic<=2.10.1"
]
gradio = ["gradio>=4.26.0"]
api = ["flask>=3.0.0"]
agentops = ["agentops>=0.3.12"]
google = ["langchain-google-genai>=1.0.4"]
openai = ["langchain-openai>=0.1.7"]
anthropic = ["langchain-anthropic>=0.1.13"]
cohere = ["langchain-cohere>=0.1.4"]
chat = [
    "chainlit==2.0.3",
    "litellm>=1.41.8",
    "aiosqlite>=0.20.0",
    "greenlet>=3.0.3",
    "tavily-python==0.5.0",
    "crawl4ai==0.3.4",
    "sqlalchemy>=2.0.36",
    "playwright>=1.47.0",
    "rich",
    "pydantic<=2.10.1"
]
code = [
    "chainlit==2.0.3",
    "litellm>=1.41.8",
    "aiosqlite>=0.20.0",
    "greenlet>=3.0.3",
    "tavily-python==0.5.0",
    "crawl4ai==0.3.4",
    "sqlalchemy>=2.0.36",
    "playwright>=1.47.0",
    "pydantic<=2.10.1"
]
realtime = [
    "chainlit==2.0.3",
    "litellm>=1.41.8",
    "aiosqlite>=0.20.0",
    "greenlet>=3.0.3",
    "tavily-python==0.5.0",
    "crawl4ai==0.3.4",
    "websockets>=12.0",
    "plotly>=5.24.0",
    "yfinance>=0.2.44",
    "duckduckgo_search>=6.3.0",
    "sqlalchemy>=2.0.36"
]
call = [
    "twilio>=7.0.0",
    "fastapi>=0.95.0",
    "uvicorn>=0.20.0",
    "websockets>=12.0",
    "flaml[automl]>=2.3.1",
    "pyngrok>=1.4.0",
    "rich",
    "openai>=1.54.0",
]
crewai = ["crewai>=0.32.0", "praisonai-tools>=0.0.7"]
autogen = ["pyautogen>=0.2.19", "praisonai-tools>=0.0.7", "crewai"]

[tool.poetry]
name = "PraisonAI"
version = "2.1.1"
description = "PraisonAI is an AI Agents Framework with Self Reflection. PraisonAI application combines PraisonAI Agents, AutoGen, and CrewAI into a low-code solution for building and managing multi-agent LLM systems, focusing on simplicity, customisation, and efficient human–agent collaboration."
authors = ["Mervin Praison"]
license = ""
readme = "README.md"

[tool.poetry.urls]
Homepage = "https://docs.praison.ai"
Repository = "https://github.com/mervinpraison/PraisonAI"

[tool.setuptools]
packages = ["PraisonAI"]

[tool.poetry.dependencies]
python = ">=3.10,<3.13"
rich = ">=13.7"
markdown = ">=3.5"
pyparsing = ">=3.0.0"
praisonaiagents = ">=0.0.71"
python-dotenv = ">=0.19.0"
instructor = ">=1.3.3"
PyYAML = ">=6.0"
mcp = "==1.6.0"
pyautogen = {version = ">=0.2.19", optional = true}
crewai = {version = ">=0.32.0", optional = true}
praisonai-tools = {version = ">=0.0.7", optional = true}
chainlit = {version = "==2.0.3", optional = true}
gradio = {version = ">=4.26.0", optional = true}
flask = {version = ">=3.0.0", optional = true}
agentops = {version = ">=0.3.12", optional = true}
langchain-google-genai = {version = ">=1.0.4", optional = true}
langchain-anthropic = {version = ">=0.1.13", optional = true}
langchain-openai = {version = ">=0.1.7", optional = true}
langchain-cohere = {version = ">=0.1.4", optional = true}
litellm = {version = ">=1.41.8", optional = true}
aiosqlite= {version = ">=0.20.0", optional = true}
greenlet = {version = ">=3.0.3", optional = true}
tavily-python = {version = "==0.5.0", optional=true}
crawl4ai = {version = "==0.3.4", optional = true}
websockets = {version = ">=12.0", optional = true}
plotly = {version = ">=5.24.0", optional = true}
yfinance = {version = ">=0.2.44", optional = true}
duckduckgo_search = {version = ">=6.3.0", optional = true}
twilio = {version = ">=7.0.0", optional = true}
fastapi = {version = ">=0.95.0", optional = true}
uvicorn = {version = ">=0.20.0", optional = true}
flaml = {version = ">=2.3.1", extras = ["automl"], optional = true}
pyngrok = {version = ">=1.4.0", optional = true}
sqlalchemy = {version = ">=2.0.36", optional = true}
playwright = {version = ">=1.47.0", optional = true}
openai = {version = ">=1.54.0", optional = true}
pydantic = {version = "<=2.10.1", optional = true}

[tool.poetry.group.docs.dependencies]
mkdocs = "*"
markdown-include = "*"
mkdocs-material = "*"
mkdocs-jupyter = "*"
mkdocs-glightbox = "*"
pymdown-extensions = "*"
Pygments = "*"
mkdocstrings = "*"
mkdocs-apidoc = "*"
mkdocstrings-python = "*"
pdoc3 = "*"

[tool.poetry.group.test.dependencies]
pytest = "8.2.2"
pre-commit = "3.7.1"
unittest-xml-reporting = "3.2.0"
xmlrunner = "*"
unittest2 = "*"

[tool.poetry.group.dev.dependencies]
pytest = "8.2.2"
pre-commit = "3.7.1"
unittest-xml-reporting = "3.2.0"
mkdocs = "*"
markdown-include = "*"
mkdocs-material = "*"
mkdocs-jupyter = "*"
mkdocs-glightbox = "*"
pymdown-extensions = "*"
Pygments = "*"
mkdocstrings = "*"
mkdocs-apidoc = "*"
mkdocstrings-python = "*"
pdoc3 = "*"
xmlrunner = "*"
unittest2 = "*"
chainlit = "==2.0.3"
gradio = ">=4.26.0"
flask = ">=3.0.0"
agentops = ">=0.3.12"
langchain-google-genai = ">=1.0.4"
langchain-anthropic = ">=0.1.13"
langchain-openai = ">=0.1.7"
langchain-cohere = ">=0.1.4"
litellm = ">=1.41.8"
aiosqlite = ">=0.20.0"
greenlet = ">=3.0.3"

[build-system]
requires = [
    "poetry-core",
    "setuptools>=42",
]
build-backend = "poetry.core.masonry.api"


[tool.poetry.scripts]
praisonai = "praisonai.__main__:main"
setup-conda-env = "setup.setup_conda_env:main"
praisonai-call = "praisonai.api.call:main"

[tool.poetry.extras]
ui = [
    "chainlit", 
    "aiosqlite", 
    "greenlet",
    "sqlalchemy",
    "pydantic"
]
gradio = ["gradio"]
api = ["flask"]
agentops = ["agentops"]
google = ["langchain-google-genai"]
openai = ["langchain-openai"]
anthropic = ["langchain-anthropic"]
cohere = ["langchain-cohere"]
chat = [
    "chainlit", 
    "litellm", 
    "aiosqlite", 
    "greenlet", 
    "tavily-python", 
    "crawl4ai",
    "sqlalchemy",
    "playwright",
    "rich",
    "pydantic"
]
code = [
    "chainlit", 
    "litellm", 
    "aiosqlite", 
    "greenlet", 
    "tavily-python", 
    "crawl4ai",
    "sqlalchemy",
    "playwright",
    "pydantic"
]
train = ["setup-conda-env"]
realtime = [
    "chainlit", 
    "litellm", 
    "aiosqlite", 
    "greenlet", 
    "tavily-python", 
    "crawl4ai", 
    "websockets", 
    "plotly", 
    "yfinance", 
    "duckduckgo_search",
    "sqlalchemy"
]
call = [
    "twilio", 
    "fastapi", 
    "uvicorn", 
    "websockets",
    "flaml", 
    "pyngrok", 
    "rich",
    "openai",
]
crewai = ["crewai", "praisonai-tools"]
autogen = ["pyautogen", "praisonai-tools", "crewai"]

[tool.poetry-dynamic-versioning]
enable = true
vcs = "git"
style = "semver"

[tool.poetry.build]
generate-setup-file = false
script = "praisonai/setup/post_install.py"