Files
pocketpaw/pyproject.toml
2026-02-12 18:23:23 +05:30

189 lines
4.1 KiB
TOML

[project]
name = "pocketpaw"
version = "0.2.5"
description = "The AI agent that runs on your laptop, not a datacenter. OpenClaw alternative with one-command install."
readme = "README.md"
license = "MIT"
requires-python = ">=3.11"
keywords = [
"ai", "agent", "telegram", "assistant", "automation",
"browser", "llm", "ollama", "openai", "anthropic",
"self-hosted", "local-first", "privacy"
]
authors = [
{ name = "PocketPaw Team", email = "hello@pocketpaw.ai" }
]
classifiers = [
"Development Status :: 4 - Beta",
"Environment :: Console",
"Intended Audience :: End Users/Desktop",
"Intended Audience :: Developers",
"License :: OSI Approved :: MIT License",
"Operating System :: OS Independent",
"Operating System :: MacOS",
"Operating System :: Microsoft :: Windows",
"Operating System :: POSIX :: Linux",
"Programming Language :: Python :: 3",
"Programming Language :: Python :: 3.11",
"Programming Language :: Python :: 3.12",
"Programming Language :: Python :: 3.13",
"Topic :: Home Automation",
"Topic :: Scientific/Engineering :: Artificial Intelligence",
"Topic :: Internet :: WWW/HTTP :: Browsers",
"Typing :: Typed",
]
dependencies = [
# Config
"pydantic>=2.10.0",
"pydantic-settings>=2.1.0",
# HTTP client (used everywhere)
"httpx>=0.26.0",
# LLM Clients
"openai>=1.60.0",
"anthropic>=0.45.0",
# Agent Backend (recommended default)
"claude-agent-sdk>=0.1.30",
# Logging & CLI
"rich>=13.0.0",
# Scheduling
"apscheduler>=3.10.0",
"python-dateutil>=2.8.0",
# Logging & CLI
"rich>=13.0.0",
# Credential Encryption
"cryptography>=42.0",
# Image basics
"pillow>=10.0.0",
]
[project.optional-dependencies]
# --- Feature extras ---
dashboard = [
"fastapi>=0.109.0",
"uvicorn[standard]>=0.27.0",
"jinja2>=3.1.0",
"qrcode[pil]>=7.4",
"python-multipart>=0.0.22",
]
telegram = [
"python-telegram-bot>=21.0",
]
browser = [
"playwright>=1.50.0",
]
desktop = [
"psutil>=5.9.0",
"pyautogui>=0.9.54",
]
native = [
"open-interpreter>=0.2.0,<0.5.0",
]
memory = [
"mem0ai>=0.1.115",
"ollama>=0.6.1",
]
# --- Channel extras ---
discord = [
"discord.py>=2.3.0",
]
slack = [
"slack-bolt>=1.20.0",
]
whatsapp-personal = [
"neonize>=0.3.0",
]
matrix = [
"matrix-nio>=0.24.0",
]
teams = [
"botbuilder-core>=4.16.0",
"botbuilder-integration-aiohttp>=4.16.0",
]
gchat = [
"google-api-python-client>=2.100.0",
"google-auth>=2.25.0",
]
# --- Tool extras ---
image = [
"google-genai>=1.0.0",
]
extract = [
"html2text>=2020.1.16",
]
voice = [
"elevenlabs>=1.0.0",
]
ocr = [
"pytesseract>=0.3.10",
]
mcp = [
"mcp>=1.0.0",
]
# --- Composite extras ---
recommended = [
"pocketpaw[dashboard,browser,memory,desktop]",
]
channels = [
"pocketpaw[discord,slack,telegram]",
]
all-channels = [
"pocketpaw[telegram,discord,slack,whatsapp-personal,matrix,teams,gchat]",
]
all-tools = [
"pocketpaw[browser,desktop,image,extract,voice,ocr,mcp,memory]",
]
all-backends = [
"pocketpaw[native]",
]
all = [
"pocketpaw[recommended,all-channels,all-tools,all-backends]",
]
dev = [
"pocketpaw[all]",
"pytest>=8.0.0",
"pytest-asyncio>=0.23.0",
"pytest-playwright>=0.4.0",
"ruff>=0.4.0",
"mypy>=1.8.0",
]
[project.scripts]
pocketpaw = "pocketclaw.__main__:main"
[project.urls]
Homepage = "https://github.com/pocketpaw/pocketpaw"
Repository = "https://github.com/pocketpaw/pocketpaw"
Issues = "https://github.com/pocketpaw/pocketpaw/issues"
Documentation = "https://github.com/pocketpaw/pocketpaw#readme"
Twitter = "https://twitter.com/PocketPawAI"
[build-system]
requires = ["hatchling"]
build-backend = "hatchling.build"
[tool.hatch.build.targets.wheel]
packages = ["src/pocketclaw"]
[tool.ruff]
line-length = 100
target-version = "py311"
[tool.ruff.lint]
select = ["E", "F", "I", "UP"]
[dependency-groups]
dev = [
"pocketpaw[all]",
"pytest>=8.0.0",
"pytest-asyncio>=0.23.0",
"ruff>=0.4.0",
"mypy>=1.8.0",
]
[tool.pytest.ini_options]
asyncio_mode = "auto"