Skip to main content

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.

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.

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 files

Supported by

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