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:
- Locates the packaged skill resources in
agent_reach/skill/ - Reads
SKILL.mdwith locale-awareness via_skill_resource_name() - Iterates over a priority list of known skill directories:
~/.agents/skills(generic)~/.openclaw/skills(OpenClaw)~/.claude/skills(Claude Code)
- Creates
agent-reach/in the first existing directory and writesSKILL.md - 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 liketwitter_backend=exclicheck(config)– Runs lightweight probes viaagent_reach.probeand setsself.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.py |
Discussion forums via OpenCLI or rdt-cli |
|
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.mdand 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, andcheckmethods defined inagent_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:
curl -s "https://instagit.com/install.md" Maintain an open-source project? Get it listed too →