# What Programming Languages Are Used in Agent-Reach? Python, Bash, and Configuration Files Explained

> Discover the programming languages powering Agent-Reach. Explore Python, Bash, TOML, and Markdown for efficient automation and configuration.

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

---

**Agent-Reach is primarily written in Python 3.10+, supplemented by Bash shell scripts for automation, TOML for project configuration, and Markdown for documentation.**

Agent-Reach, an open-source intelligent content routing tool hosted at `Panniantong/Agent-Reach`, relies on a polyglot codebase where Python drives the core functionality while auxiliary languages handle build tasks, configuration, and documentation. Understanding the language distribution helps contributors navigate the repository and extend its channel-based architecture.

## Primary Language: Python

The repository is overwhelmingly Python-centric, with the entire application logic—from CLI parsing to platform-specific channel implementations—implemented in Python 3.10 or higher.

### Core Architecture

In [`agent_reach/core.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/core.py), the `AgentReach` class serves as the central router that dispatches read and search operations to platform-specific channels. Each channel inherits from `BaseChannel` (defined in [`agent_reach/channels/base.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/base.py)) and implements the `can_handle()`, `read()`, and `search()` methods. For example, [`agent_reach/channels/twitter.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/twitter.py) contains the Twitter-specific implementation, while [`agent_reach/cli.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/cli.py) handles argument parsing and command dispatch in [`agent_reach/cli.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/cli.py).

### Using the Library Programmatically

```python
from agent_reach import AgentReach

# Initialise the core router

ar = AgentReach()

# Read a URL (e.g., a YouTube video)

content = ar.read("https://www.youtube.com/watch?v=dQw4w9WgXcQ")
print(content[:200])   # preview first 200 characters

```

*Relevant source:* [`agent_reach/core.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/core.py) implements the `read` method that dispatches to the appropriate channel (e.g., [`channels/youtube.py`](https://github.com/Panniantong/Agent-Reach/blob/main/channels/youtube.py)).

### Invoking the CLI

```bash

# Install the package in editable mode

pip install -e .

# Run the built-in diagnostics

python -m agent_reach.cli doctor

# Search across platforms

python -m agent_reach.cli search "latest AI research"

```

*Relevant source:* [`agent_reach/cli.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/cli.py) parses arguments and forwards them to the core logic.

### Extending with New Channels

```python

# my_new_channel.py

from agent_reach.channels.base import BaseChannel

class MyNewChannel(BaseChannel):
    @staticmethod
    def can_handle(url: str) -> bool:
        return "myplatform.com" in url

    def read(self, url: str) -> str:
        # Platform-specific fetching logic

        return "content from MyNewChannel"

```

*Typical location:* `agent_reach/channels/` – each channel follows the same contract as `BaseChannel`.

## Supporting Languages and Configuration Files

While Python powers the runtime, several other languages ensure the project remains maintainable and deployable.

### Bash Scripts for Automation

The repository includes shell scripts for testing and operational tasks. The [`test.sh`](https://github.com/Panniantong/Agent-Reach/blob/main/test.sh) script in the root directory sets up a virtual environment and executes the full pytest suite located in `tests/`. Additional utilities like [`scripts/sync-upstream.sh`](https://github.com/Panniantong/Agent-Reach/blob/main/scripts/sync-upstream.sh) and [`agent_reach/scripts/transcribe_xiaoyuzhou.sh`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/scripts/transcribe_xiaoyuzhou.sh) handle upstream synchronization and media transcription workflows.

```bash

# Run the integration test suite

./test.sh

# Sync upstream channel definitions

bash scripts/sync-upstream.sh

```

### TOML and JSON Configuration

Project metadata and dependencies are declared in [`pyproject.toml`](https://github.com/Panniantong/Agent-Reach/blob/main/pyproject.toml) using the TOML format, which specifies Python 3.10+ as the minimum version. Runtime configuration parsing is handled in [`agent_reach/config.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/config.py), which loads settings from YAML files and environment variables. The [`config/mcporter.json`](https://github.com/Panniantong/Agent-Reach/blob/main/config/mcporter.json) file provides static JSON configuration for MCP (Model Context Protocol) integration.

### Markdown Documentation

Documentation lives in Markdown files, including the main [`README.md`](https://github.com/Panniantong/Agent-Reach/blob/main/README.md) and localized guides like [`docs/README_en.md`](https://github.com/Panniantong/Agent-Reach/blob/main/docs/README_en.md). These files contain setup instructions, usage examples, and contribution guidelines.

## File Structure and Language Distribution

| Language | Purpose | Key Files |
|----------|---------|-----------|
| **Python** | Core library, CLI, channels, tests | [`agent_reach/core.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/core.py), [`agent_reach/cli.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/cli.py), [`agent_reach/__init__.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/__init__.py), `agent_reach/channels/*.py`, `tests/` |
| **Bash** | Testing, automation | [`test.sh`](https://github.com/Panniantong/Agent-Reach/blob/main/test.sh), [`scripts/sync-upstream.sh`](https://github.com/Panniantong/Agent-Reach/blob/main/scripts/sync-upstream.sh), [`agent_reach/scripts/transcribe_xiaoyuzhou.sh`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/scripts/transcribe_xiaoyuzhou.sh) |
| **TOML** | Package metadata | [`pyproject.toml`](https://github.com/Panniantong/Agent-Reach/blob/main/pyproject.toml) |
| **YAML** | Runtime configuration | Loaded by [`agent_reach/config.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/config.py) |
| **JSON** | MCP integration | [`config/mcporter.json`](https://github.com/Panniantong/Agent-Reach/blob/main/config/mcporter.json) |
| **Markdown** | Documentation | [`README.md`](https://github.com/Panniantong/Agent-Reach/blob/main/README.md), [`docs/README_en.md`](https://github.com/Panniantong/Agent-Reach/blob/main/docs/README_en.md) |

## Summary

- **Python 3.10+** is the sole runtime language, implementing the CLI ([`agent_reach/cli.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/cli.py)), core routing logic ([`agent_reach/core.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/core.py)), and all platform channels (`agent_reach/channels/`).
- **Bash scripts** automate testing ([`test.sh`](https://github.com/Panniantong/Agent-Reach/blob/main/test.sh)) and maintenance tasks ([`scripts/sync-upstream.sh`](https://github.com/Panniantong/Agent-Reach/blob/main/scripts/sync-upstream.sh)).
- **TOML** defines package dependencies and build configuration in [`pyproject.toml`](https://github.com/Panniantong/Agent-Reach/blob/main/pyproject.toml).
- **YAML** and **JSON** provide runtime configuration through [`agent_reach/config.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/config.py) and [`config/mcporter.json`](https://github.com/Panniantong/Agent-Reach/blob/main/config/mcporter.json).
- **Markdown** hosts all project documentation and contribution guides.

## Frequently Asked Questions

### Is Agent-Reach written only in Python?

No, while the executable code is exclusively Python, the repository includes Bash scripts for automation, TOML for packaging, and Markdown for documentation. These supplementary files ensure proper testing, configuration management, and developer onboarding without affecting the runtime behavior.

### What Python version does Agent-Reach require?

According to the [`pyproject.toml`](https://github.com/Panniantong/Agent-Reach/blob/main/pyproject.toml) configuration, Agent-Reach requires **Python 3.10 or higher**. The codebase uses modern Python features compatible with this version, as implemented in [`agent_reach/core.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/core.py) and the channel classes.

### How are the shell scripts used in Agent-Reach?

The [`test.sh`](https://github.com/Panniantong/Agent-Reach/blob/main/test.sh) script creates an isolated Python environment and runs the full pytest suite located in the `tests/` directory. The [`scripts/sync-upstream.sh`](https://github.com/Panniantong/Agent-Reach/blob/main/scripts/sync-upstream.sh) utility synchronizes channel definitions with upstream sources, while specialized scripts like [`agent_reach/scripts/transcribe_xiaoyuzhou.sh`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/scripts/transcribe_xiaoyuzhou.sh) handle media processing workflows.

### Where is the project configuration defined?

Package-level configuration resides in [`pyproject.toml`](https://github.com/Panniantong/Agent-Reach/blob/main/pyproject.toml) (TOML format), while runtime settings are managed by [`agent_reach/config.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/config.py), which loads YAML configuration files and environment variables. MCP-specific settings are stored in [`config/mcporter.json`](https://github.com/Panniantong/Agent-Reach/blob/main/config/mcporter.json).