# Agent-Reach Dependencies: Core, Optional, and Development Requirements

> Discover Agent-Reach dependencies. Explore core packages like requests and yt-dlp, plus optional extras for browser automation, all detailed in pyproject.toml.

- Repository: [Pnant/Agent-Reach](https://github.com/Panniantong/Agent-Reach)
- Tags: internals
- Published: 2026-06-18

---

**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`](https://github.com/Panniantong/Agent-Reach/blob/main/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`](https://github.com/Panniantong/Agent-Reach/blob/main/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 generic `rss` channel.
- **`python-dotenv>=1.0`** – Loads environment variables (e.g., cookie strings) from `.env` files 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 the `youtube` channel.

## Optional Extras

Optional dependencies are isolated in **[`pyproject.toml`](https://github.com/Panniantong/Agent-Reach/blob/main/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`](https://github.com/Panniantong/Agent-Reach/blob/main/pyproject.toml) lines 45-50** under `[project.optional-dependencies] dev`. These do not affect end-users.

- **`pytest>=8.0`** – Test runner for the `tests/` suite.
- **`ruff>=0.8`** – Linter and code formatter.
- **`mypy>=1.12`** – Static type checker.
- **`types-requests`** and **`types-PyYAML`** – Stub packages providing type hints for external libraries.

## Installation Commands

Install only the core dependencies for lightweight RSS and API access:

```bash
pip install agent-reach

```

Enable JavaScript rendering with the browser extra:

```bash
pip install "agent-reach[browser]"

```

Add automatic cookie extraction from local browsers:

```bash
pip install "agent-reach[cookies]"

```

Install all optional features:

```bash
pip install "agent-reach[all]"

```

Set up a development environment with testing and linting tools:

```bash
pip install -e ".[dev]"

```

## Source Code Integration

The declared dependencies map directly to specific modules in the codebase:

- **[`agent_reach/cli.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/cli.py)** – Uses `rich` to render colored output and `loguru` for execution logging.
- **[`agent_reach/config.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/config.py)** – Consumes `pyyaml` to load YAML configs and `python-dotenv` to read `.env` files.
- **[`agent_reach/core.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/core.py)** – Contains the routing logic that delegates URLs to appropriate channels based on installed extras.
- **[`agent_reach/channels/base.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/base.py)** – Abstract base class that relies on `requests` for HTTP transport.
- **`agent_reach/channels/`** – Individual platform implementations (Twitter, Reddit, YouTube) that utilize `feedparser` for RSS feeds and `yt-dlp` for 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`](https://github.com/Panniantong/Agent-Reach/blob/main/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`](https://github.com/Panniantong/Agent-Reach/blob/main/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`](https://github.com/Panniantong/Agent-Reach/blob/main/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.