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.

Metadata

Release files for concinno-skills-chat 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for concinno-skills-chat 0.1.0
File Size Uploaded
concinno_skills_chat-0.1.0.tar.gz 40.0 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for concinno-skills-chat 0.1.0
File Interpreter ABI Platform
concinno_skills_chat-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 54.6 kB

Release files / concinno_skills_chat-0.1.0.tar.gz

Download URL concinno_skills_chat-0.1.0.tar.gz
Size 40.0 kB
Tags Source
SHA-256 checksum
How to use checksums
21049c33d1591655bcdc71b15e8c27c7711cdf10a719f628cc828b955dc95d77
BLAKE2b-256 checksum
How to use checksums
fca2a637cab4e7a162db687e84ba707c90edf80d5b9db19bee4496396eed0bea
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release files / concinno_skills_chat-0.1.0-py3-none-any.whl

Download URL concinno_skills_chat-0.1.0-py3-none-any.whl
Size 14.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
f07bf44db1ef7aeeef16dd5ca897ccdf319e6c06db2ca3fee116f79809b4559a
BLAKE2b-256 checksum
How to use checksums
98b995466c23635d167bd3867c783a0f7e5fa80e66f08c39deabb5660ee6a607
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via twine/6.2.0 CPython/3.11.9

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page