Agent Reach Skill Registration System and Supported Platforms Explained

Agent Reach exposes its 13-platform internet access capabilities to AI agents via a file-based skill registration system that installs SKILL.md and reference documents into OpenClaw, Claude Code, or generic .agents directories.

Agent Reach is a Python library and CLI tool that routes AI-agent requests to 13 internet platforms including Twitter/X, Reddit, YouTube, and GitHub. The skill registration system allows the tool to expose its capabilities to agent platforms by installing structured documentation into specific skill directories. Understanding this registration flow and the supported platform channels is essential for integrating Agent Reach into your AI agent workflow.

How Skill Registration Works

The skill registration system operates through pure file operations, copying packaged resources from the agent_reach/skill/ directory into agent-specific folders. This "glue-layer" approach avoids external commands and ensures compatibility across different agent platforms.

Installing Skills for Agent Platforms

When you run the install command, the CLI invokes _install_skill() from agent_reach/cli.py to set up the skill files:

python -m agent_reach.cli skill --install

The installation process follows these steps:

  1. Locates the packaged skill resources in agent_reach/skill/
  2. Reads SKILL.md with locale-awareness via _skill_resource_name()
  3. Iterates over a priority list of known skill directories:
    • ~/.agents/skills (generic)
    • ~/.openclaw/skills (OpenClaw)
    • ~/.claude/skills (Claude Code)
  4. Creates agent-reach/ in the first existing directory and writes SKILL.md
  5. Copies the references/ folder containing per-platform command guides

The SKILL.md File and References

The SKILL.md file serves as the machine-readable contract that tells agents what capabilities Agent Reach provides. According to the source code in agent_reach/skill/SKILL_en.md, this document describes the available commands and routing capabilities. The references/ subdirectory contains supplemental documentation for each of the 13 supported platforms.

Uninstalling Skills

To remove the skill from all agent directories, the _uninstall_skill() function deletes the entire agent-reach directory from every known skill location:

python -m agent_reach.cli skill --uninstall

This leaves no trace in the agent's skill path, ensuring clean removal across OpenClaw, Claude Code, and generic .agents installations.

Supported Platforms and Channel Architecture

Agent Reach supports 13 internet platforms, each implemented as a channel that inherits from a common base class. The architecture ensures consistent behavior across disparate platforms while allowing platform-specific optimizations.

The Channel Base Class

All channels inherit from the abstract Channel class defined in agent_reach/channels/base.py. This base provides:

  • ordered_backends(config) – Respects user overrides like twitter_backend=excli
  • check(config) – Runs lightweight probes via agent_reach.probe and sets self.active_backend

Every concrete channel must implement four key methods: can_handle, read, search, and check. The test suite in tests/test_channel_contracts.py enforces this API contract across all implementations.

The 13 Supported Platforms

Each platform lives in its own file within agent_reach/channels/:

Platform File Description
YouTube youtube.py Video platform with subtitle retrieval via yt-dlp
Bilibili bilibili.py Chinese video site using bili-cli
XiaoHongShu xiaohongshu.py Social media platform preferring OpenCLI backend
Xiaoyuzhou xiaoyuzhou.py Podcast platform with transcript extraction
Twitter/X twitter.py Micro-blogging supporting twitter-cli and opencli
Reddit reddit.py Discussion forums via OpenCLI or rdt-cli
LinkedIn linkedin.py Professional networking platform
V2EX v2ex.py Chinese tech community with API-based fetch
Xueqiu xueqiu.py Stock information platform
GitHub github.py Code hosting wrapping the gh CLI
RSS rss.py Feed reader using feedparser
Exa Search exa_search.py General web search via Exa AI
Web web.py Generic page retrieval via curl and Jina AI reader

Routing and Backend Selection

The Core class in agent_reach/core.py serves as the dispatcher, mapping URLs and queries to the appropriate channel based on pattern matching.

The Core Router

When processing requests, Core inspects the input URL or query string and selects the appropriate channel. For example, YouTube URLs route to the YouTube channel, while generic searches route to Exa Search or Web channels.

from agent_reach.core import Core

core = Core()
transcript = core.read("https://www.youtube.com/watch?v=abcd1234")
print(transcript[:200])  # First 200 characters of subtitles

The router automatically calls channel.check() to verify backend availability before executing the request.

Health Checks with Doctor

The doctor command in agent_reach/doctor.py runs health checks for all channels, reporting which backend is active for each:

python -m agent_reach.cli doctor --json

This outputs a JSON map like { "twitter": {"status":"ok","backend":"twitter-cli"}, ... }, informing the skill's routing table which backends are available for use.

Practical Usage Examples

Routing Cross-Platform Searches

To search across multiple platforms simultaneously:

from agent_reach.core import Core

core = Core()
result = core.search("open source licensing trends")
print(result)  # Uses Exa for web search and GitHub for code references

Checking Channel Health

Verify all backends are configured correctly:

python -m agent_reach.cli doctor

This iterates through all 13 channels and reports which active_backend is selected for each platform.

Summary

  • Agent Reach provides a file-based skill registration system that installs SKILL.md and reference documents into ~/.agents/skills, ~/.openclaw/skills, or ~/.claude/skills.
  • The 13 supported platforms include Twitter/X, Reddit, YouTube, GitHub, Bilibili, XiaoHongShu, Xiaoyuzhou, LinkedIn, V2EX, Xueqiu, RSS, Exa Search, and generic Web.
  • Each platform implements a channel class with can_handle, read, search, and check methods defined in agent_reach/channels/base.py.
  • The Core router automatically selects appropriate channels based on URL patterns or query intent.
  • The doctor command validates backend availability and informs the skill's routing decisions.

Frequently Asked Questions

How do I install the Agent Reach skill for Claude Code?

Run python -m agent_reach.cli skill --install. The _install_skill() function in agent_reach/cli.py automatically detects the presence of ~/.claude/skills and copies SKILL.md along with the references/ directory into ~/.claude/skills/agent-reach/.

What happens if multiple agent platforms are installed?

The installation process checks a priority list: generic .agents, then OpenClaw, then Claude Code. It installs to the first existing directory found. To install across all platforms simultaneously, you would need to create the missing directories before running the install command.

Which backends are required for the YouTube channel?

The YouTube channel in agent_reach/channels/youtube.py retrieves subtitles using yt-dlp as its primary backend. If yt-dlp is not available, the channel's check() method will report the backend as unavailable, and the Core router will handle the failure gracefully.

Can I add custom platforms to Agent Reach?

While the current architecture supports 13 fixed platforms, you could extend the system by creating a new file in agent_reach/channels/ that inherits from the Channel base class in agent_reach/channels/base.py and implements the required can_handle, read, search, and check methods. The Core router would automatically pick up the new channel if it follows the existing naming conventions.

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 →