How the Tier System Categorizes Channels in Agent-Reach

Agent-Reach classifies each platform channel into one of three tiers (0, 1, or 2) based on the amount of user configuration required before the channel becomes operational, ranging from zero-config tools to those requiring full API registration.

The Panniantong/Agent-Reach repository implements a tier-based classification system that helps developers understand exactly what setup is required before they can use a specific platform channel. This article explains how the tier system categorizes channels in Agent-Reach based on the source code implementation, including the specific configuration thresholds that distinguish each tier.

Understanding the Three-Tier Classification System

The tier system operates as a simple integer scale where lower values indicate less configuration overhead. Each tier represents a distinct threshold of user effort required to activate a channel.

Tier 0 – Zero-Configuration Channels

Tier 0 channels function immediately as long as the underlying CLI tool is present on the system. These require no API keys, tokens, or registration steps.

  • YouTube: Uses youtube-dl-style tools without API keys.
  • Web: Generic scraper using curl-like backends.
  • GitHub: Reads public repositories without authentication.

Tier 1 – Free-Key Required Channels

Tier 1 channels need freely available credentials, such as cookies or public tokens, but do not require full application registration.

  • Twitter: Requires an auth token or cookie, but no developer app.
  • Reddit: Uses a free token with no zero-config path available (as noted in the module docstring).

Tier 2 – Full Setup Required Channels

Tier 2 demands complete registration workflows, including OAuth flows and client-secret management.

  • LinkedIn: Requires a registered LinkedIn Developer app with OAuth credentials.

Where Tier Configuration is Defined in the Source Code

The tier attribute is declared as a class-level constant in the base channel implementation. In agent_reach/channels/base.py (lines 35-36), each channel subclass defines its tier attribute as an integer value.

Channel implementations then override this value to specify their classification:

Tier-Based Diagnostics and the Doctor Command

The diagnostic system leverages tier information to prioritize health checks. In agent_reach/doctor.py (lines 66-89), the code groups diagnostic results by the r["tier"] field to generate tier-specific summaries.

When you run the diagnostic command:

python -m agent_reach.cli doctor

The output organizes channels under headings like "Tier 0 – zero-config" and "Tier 1 – needs free key", allowing you to quickly identify which channels require immediate attention.

Working with Tiers Programmatically

You can inspect and filter channels by tier value in your own code.

Inspect a specific channel's tier:

from agent_reach.channels.twitter import TwitterChannel
print(TwitterChannel.tier)   # → 1

Filter channels by configuration requirements:

from agent_reach.channels import *
all_channels = [TwitterChannel(), RedditChannel(), YoutubeChannel()]
tier_0 = [ch for ch in all_channels if ch.tier == 0]
print([ch.name for ch in tier_0])   # ['youtube', 'web', 'github', ...]

Summary

  • The tier system in Agent-Reach uses three levels (0, 1, 2) to indicate configuration complexity.
  • Tier 0 requires only the presence of a CLI tool; Tier 1 needs free tokens; Tier 2 demands full API registration.
  • Configuration is defined in agent_reach/channels/base.py and implemented per channel in individual module files.
  • The doctor command in agent_reach/doctor.py uses tier data to prioritize diagnostic output.
  • Channels like YouTube, Web, and GitHub are Tier 0, while LinkedIn requires Tier 2 setup.

Frequently Asked Questions

What are the three tiers in Agent-Reach?

Agent-Reach uses Tier 0 for zero-config channels, Tier 1 for channels requiring free keys or tokens, and Tier 2 for channels needing full API registration with OAuth flows. This classification helps users understand setup requirements before attempting to use a specific platform integration.

How do I check which tier a channel belongs to?

Access the tier class attribute on any channel implementation. For example, TwitterChannel.tier returns 1, indicating it requires a free authentication token. You can also run the python -m agent_reach.cli doctor command to see all channels grouped by their tier classification.

Why does the tier system matter for troubleshooting?

The diagnostic tools in agent_reach/doctor.py use tier values to prioritize which channels need immediate user attention. Tier 0 channels are considered "ready" if the binary exists, while Tier 2 channels will flag as needing configuration until you complete the OAuth registration process.

Can a channel's tier change between versions?

While the tier is hardcoded as a class attribute in each channel file (such as agent_reach/channels/reddit.py), the maintainers could adjust these values in future releases if platform APIs change their authentication requirements. Always check the source code or documentation for the specific version you are running.

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 →