Understanding the Agent Reach Channel Tier System: Tier 0, 1, and 2 Explained

Agent Reach organizes its platform channels into three tiers—0 (zero-config), 1 (free key required), and 2 (full setup required)—that indicate how much configuration a user must provide before the channel becomes operational.

The Agent Reach channel tier system is a classification mechanism used in the Panniantong/Agent-Reach repository to communicate setup requirements for each platform integration. Defined in agent_reach/channels/base.py, the tier attribute is an integer (0, 1, or 2) stored on every channel class that determines whether the channel works out-of-the-box, requires a free credential, or needs complex registration.

How the Three Tiers Work

The tier system operates as a simple contract: lower numbers mean less friction. Each concrete channel implementation in agent_reach/channels/*.py sets its own tier class attribute, which is then validated by unit tests in tests/test_channel_contracts.py to ensure values remain within the 0–2 range.

Tier 0: Zero-Configuration Channels

Tier 0 channels are zero-config and work immediately after installing Agent Reach. These channels rely on built-in tools like yt-dlp, system utilities, or public web interfaces that do not require authentication.

Channels in this tier include:

You can invoke these channels without supplying API keys, cookies, or additional binaries.

Tier 1: Free Key Required

Tier 1 channels require a free key—typically a browser cookie export or lightweight API token that costs nothing but must be supplied manually. These channels cannot operate until the user adds the credential to the Agent Reach configuration file or an environment variable.

Channels in this tier include:

Platform-specific setup guides in agent_reach/guides/ (such as setup-twitter.md) document the exact cookie format and extraction steps required for each Tier 1 channel.

Tier 2: Full Setup Required

Tier 2 channels demand full setup, including developer account registration, OAuth application creation, or installation of auxiliary binaries. These represent the highest friction category and often involve multi-step wizard flows.

Channels in this tier include:

The agent_reach/guides/setup-linkedin.md file provides walkthroughs for completing the necessary registration and app creation workflows required to activate Tier 2 channels.

Using the Doctor Command to Verify Tiers

The doctor command (python -m agent_reach.cli doctor) consults the Channel.tier attribute to generate a health report. It groups channels by tier and flags any missing credentials, producing output similar to:

python -m agent_reach.cli doctor

# Output:

# Tier 0 (zero-config): 9 channels → ok

# Tier 1 (needs free key): 6 channels → warn (missing cookies)

# Tier 2 (needs setup): 2 channels → off (not configured)

This diagnostic tool, implemented in agent_reach/doctor.py, allows developers to quickly identify which channels are ready for immediate use and which require additional configuration steps.

Checking Channel Requirements Programmatically

You can inspect tier values and validation status programmatically using the Agent Reach API:


# List all channels and their tiers

from agent_reach.core import get_all_channels

for ch in get_all_channels():
    print(f"{ch.name:12} – tier {ch.tier}")

To check a specific channel's requirements:

from agent_reach.channels.twitter import Twitter

status, msg = Twitter().check()
print(status, msg)   # -> "warn", "cookie"

The check() method returns a status string ("ok", "warn", or "off") and a message indicating the specific missing requirement (e.g., "cookie" for Tier 1 channels).

Summary

  • Tier 0 channels require zero configuration and work immediately using built-in tools or public APIs.
  • Tier 1 channels require a free key or cookie export that must be manually added to the Agent Reach configuration.
  • Tier 2 channels require extensive setup such as OAuth registration or additional binary installation.
  • The doctor command uses the tier attribute defined in agent_reach/channels/base.py to report health status grouped by configuration level.
  • All tier values are enforced to be 0–2 by the test suite in tests/test_channel_contracts.py.

Frequently Asked Questions

How do I determine which tier a specific channel requires?

Inspect the tier class attribute on the channel instance or use the get_all_channels() function from agent_reach.core to list all channels with their assigned tiers. Alternatively, run the python -m agent_reach.cli doctor command, which groups output by tier and displays the status of every available channel.

What is the difference between Tier 1 and Tier 2 channels?

Tier 1 channels only require a free credential such as a browser cookie or lightweight token that can be exported without registration. Tier 2 channels require more involved setup, such as creating a developer account, registering an OAuth application, or installing additional software dependencies before the channel becomes usable.

How do I configure a Tier 1 channel like Twitter?

Export the required cookies from your browser and add them to the Agent Reach configuration file or environment variables as specified in agent_reach/guides/setup-twitter.md. Once the credential is present, run the doctor command to verify the channel status changes from "warn" to "ok".

Can I use Tier 0 channels without installing any API keys?

Yes. Tier 0 channels are designed to function immediately after installing the Panniantong/Agent-Reach package. They rely on public interfaces, built-in Python libraries, or system utilities like yt-dlp that do not require authentication tokens or external API access.

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:

Share the following with your agent to get started:
curl -s "https://instagit.com/install.md"

Works with
Claude Codex Cursor VS Code OpenClaw Any MCP Client

Maintain an open-source project? Get it listed too →