channel-bridge

Installation
SKILL.md

channel-bridge

Purpose

This skill facilitates cross-channel messaging routing between Signal, Telegram, and Discord. It handles message formatting (e.g., converting Markdown to plain text), differentiates between simple message sends and session-based transmissions, supports broadcasting to multiple channels, and manages reactions across platforms.

When to Use

Use this skill when integrating disparate messaging apps, such as forwarding alerts from Signal to Discord for team notifications, broadcasting updates across Telegram and Signal for distributed teams, or routing user reactions (e.g., likes) from Discord to Signal for unified feedback tracking. Apply it in scenarios requiring real-time cross-platform communication without manual intervention.

Key Capabilities

  • Message Formatting: Automatically converts content formats; e.g., use Discord's Markdown syntax and strip it for Signal via the format flag.
  • Routing Options: Distinguishes between message (simple send) and sessions_send (persistent session-based routing) using API parameters like type: "message" or type: "sessions_send".
  • Broadcasting: Sends messages to multiple channels simultaneously; e.g., specify targets with a JSON array like ["signal:group1", "discord:channel2"].
  • Reactions Handling: Propagates reactions (e.g., emojis) across platforms; e.g., map Discord reactions to Signal reactions via a predefined config mapping.
  • Error Resilience: Includes retry logic for failed transmissions, with configurable thresholds.

Usage Patterns

Always initialize with authentication via environment variables (e.g., $SIGNAL_API_KEY, $TELEGRAM_BOT_TOKEN). For CLI, pipe inputs directly; for API, use HTTP requests with JSON payloads. Pattern 1: Single-channel routing—send a message from one platform to another. Pattern 2: Broadcast—specify multiple targets in a single command. Pattern 3: Reaction handling—monitor and forward reactions using webhooks. Validate inputs first (e.g., check message length limits per platform: Signal=4096 chars, Discord=2000 chars). For sessions, establish a persistent connection by including --session-id in commands.

Related skills
Installs
26
GitHub Stars
5
First Seen
Mar 7, 2026