Install
openclaw skills install signallinkForward trading alerts and webhook events from TradingView to Telegram instantly. No subscriptions, no middlemen.
openclaw skills install signallinkA lightweight, open-source bridge that receives webhook alerts (e.g. from TradingView) and forwards them as clean, formatted messages to a Telegram bot. No paid services, no third-party subscriptions — just deploy and route.
Use SignalLink when the user wants to:
/newbot and follow the prompts123456789:ABCdef...cp .env.example .env
Edit .env:
TELEGRAM_BOT_TOKEN=your_bot_token_here
TELEGRAM_CHAT_ID=your_chat_id_here
WEBHOOK_SECRET=your_secret_here # Optional but recommended
PORT=8000
With Docker (recommended):
docker compose up -d
With Python:
pip install -r requirements.txt
python -m App.main
Server starts at http://localhost:8000
| Method | Path | Description |
|---|---|---|
| GET | / | Health check |
| GET | /health | Detailed health status |
| POST | /webhook | Main endpoint — auto-detects signal format |
| POST | /webhook/raw | Raw key-value formatter for generic alerts |
When a user asks to forward trading signals or webhook alerts to Telegram:
TELEGRAM_BOT_TOKEN and TELEGRAM_CHAT_ID if not already set.env file using .env.example as a templatehttp://<server-ip>:8000/webhookWEBHOOK_SECRET and instruct the user to pass it as the X-Webhook-Secret headerIn TradingView, set the alert webhook URL to:
http://your-server-ip:8000/webhook
Set the alert message body to JSON:
{
"action": "buy",
"symbol": "XAUUSD",
"price": "{{close}}",
"interval": "{{interval}}",
"strategy": "My Strategy",
"sl": "2330.00",
"tp": "2370.00",
"lot": "0.1",
"message": "Signal confirmed."
}
| Field | Alias | Description |
|---|---|---|
action | signal | Signal direction: buy, sell, close, neutral |
symbol | ticker | Trading pair, e.g. XAUUSD, EURUSD, BTCUSD |
price | close | Entry or current price |
interval | timeframe | Chart timeframe, e.g. 1H, 4H, 1D |
strategy | strategy_name | Strategy name |
sl | stop_loss | Stop loss level |
tp | take_profit | Take profit level |
lot | quantity | Lot size or quantity |
message | msg | Custom note or description |
Send a test webhook with curl:
curl -X POST http://localhost:8000/webhook \
-H "Content-Type: application/json" \
-H "X-Webhook-Secret: your_secret_here" \
-d '{
"action": "buy",
"symbol": "XAUUSD",
"price": "2345.50",
"interval": "1H",
"sl": "2330.00",
"tp": "2370.00"
}'
🟢 BUY Signal
🥇 Pair: XAUUSD
💰 Price: 2345.50
⏱️ Timeframe: 1H
🧠 Strategy: EMA Crossover
🛑 Stop Loss: 2330.00
🎯 Take Profit: 2370.00
📦 Lot / Qty: 0.1
📝 Signal confirmed.
─────────────────────
⚡ Powered by SignalLink
SignalLink/
├── App/
│ ├── main.py # FastAPI entry point
│ ├── webhook.py # Request handler & auth
│ ├── formatter.py # Payload → Telegram message
│ ├── telegram.py # Telegram Bot API client
│ └── config.py # Environment config
├── Examples/
│ ├── tradingview_payload.json
│ └── custom_payload.json
├── .env.example
├── requirements.txt
├── Dockerfile
└── docker-compose.yml
WEBHOOK_SECRET in production to prevent unauthorized requestsTELEGRAM_BOT_TOKEN publicly