Files
librefang-registry/channels
Evan d43077afa9 fix(providers): remove ~anthropic, skip ~ prefixes in sync script (#69)
* fix(providers): remove ~anthropic, skip ~ prefixes in sync script

OpenRouter uses ~ prefixes for internal auto-routing aliases (e.g. ~anthropic).
These are not real providers — they already route through openrouter.toml.
The generated ~anthropic.toml was confusing (looked like a stale backup)
and redundant with the existing openrouter provider.

- Delete providers/~anthropic.toml
- Skip provider IDs starting with ~ in sync-pricing.py --create-missing

* fix(providers): remove morph, aider, kwaipilot

- morph: specialized code-editing/patching tool, not a general LLM provider
- aider: CLI meta-tool wrapper (base_url empty), redundant with claude-code/codex-cli/gemini-cli/qwen-code
- kwaipilot: Kwai internal coding assistant routed via OpenRouter, niche

* fix(sync): add morph/aider/kwaipilot to SKIP_PROVIDERS to prevent re-creation

* feat(sync): merge OpenRouter-only providers into openrouter.toml

Instead of generating standalone .toml files that just wrap the OpenRouter
endpoint, merge their models directly into openrouter.toml with the
standard 'openrouter/{provider}/{model}' ID convention.

- Add _build_model_fields() and _model_lines() helpers to deduplicate
  model rendering between standalone and merged paths
- Add merge_into_openrouter() that appends new models idempotently
- generate_provider_toml() now only runs for providers in PROVIDER_API
- --create-missing routes OpenRouter-only providers to merge_into_openrouter

* fix(providers): remove 14 OpenRouter-only standalone files

These providers have no direct public API and all route through
openrouter.ai/api/v1. Per the new sync-pricing.py policy, their models
will be merged into openrouter.toml on the next CI run instead of
living in separate files that just wrap the OpenRouter endpoint.

Removed: allenai, deepcogito, essentialai, inclusionai, inflection,
liquid, meituan, nex-agi, nousresearch, prime-intellect, relace,
switchpoint, tngtech, writer

* fix(providers): remove 7 niche providers with no driver support

No dedicated LLM driver code exists for these providers — they rely
purely on OpenAI-compatible passthrough with no special handling.
Removing them reduces registry noise; users can still reach them via
openrouter.toml if needed.

Removed: microsoft, ibm-granite, xiaomi, upstage, inception, aion-labs, arcee-ai

* fix(providers): remove ai21, chutes, venice

All three use ApiFormat::OpenAI with no special handling — pure passthrough.
No registry entry needed; users can reach them via openrouter.toml or by
adding a custom provider.

* docs(providers): rewrite README with full provider catalog and inclusion criteria

- List all 46 providers grouped by category with descriptions
- Document why each provider exists (direct API, unique endpoint, dedicated driver, local, CLI)
- Add inclusion criteria section explaining when to create standalone files vs merging into openrouter.toml
- Document sync script routing logic
- Update model counts: 49→46 providers, 339→232 models

* docs: add comprehensive READMEs for all registry sections + deepinfra provider

- agents/README.md: 32 agents across 7 categories with capability field reference
- channels/README.md: 44 channels across 5 categories with protocol reference table
- hands/README.md: 18 hands across 5 categories with HAND.toml format guide
- mcp/README.md: 33 MCP servers across 5 categories with transport/auth format
- plugins/README.md: 12 plugins with hook protocol documentation
- skills/README.md: 60 skills across 9 categories with SKILL.md format guide
- providers/deepinfra.toml: add DeepInfra serverless inference (5 models)
2026-04-24 00:02:33 +09:00
..

Channel Adapters Registry

Channel adapters connect LibreFang agents to external messaging platforms. Each adapter in this directory is a flat .toml file describing the platform, its communication protocol, and any credentials required to operate.

Once a channel is configured, agents can receive messages from and send messages to that platform without any code changes — the adapter handles protocol translation.

File Format

Each channel is a single .toml file. The filename (without .toml) must match the id field.

id = "telegram"
name = "Telegram"
description = "Telegram Bot API adapter for sending and receiving messages"
category = "messaging"             # messaging | enterprise | social | developer | iot
tags = ["popular"]
icon = "lucide:smartphone"
protocol = "bot-api"               # see Protocol Reference below

[i18n.zh]
name = "Telegram"
description = "Telegram Bot API 适配器,收发消息"

[metadata]
url = "https://telegram.org"
docs = "https://core.telegram.org/bots/api"

Protocol Reference

Protocol Description
bot-api Platform-specific bot HTTP API (e.g. Telegram Bot API)
websocket Long-lived WebSocket connection (e.g. Slack RTM, Discord Gateway)
webhook Agent receives POST requests from the platform
rest-api Polling or push via generic HTTP REST
imap Email protocols (IMAP for receive, SMTP for send)
irc Internet Relay Chat protocol
matrix Matrix client-server API
mqtt MQTT pub/sub protocol for IoT messaging
xmpp Extensible Messaging and Presence Protocol

Configuring a Channel

# List all available channel adapters
librefang catalog channels

# Install a channel adapter
librefang channel install telegram

# Configure credentials for a channel
librefang channel configure telegram

# Attach a channel to an agent
librefang channel attach telegram --agent assistant

# List configured channels
librefang channel list

# Remove a channel
librefang channel remove telegram

All Channel Adapters (45 total)

Messaging

ID Name Protocol Description
discord Discord websocket Discord bot adapter for sending and receiving messages in Discord servers and channels
email Email imap Email adapter for sending and receiving messages via SMTP and IMAP protocols
irc IRC irc IRC adapter for connecting to Internet Relay Chat networks and channels
keybase Keybase rest-api Keybase adapter for encrypted messaging via the Keybase chat API
line LINE webhook LINE Messaging API adapter for sending and receiving messages on the LINE platform
matrix Matrix matrix Matrix adapter for decentralized messaging via the Matrix client-server API
messenger Facebook Messenger webhook Facebook Messenger adapter for sending and receiving messages via the Messenger Platform
nostr Nostr websocket Nostr adapter for publishing and reading events on the Nostr decentralized protocol
qq QQ websocket QQ bot adapter for messaging within Tencent QQ groups and channels
signal Signal rest-api Signal adapter for secure end-to-end encrypted messaging via Signal CLI
telegram Telegram bot-api Telegram Bot API adapter for sending and receiving messages
threema Threema rest-api Threema Gateway adapter for secure messaging via the Threema platform
viber Viber webhook Viber bot adapter for sending and receiving messages via the Viber Bot API
wechat WeChat rest-api WeChat Official Account adapter for messaging on the WeChat platform
whatsapp WhatsApp rest-api WhatsApp Business API adapter for sending and receiving messages on WhatsApp
xmpp XMPP xmpp XMPP adapter for messaging via the Extensible Messaging and Presence Protocol

Enterprise

ID Name Protocol Description
dingtalk DingTalk webhook DingTalk bot adapter for sending messages to DingTalk groups and conversations
feishu Feishu (Lark) webhook Feishu (Lark) bot adapter for messaging within the Feishu collaboration platform
flock Flock webhook Flock bot adapter for team messaging and notifications in Flock workspaces
google_chat Google Chat webhook Google Chat adapter for sending messages and cards to Google Workspace conversations
guilded Guilded websocket Guilded bot adapter for messaging in Guilded servers and channels
mattermost Mattermost websocket Mattermost adapter for team messaging and notifications in Mattermost workspaces
pumble Pumble webhook Pumble adapter for team messaging and notifications in Pumble workspaces
rocketchat Rocket.Chat rest-api Rocket.Chat adapter for messaging in self-hosted Rocket.Chat instances
slack Slack websocket Slack bot adapter for sending and receiving messages in Slack workspaces
teams Microsoft Teams webhook Microsoft Teams adapter for messaging and notifications in Teams channels
twist Twist rest-api Twist adapter for async team communication in Twist workspaces
webex Cisco Webex webhook Cisco Webex adapter for messaging and notifications in Webex spaces
wecom WeCom (WeChat Work) webhook WeCom (WeChat Work) adapter for enterprise messaging within WeCom organizations
zulip Zulip rest-api Zulip adapter for topic-based team messaging in Zulip organizations

Social

ID Name Protocol Description
bluesky Bluesky rest-api Bluesky AT Protocol adapter for posting and reading from the decentralized social network
linkedin LinkedIn rest-api LinkedIn adapter for posting updates and messages via the LinkedIn API
mastodon Mastodon rest-api Mastodon adapter for posting toots and reading timelines on Mastodon instances
reddit Reddit rest-api Reddit adapter for posting and reading content via the Reddit API
twitch Twitch irc Twitch adapter for reading and sending messages in Twitch stream chats

Developer

ID Name Protocol Description
discourse Discourse rest-api Discourse forum adapter for posting topics and replies via the Discourse API
gitter Gitter rest-api Gitter adapter for developer chat rooms linked to GitHub repositories
revolt Revolt websocket Revolt adapter for messaging in the open-source Revolt chat platform
webhook Webhook webhook Generic webhook adapter for sending and receiving messages via HTTP callbacks

IoT / Self-Hosted

ID Name Protocol Description
gotify Gotify rest-api Gotify adapter for sending push notifications to a self-hosted Gotify server
mqtt MQTT mqtt MQTT adapter for publishing and subscribing to messages on MQTT brokers
mumble Mumble websocket Mumble adapter for text messaging in Mumble voice communication servers
nextcloud Nextcloud Talk rest-api Nextcloud Talk adapter for messaging within self-hosted Nextcloud instances
ntfy ntfy rest-api ntfy adapter for sending push notifications via the ntfy pub-sub service

Adding a New Channel Adapter

  1. Create channels/<name>.toml — the filename must match the id field.
  2. Set category to one of: messaging, enterprise, social, developer, iot.
  3. Set protocol to the appropriate value from the Protocol Reference table above.
  4. Add [metadata] with url and docs links.
  5. Add [i18n.*] blocks for supported locales.
  6. Run python scripts/validate.py.
  7. Submit a PR.

See CONTRIBUTING.md for the full guide.