원클릭으로
telegram
Send notifications and messages via Telegram bot API
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
메뉴
Send notifications and messages via Telegram bot API
Codex 또는 Claude로 설치 이 Prompt를 복사해 Codex, Claude 또는 다른 어시스턴트에 붙여 넣으면 Skill 페이지를 검토하고 설치를 진행할 수 있습니다.
SOC 직업 분류 기준
| name | telegram |
| description | Send notifications and messages via Telegram bot API |
IMPORTANT: Before using any Telegram commands, source the local .env file:
source .skill.config
Credentials are stored in .skill.config (gitignored):
TELEGRAM_BOT_TOKEN=...
TELEGRAM_CHAT_ID=... # Default chat (legacy, still works)
Chat aliases are stored in telegram-chats.json (gitignored):
{
"chats": {
"default": { "id": "123456789", "name": "Personal", "description": "Default notifications" },
"alerts": { "id": "-100987654321", "name": "Alerts", "description": "Critical alerts" },
"house": { "id": "-4972420459", "name": "House Common", "description": "House group" }
}
}
jq -r '.chats.house.id' skills/telegram/telegram-chats.json
jq -r '.chats | to_entries[] | "\(.key): \(.value.name) (\(.value.id))"' skills/telegram/telegram-chats.json
source .skill.config && curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-d "chat_id=$TELEGRAM_CHAT_ID" \
-d "text=Hello from OpenCode!"
source .skill.config && CHAT_ID=$(jq -r '.chats.house.id' skills/telegram/telegram-chats.json) && \
curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-d "chat_id=$CHAT_ID" \
-d "text=Hello House!"
source .skill.config && for chat in default house; do
CHAT_ID=$(jq -r ".chats.$chat.id" skills/telegram/telegram-chats.json)
curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-d "chat_id=$CHAT_ID" \
-d "text=Broadcast message!" &
done
wait
source .skill.config && curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-d "chat_id=$TELEGRAM_CHAT_ID" \
-d "parse_mode=Markdown" \
-d "text=*Bold* and _italic_ and \`code\`"
source .skill.config && curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-d "chat_id=$TELEGRAM_CHAT_ID" \
-d "parse_mode=HTML" \
-d "text=<b>Bold</b> and <i>italic</i> and <code>code</code>"
source .skill.config && curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-d "chat_id=$TELEGRAM_CHAT_ID" \
-d "parse_mode=Markdown" \
-d "text=Check out [this deal](https://facebook.com/marketplace/item/123)"
source .skill.config && curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-d "chat_id=$TELEGRAM_CHAT_ID" \
-d "parse_mode=Markdown" \
--data-urlencode "text=*New Deals Found*
1. \$50 - Vintage Poster [View](link1)
2. \$30 - Movie Poster [View](link2)"
source .skill.config && curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getMe" | jq
source .skill.config && echo "Token: ${TELEGRAM_BOT_TOKEN:0:10}... Chat: $TELEGRAM_CHAT_ID"
jq '.chats' skills/telegram/telegram-chats.json
\ before _, *, `, [ if they're literal--data-urlencode for messages with special chars- (group/channel)-100 for supergroups/newbotbot, e.g., "myopencode_bot")curl -s "https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates" | jq '.result[0].message.chat.id'
curl -s "https://api.telegram.org/bot<YOUR_TOKEN>/getUpdates" | jq '.result[] | select(.message.chat.type != "private") | {title: .message.chat.title, id: .message.chat.id}'
Add to .skill.config:
TELEGRAM_BOT_TOKEN=your_token_here
TELEGRAM_CHAT_ID=your_default_chat_id_here
cp skills/telegram/telegram-chats.example.json skills/telegram/telegram-chats.json
Then edit telegram-chats.json to add your chats:
{
"chats": {
"default": {
"id": "YOUR_PERSONAL_CHAT_ID",
"name": "Personal",
"description": "My personal notifications"
},
"alerts": {
"id": "GROUP_CHAT_ID",
"name": "Alerts Group",
"description": "System alerts"
}
}
}
# Test default
source .skill.config && curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-d "chat_id=$TELEGRAM_CHAT_ID" \
-d "text=OpenCode connected!"
# Test named chat
source .skill.config && CHAT_ID=$(jq -r '.chats.house.id' skills/telegram/telegram-chats.json) && \
curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-d "chat_id=$CHAT_ID" \
-d "text=House chat connected!"
source .skill.config && curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getUpdates" | jq '.result[-1].message.chat'
telegram-chats.jsonsource .skill.config && curl -s "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/getUpdates" | \
jq '[.result[].message.chat] | unique_by(.id) | .[] | {id, title: (.title // .first_name), type}'
For complex scripts, define a helper:
telegram_send() {
local chat_alias="${1:-default}"
local message="$2"
local parse_mode="${3:-Markdown}"
source .skill.config
local chat_id=$(jq -r ".chats.$chat_alias.id" skills/telegram/telegram-chats.json)
curl -s -X POST "https://api.telegram.org/bot$TELEGRAM_BOT_TOKEN/sendMessage" \
-d "chat_id=$chat_id" \
-d "parse_mode=$parse_mode" \
--data-urlencode "text=$message"
}
# Usage:
telegram_send "house" "Hello from the house chat!"
telegram_send "bargains" "*New deal found!*" "Markdown"
Create new OpenCode agents with a gpt-5.2-codex default.
Create OpenCode custom commands for repeatable tasks.
Create targeted Cal links for specific people or teams
Use Chrome MCP to verify OpenWork UI flows, especially any feature that touches remote behavior. Triggers when user mentions: - "test with chrome mcp" - "ui verification" - "remote behavior test"
Start the OpenWork dev stack via Docker and verify real user flows via Chrome MCP. Triggers when user mentions: - "dev-up.sh" - "docker dev stack" - "verify in chrome mcp" - "test the real flow"
Run owpenbot/openwrk integration tests with Telegram test tokens. Triggers when user mentions: - "owpenbot tests" - "telegram test tokens" - "openwrk integration test"