Skip to main content

Chat platform agent skills (Slack/Discord/Telegram/LINE) for Concinno — native Python API, MCP fallback optional. MIT-licensed SDKs only.

Project description

concinno-skills-chat

Chat-platform agent skills for Concinno. Native Python API, MCP fallback optional. MIT / Apache-2.0 licensed SDKs only — we deliberately skip python-telegram-bot (GPL-3.0) to avoid copy-left contamination of the Concinno ecosystem.

Status

MVP (0.1.0) — four one-shot tools:

Tool class Platform Underlying SDK SDK licence
SlackPost Slack slack-sdk MIT
DiscordPost Discord discord.py MIT
TelegramSend Telegram aiogram MIT
LineSend LINE line-bot-sdk (v3) Apache-2.0

WhatsApp / Microsoft Teams are intentionally deferred until a maintained Python SDK with a permissive licence exists (as of 2026-04 the ecosystem is either unofficial or AGPL-adjacent).

Install

pip install concinno-skills-chat

All four SDKs are hard dependencies and pulled in automatically.

Credentials

Each platform's bot token lives under a well-known key in the Concinno CredentialStore, which reads (in order):

  1. Process runtime overrides via CredentialStore.set(...).
  2. Env var CONCINNO_CRED_<UPPER_KEY>.
  3. ~/.concinno/credentials.json.
Key Env var
slack_bot_token CONCINNO_CRED_SLACK_BOT_TOKEN
discord_bot_token CONCINNO_CRED_DISCORD_BOT_TOKEN
telegram_bot_token CONCINNO_CRED_TELEGRAM_BOT_TOKEN
line_channel_access_token CONCINNO_CRED_LINE_CHANNEL_ACCESS_TOKEN

Example ~/.concinno/credentials.json:

{
  "slack_bot_token": "xoxb-...",
  "discord_bot_token": "...",
  "telegram_bot_token": "123456:AAA...",
  "line_channel_access_token": "..."
}

If a token is missing the tool returns {"error": "no <service> credentials — set via CredentialStore or env ..."} rather than crashing.

Usage via Concinno ToolRegistry

When the consumer sets CONCINNO_LOAD_PLUGINS=1, the default registry auto-mounts every chat tool:

import os
os.environ["CONCINNO_LOAD_PLUGINS"] = "1"

from concinno.tools.registry import get_default_registry

reg = get_default_registry()
assert {"SlackPost", "DiscordPost", "TelegramSend", "LineSend"} <= set(
    reg.list_deferred()
)

slack = reg.get("SlackPost")
slack.call(action="send", channel="#general", text="hi from concinno")

Direct Python usage

from concinno_skills_chat import (
    SlackPost,
    DiscordPost,
    TelegramSend,
    LineSend,
)

SlackPost().call(action="send", channel="C12345", text="hi")
DiscordPost().call(action="send", channel_id=12345, content="hi")
TelegramSend().call(action="send", chat_id=12345, text="hi")
LineSend().call(action="push", user_id="U1234", text="hi")

All tools return {"ok": True, ...} on success or {"error": "..."} on failure — same shape as the other Concinno built-in tools. No exceptions escape the call() surface.

Concurrency

All four tools set is_concurrency_safe = False. Chat platform rate limits make serial calls the sane default; the Concinno scheduler will honour this automatically.

License

Apache-2.0. See LICENSE in the Concinno monorepo.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

concinno_skills_chat-0.1.0.tar.gz (40.0 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

concinno_skills_chat-0.1.0-py3-none-any.whl (14.6 kB view details)

Uploaded Python 3

File details

Details for the file concinno_skills_chat-0.1.0.tar.gz.

File metadata

  • Download URL: concinno_skills_chat-0.1.0.tar.gz
  • Upload date:
  • Size: 40.0 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.11.9

File hashes

Hashes for concinno_skills_chat-0.1.0.tar.gz
Algorithm Hash digest
SHA256 21049c33d1591655bcdc71b15e8c27c7711cdf10a719f628cc828b955dc95d77
MD5 b5232cfbaca670ac012d2e5b0bcd35ff
BLAKE2b-256 fca2a637cab4e7a162db687e84ba707c90edf80d5b9db19bee4496396eed0bea

See more details on using hashes here.

File details

Details for the file concinno_skills_chat-0.1.0-py3-none-any.whl.

File metadata

File hashes

Hashes for concinno_skills_chat-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 f07bf44db1ef7aeeef16dd5ca897ccdf319e6c06db2ca3fee116f79809b4559a
MD5 88457a2db08657296fce62aaeabd2b92
BLAKE2b-256 98b995466c23635d167bd3867c783a0f7e5fa80e66f08c39deabb5660ee6a607

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page