Agent-Reach Dependencies: Core, Optional, and Development Requirements
Agent-Reach requires seven core runtime packages—including requests, feedparser, and yt-dlp—with optional extras for browser automation and cookie extraction, all declared in the repository’s pyproject.toml.
Agent-Reach is a lightweight Python CLI and library that connects AI agents to internet platforms such as Twitter, Reddit, and YouTube. Understanding the Agent-Reach dependencies is essential for installation planning, as the project uses a modular architecture that separates lightweight core functionality from heavyweight optional extras to keep production deployments lean.
Core Runtime Dependencies
The minimal installation requires seven packages defined in pyproject.toml lines 30-37. These dependencies enable HTTP communication, configuration management, and platform-specific data extraction without requiring additional browser binaries.
requests>=2.28– Performs all HTTP calls to platform APIs (Twitter, Reddit, YouTube, etc.).feedparser>=6.0– Parses RSS/Atom feeds for the genericrsschannel.python-dotenv>=1.0– Loads environment variables (e.g., cookie strings) from.envfiles for credential management.loguru>=0.7– Provides centralized, colorful logging throughout the CLI and library.pyyaml>=6.0– Reads and writes YAML configuration files that define platform credentials and defaults.rich>=13.0– Renders formatted tables, progress bars, and error messages in the command-line interface.yt-dlp>=2024.0– Downloads YouTube video transcripts and metadata for theyoutubechannel.
Optional Extras
Optional dependencies are isolated in pyproject.toml lines 41-43 to prevent unnecessary binary downloads for users who do not need specific capabilities.
Browser Automation
The browser extra installs playwright>=1.40, enabling the web channel to render JavaScript-heavy pages (e.g., LinkedIn, Instagram). This downloads Chromium binaries and should only be installed when headless browser automation is required.
Cookie Extraction
The cookies extra includes browser-cookie3>=0.19, which automatically extracts authentication cookies from installed browsers (Chrome, Edge, Firefox). This allows authenticated requests to platforms that require cookie-based sessions without manual cookie string management.
All Extras Bundle
Install the all extra to obtain every optional capability—including playwright, mcp[cli], and browser-cookie3—in a single command.
Development Dependencies
Contributors running tests or linting code require the dev extras defined in pyproject.toml lines 45-50 under [project.optional-dependencies] dev. These do not affect end-users.
pytest>=8.0– Test runner for thetests/suite.ruff>=0.8– Linter and code formatter.mypy>=1.12– Static type checker.types-requestsandtypes-PyYAML– Stub packages providing type hints for external libraries.
Installation Commands
Install only the core dependencies for lightweight RSS and API access:
pip install agent-reach
Enable JavaScript rendering with the browser extra:
pip install "agent-reach[browser]"
Add automatic cookie extraction from local browsers:
pip install "agent-reach[cookies]"
Install all optional features:
pip install "agent-reach[all]"
Set up a development environment with testing and linting tools:
pip install -e ".[dev]"
Source Code Integration
The declared dependencies map directly to specific modules in the codebase:
agent_reach/cli.py– Usesrichto render colored output andlogurufor execution logging.agent_reach/config.py– Consumespyyamlto load YAML configs andpython-dotenvto read.envfiles.agent_reach/core.py– Contains the routing logic that delegates URLs to appropriate channels based on installed extras.agent_reach/channels/base.py– Abstract base class that relies onrequestsfor HTTP transport.agent_reach/channels/– Individual platform implementations (Twitter, Reddit, YouTube) that utilizefeedparserfor RSS feeds andyt-dlpfor video metadata extraction.
Summary
- Core dependencies (
requests,feedparser,python-dotenv,loguru,pyyaml,rich,yt-dlp) install automatically and support RSS, HTTP APIs, and YouTube without additional binaries. - Optional extras (
browser,cookies,all) isolate heavyweight packages like Playwright to keep production deployments lightweight. - Development tools (
pytest,ruff,mypy) are only required when contributing to the repository and are defined in[project.optional-dependencies] dev. - All dependency specifications reside in
pyproject.toml, with runtime requirements on lines 30-37, optional extras on lines 41-43, and dev tools on lines 45-50.
Frequently Asked Questions
What is the difference between core and optional Agent-Reach dependencies?
Core dependencies install automatically with pip install agent-reach and provide all functionality for RSS feeds, standard HTTP APIs, and YouTube transcripts. Optional dependencies (Playwright, browser-cookie3) are heavy external binaries that only specific channels require; they must be installed explicitly via extras like [browser] or [cookies] to avoid bloating minimal deployments.
How do I install Agent-Reach with browser automation support?
Run pip install "agent-reach[browser]" to install the browser extra, which includes Playwright. This enables the web channel in agent_reach/core.py to render JavaScript-heavy sites such as LinkedIn or Instagram by spinning up a headless Chromium instance.
Are development dependencies required for production deployments?
No. Development dependencies—pytest, ruff, mypy, and type stub packages—are only necessary when running the test suite or linting code changes. Production installations should use pip install agent-reach or pip install "agent-reach[optional-extra]" without the [dev] suffix.
Which dependency handles YouTube video transcript extraction?
The yt-dlp>=2024.0 package (specified in pyproject.toml line 37) handles YouTube video metadata and transcript downloads. This dependency is part of the core runtime set, so YouTube functionality works without optional extras.
Have a question about this repo?
These articles cover the highlights, but your codebase questions are specific. Give your agent direct access to the source. Share this with your agent to get started:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →