# Authentication Methods Required by Each Platform in Agent Reach

> Discover authentication methods for Twitter, Reddit, GitHub, XiaoHongShu, and LinkedIn in Agent Reach. Learn about supported access for YouTube, V2EX, and Bilibili. Explore environment variables, CLI OAuth, and browser cookies.

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

---

**Agent Reach requires logged-in sessions for Twitter, Reddit, GitHub, XiaoHongShu, and LinkedIn via environment variables, CLI OAuth flows, or browser cookies, while YouTube, V2EX, and Bilibili support unauthenticated access.**

Agent Reach is an open-source Python framework that routes AI-agent calls to native CLI tools and APIs across major Internet platforms. Understanding the authentication methods required by each platform in Agent Reach is essential for ensuring seamless integration and avoiding connection errors during agent execution.

## How Agent Reach Validates Authentication

The framework uses a `check()` method in each channel to detect whether required authentication material is present. This method reports status values including `ok`, `warn`, `error`, and `off` depending on whether the upstream CLI or API has a valid logged-in session. The validation logic is implemented in individual channel files under `agent_reach/channels/`.

## Platforms Requiring Authentication

### Twitter / X

The **Twitter/X** channel requires a logged-in session for all supported backends. In [`agent_reach/channels/twitter.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/twitter.py), the `TwitterChannel._check_twitter_cli` method (lines 84-88) validates the following:

- **`twitter-cli`**: Reads `TWITTER_AUTH_TOKEN` and `TWITTER_CT0` environment variables, or uses an already-logged-in browser session.
- **`bird CLI`**: Expects `AUTH_TOKEN` and `CT0` environment variables.
- **`OpenCLI`**: Reuses Chrome/Edge login cookies automatically.

### Reddit

The **Reddit** channel supports `OpenCLI` and `rdt-cli` backends, both requiring authenticated sessions. According to `RedditChannel._check_rdt` in [`agent_reach/channels/reddit.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/reddit.py) (lines 141-155):

- **OpenCLI**: Uses the browser's existing Reddit cookies.
- **rdt-cli**: Stores credentials in `~/.config/rdt-cli/credential.json`. Users must run `rdt login` to initiate browser-based authentication, or manually write the cookie file.

### XiaoHongShu (XHS)

The **XiaoHongShu** channel implements multi-backend authentication checks in `XiaoHongShuChannel._check_xhs_cli` at [`agent_reach/channels/xiaohongshu.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/xiaohongshu.py) (lines 49-53):

- **OpenCLI**: Reuses Chrome browser login state.
- **xiaohongshu-mcp**: Runs a local MCP server that can fetch a QR-code login.
- **xhs-cli**: Provides a native `xhs login` command supporting browser-based cookie extraction or QR-code authentication.

### GitHub

The **GitHub** channel requires the `gh` CLI to be authenticated. In `GitHubChannel.check` within [`agent_reach/channels/github.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/github.py) (lines 40-42):

- Users must run `gh auth login` to complete an OAuth or device flow.
- The CLI stores the resulting token in `~/.config/gh/hosts.yml`.

### LinkedIn

The **LinkedIn** channel requires authentication for full profile, company, and job search capabilities. According to `LinkedInChannel.check` in [`agent_reach/channels/linkedin.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/linkedin.py) (lines 36-38):

- The `linkedin-scraper-mcp` or `Jina Reader` backend must be configured using `mcporter config add linkedin …`.
- The MCP server extracts logged-in LinkedIn cookies from a browser session.

## Platforms with Optional or No Authentication

### YouTube

The **YouTube** channel requires **no authentication**. As implemented in `YouTubeChannel.check` at [`agent_reach/channels/youtube.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/youtube.py) (lines 51-57), the channel uses `yt-dlp` to fetch public video information and subtitles. The only prerequisite is a JavaScript runtime (`node` or `deno`), not login credentials.

### Bilibili

The **Bilibili** channel supports **optional** authentication depending on the backend. In `BilibiliChannel._check_bili_cli` within [`agent_reach/channels/bilibili.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/bilibili.py) (lines 92-94):

- **`bili-cli`**: Works fully without login.
- **`OpenCLI`**: Can fetch subtitles via browser cookies when available, but operates without them for public content.

### V2EX

The **V2EX** channel requires **no authentication**. The `V2EXChannel.check` method in [`agent_reach/channels/v2ex.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/v2ex.py) (lines 45-46) connects to a public API that is fully unauthenticated.

## Configuration Examples

Below are minimal commands to satisfy authentication requirements for each platform.

### Authenticate Twitter via Environment Variables

```bash
export TWITTER_AUTH_TOKEN="YOUR_TWITTER_BEARER_TOKEN"
export TWITTER_CT0="YOUR_TWITTER_CT0_COOKIE"
agent-reach install --channels twitter

```

### Log in to Reddit via rdt-cli

```bash
rdt login                # Opens browser; saves cookie to ~/.config/rdt-cli/credential.json

agent-reach install --channels reddit

```

### Authenticate GitHub via gh CLI

```bash
gh auth login            # Interactive OAuth/device flow

agent-reach install --channels github

```

### Configure XiaoHongShu via xhs-cli

```bash
xhs login                # Launches browser tab or QR-code flow

agent-reach install --channels xiaohongshu

```

### Configure LinkedIn via MCP

```bash
npm install -g mcporter
mcporter config add linkedin http://localhost:3000/mcp
agent-reach install --channels linkedin

```

### Use OpenCLI for Browser-Based Authentication

```bash

# Ensure you are logged into the target site in Chrome/Edge, then:

agent-reach install --channels opencli

```

## Summary

- **Authentication required**: Twitter/X, Reddit, GitHub, XiaoHongShu, and LinkedIn require logged-in sessions supplied via environment variables, CLI credentials, or browser cookies.
- **No authentication required**: YouTube and V2EX work with public APIs only.
- **Optional authentication**: Bilibili functions without login via `bili-cli`, though OpenCLI can leverage browser cookies for enhanced features.
- **Validation**: Each channel's `check()` method in `agent_reach/channels/` validates the specific authentication state for its backends.

## Frequently Asked Questions

### Do I need to authenticate all platforms in Agent Reach?

No. YouTube, V2EX, and Bilibili (when using `bili-cli`) do not require authentication. However, Twitter, Reddit, GitHub, XiaoHongShu, and LinkedIn require active logged-in sessions to function properly.

### How do I authenticate Twitter/X in Agent Reach?

You can authenticate Twitter/X by setting the `TWITTER_AUTH_TOKEN` and `TWITTER_CT0` environment variables, or by ensuring you are logged into Twitter in Chrome/Edge when using OpenCLI. The `bird CLI` backend expects `AUTH_TOKEN` and `CT0` variables instead.

### What is the difference between OpenCLI and native CLI authentication?

OpenCLI reuses authentication cookies from your existing Chrome or Edge browser session automatically, requiring no manual token configuration. Native CLIs like `gh`, `rdt`, or `xhs` require explicit login commands (`gh auth login`, `rdt login`, `xhs login`) that store credentials in local configuration files such as `~/.config/gh/hosts.yml` or `~/.config/rdt-cli/credential.json`.

### Can I use Agent Reach with YouTube without logging in?

Yes. The YouTube channel uses `yt-dlp` to access public video metadata and subtitles without any authentication. You only need a JavaScript runtime (`node` or `deno`) installed on your system.