[project] name = "pyrecrawl" version = "0.8.0" description = "Web browsing superpowers for AI agents: one MCP tool to scrape, extract, crawl, map, and search any site — self-hosted, no API keys, with a smart auto-fallback ladder." readme = "README.md" license = { text = "MIT" } authors = [ { name = "Alexander Jay" }, ] keywords = ["mcp", "scraping", "crawl4ai", "scrapling", "firecrawl-alternative", "llm", "rag", "ai-agent", "web-scraping", "ai-agent-tools"] requires-python = ">=3.10" classifiers = [ "Development Status :: 4 - Beta", "Intended Audience :: Developers", "License :: OSI Approved :: MIT License", "Programming Language :: Python :: 3", "Programming Language :: Python :: 3.10", "Programming Language :: Python :: 3.11", "Programming Language :: Python :: 3.12", "Topic :: Internet :: WWW/HTTP :: Indexing/Search", "Topic :: Software Development :: Libraries :: Python Modules", "Topic :: Text Processing :: Markup :: Markdown", ] dependencies = [ "crawl4ai>=0.9.0", "scrapling[fetchers]>=0.4.0", "mcp>=1.0,<2.0", "pydantic>=2.0", ] [project.optional-dependencies] dev = [ "pytest>=8.0", "pytest-asyncio>=0.23", ] browsers = [ "playwright>=1.40", ] docs = [ "pypdf>=5.0", "python-docx>=1.1", "python-pptx>=1.0", ] [project.scripts] pyrecrawl = "pyrecrawl.cli:main" [project.urls] Homepage = "https://github.com/SanggonBoy/PyreCrawl" Repository = "https://github.com/SanggonBoy/PyreCrawl" Documentation = "https://github.com/SanggonBoy/PyreCrawl#readme" Issues = "https://github.com/SanggonBoy/PyreCrawl/issues" Changelog = "https://github.com/SanggonBoy/PyreCrawl/releases" [build-system] requires = ["hatchling"] build-backend = "hatchling.build" [tool.hatch.build.targets.wheel] packages = ["src/pyrecrawl"] [tool.pytest.ini_options] asyncio_mode = "auto" # no tests/ dir yet — executable checks live in scripts/selfcheck.py + scripts/probe_stdio.py