# How to Manually Configure Twitter Cookies in Agent Reach: Supported Formats and Step-by-Step Guide

> Learn to manually configure Twitter cookies in Agent Reach. Export auth_token and ct0 cookies and use supported formats for seamless integration. Get the step-by-step guide now.

- Repository: [Pnant/Agent-Reach](https://github.com/Panniantong/Agent-Reach)
- Tags: how-to-guide
- Published: 2026-08-04

---

**To configure Twitter cookies in Agent Reach, export your `auth_token` and `ct0` cookies from the browser, then run `agent-reach configure twitter-cookies "auth_token=xxx; ct0=yyy"` — the tool accepts both semicolon-separated header strings and space-separated token pairs.**

Manually configuring Twitter cookies is essential when using Agent Reach to interact with X (formerly Twitter) through its upstream **twitter-cli** integration. This guide covers the exact cookie formats accepted by Agent Reach, the complete configuration workflow, and the underlying source code implementation in the [Panniantong/Agent-Reach](https://github.com/Panniantong/Agent-Reach) repository.

---

## Required Twitter Cookies for Authentication

Agent Reach relies on two browser session cookies to authenticate with Twitter:

| Cookie | Purpose |
|--------|---------|
| `auth_token` | Primary authentication token for the Twitter session |
| `ct0` | CSRF token required for API requests |

These cookies are extracted and stored as `twitter_auth_token` and `twitter_ct0` in Agent Reach's local configuration, as defined in [`agent_reach/config.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/config.py) at lines 107–108.

---

## Exporting Cookies from Your Browser

The recommended method uses the **Cookie-Editor** extension available for Chrome and Edge.

1. Install Cookie-Editor from the Chrome Web Store or Edge Add-ons store.

2. Navigate to `https://x.com` (or `https://twitter.com`) and log into your account.

3. Click the Cookie-Editor extension icon, then select **Export → Header String**.

4. Copy the resulting string — it will resemble:

```

auth_token=xxxxxxxxxxxx; ct0=yyyyyyyyyyyy; other_cookie=zzz…

```

Detailed visual instructions are documented in [`docs/cookie-export.md`](https://github.com/Panniantong/Agent-Reach/blob/main/docs/cookie-export.md) at lines 21–27.

---

## Configuring Cookies in Agent Reach

### Basic Configuration Command

Pass the exported cookie string directly to the configure command:

```bash
agent-reach configure twitter-cookies "auth_token=ABC123; ct0=DEF456; guest_id=v1%3A1690000000"

```

The parser in [`agent_reach/cli.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/cli.py) (`_parse_twitter_cookie_input` at lines 1248–1365) extracts only the `auth_token` and `ct0` values, ignoring extraneous cookies.

### Verifying the Configuration

Check that both values were stored correctly:

```bash
agent-reach doctor | grep -E "twitter_auth_token|twitter_ct0"

```

Note: The `doctor` command verifies the configuration keys exist but does not execute an actual `twitter status` call to test live connectivity.

---

## Accepted Cookie Input Formats

The `_parse_twitter_cookie_input` function in [`agent_reach/cli.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/cli.py) accepts two representations:

| Format | Example | Parser Behavior |
|--------|---------|---------------|
| **Semicolon-separated header string** | `auth_token=xxx; ct0=yyy; …` | Extracts `auth_token=` and `ct0=` key-value pairs anywhere in the string |
| **Space-separated tokens** | `xxx yyy` | Treats first token as `auth_token`, second as `ct0` |

Both formats ignore additional data — extra cookies in a header string or additional tokens in space-separated input are discarded.

---

## Running Twitter Commands

### Using Agent Reach's Wrapper (Recommended)

When you run Twitter commands through Agent Reach, environment variables are automatically injected:

```bash
agent-reach run twitter search "agent reach" -n 3

```

The channel implementation in [`agent_reach/channels/twitter.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/twitter.py) (lines 23–31) reads the stored configuration and sets `TWITTER_AUTH_TOKEN` and `TWITTER_CT0` for the subprocess.

### Using twitter-cli Directly

For direct `twitter` invocations, export the variables manually:

```bash
TWITTER_AUTH_TOKEN=ABC123 TWITTER_CT0=DEF456 twitter search "open-source AI" -n 5

```

### Legacy Environment Sync

Add `--sync-legacy-twitter` during configuration to additionally write the cookies to the legacy `twitter-cli` environment:

```bash
agent-reach configure twitter-cookies "$COOKIE_STRING" --sync-legacy-twitter

```

This enables plain `twitter …` calls without manual environment variable management.

---

## Complete Configuration Example

```bash

# 1. Export cookies with Cookie-Editor and copy the header string

COOKIE_STRING="auth_token=ABC123; ct0=DEF456; guest_id=v1%3A1690000000"

# 2. Store in Agent Reach configuration

agent-reach configure twitter-cookies "$COOKIE_STRING"

# 3. Verify configuration

agent-reach doctor | grep -E "twitter_auth_token|twitter_ct0"

# 4. Execute Twitter search through Agent Reach

agent-reach run twitter search "agent reach" -n 3

# 5. Or call twitter-cli directly with manual exports

TWITTER_AUTH_TOKEN=ABC123 TWITTER_CT0=DEF456 twitter search "agent reach" -n 3

```

---

## Key Source Files

| File | Lines | Purpose |
|------|-------|---------|
| [`agent_reach/cli.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/cli.py) | 1248–1365 | Cookie parsing logic (`_parse_twitter_cookie_input`) |
| [`agent_reach/config.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/config.py) | 107–108 | Configuration key definitions (`twitter_auth_token`, `twitter_ct0`) |
| [`agent_reach/channels/twitter.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/channels/twitter.py) | 23–31 | Environment variable injection for Twitter subprocesses |
| [`docs/install.md`](https://github.com/Panniantong/Agent-Reach/blob/main/docs/install.md) | 149–157 | User-facing `configure twitter-cookies` documentation |
| [`docs/cookie-export.md`](https://github.com/Panniantong/Agent-Reach/blob/main/docs/cookie-export.md) | 21–27 | Cookie-Editor export instructions |

---

## Summary

- **Two cookies required**: `auth_token` and `ct0` exported from an active X/Twitter browser session.
- **Two input formats accepted**: semicolon-separated header strings or space-separated token pairs.
- **Configure with**: `agent-reach configure twitter-cookies "auth_token=xxx; ct0=yyy"`.
- **Verify with**: `agent-reach doctor` to confirm keys are stored.
- **Execute via**: `agent-reach run twitter …` for automatic environment setup, or manual `TWITTER_AUTH_TOKEN=xxx TWITTER_CT0=yyy twitter …` for direct CLI usage.
- **Implementation**: Parsing logic resides in [`agent_reach/cli.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/cli.py) with configuration management in [`agent_reach/config.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/config.py).

---

## Frequently Asked Questions

### What happens if my cookie string contains extra cookies?

Agent Reach's parser ignores any additional cookies. Only `auth_token` and `ct0` values are extracted and stored; all other key-value pairs in a header string are discarded without error.

### Can I configure Twitter cookies without the Cookie-Editor extension?

Yes. Any method that obtains the raw `auth_token` and `ct0` values works. You can manually construct a space-separated string (`"token_value ct0_value"`) or semicolon-separated format — both are accepted by the parser in [`agent_reach/cli.py`](https://github.com/Panniantong/Agent-Reach/blob/main/agent_reach/cli.py).

### Why does `agent-reach doctor` not test actual Twitter connectivity?

The `doctor` command only validates that configuration keys exist in the local config file. It does not invoke `twitter status` or make live API calls to avoid rate limiting and unnecessary authentication attempts during routine diagnostics.

### How do I update cookies after they expire?

Re-export fresh cookies from your browser and rerun `agent-reach configure twitter-cookies "new_auth_token=xxx; new_ct0=yyy"`. The configuration command overwrites existing values, so no manual deletion is required.