Skip to main content

Python SDK for Commandless relay API

Project description

commandless-relay (Python)

Official Python SDK for the Commandless relay API.

This package gives Python bots a simple client and a ready-to-use discord.py adapter.

Install

Core client:

pip install commandless-relay

With discord.py adapter support:

pip install "commandless-relay[discord]"

AI-only setup (no code)

Install and run from terminal, similar to the Node SDK flow:

pip install "commandless-relay[discord]"
commandless-discord

Set these environment variables first:

  • BOT_TOKEN - your Discord bot token
  • COMMANDLESS_API_KEY - API key created in Commandless dashboard
  • COMMANDLESS_SERVICE_URL (or SERVICE_URL) - optional, defaults to Commandless backend
  • BOT_ID - optional bot ID from dashboard (recommended)
  • COMMANDLESS_HMAC_SECRET - optional HMAC secret
  • COMMANDLESS_MENTION_REQUIRED - optional (true by default)

Quickstart (discord.py in code)

import os
import discord
from commandless_relay import RelayClient, use_discord_adapter

TOKEN = os.getenv("BOT_TOKEN")
API_KEY = os.getenv("COMMANDLESS_API_KEY")
BASE_URL = os.getenv("COMMANDLESS_SERVICE_URL") or os.getenv("SERVICE_URL")  # optional

intents = discord.Intents.default()
intents.message_content = True
intents.messages = True
intents.guilds = True

client = discord.Client(intents=intents)
relay = RelayClient(api_key=API_KEY, base_url=BASE_URL)  # base_url optional

use_discord_adapter(client, relay, mention_required=True)

@client.event
async def on_ready():
    print(f"Logged in as {client.user}")

client.run(TOKEN)

Environment variables

  • BOT_TOKEN - your Discord bot token
  • COMMANDLESS_API_KEY - API key created in Commandless dashboard
  • COMMANDLESS_SERVICE_URL (or SERVICE_URL) - optional, defaults to Commandless backend
  • BOT_ID - optional fixed bot id to lock config/persona
  • COMMANDLESS_HMAC_SECRET - optional HMAC secret
  • COMMANDLESS_MENTION_REQUIRED - optional (true by default)

Included components

  • RelayClient
    • send_event(event) -> Decision dict or None
    • register_bot(...) -> botId (optional flow)
    • heartbeat() (optional flow)
  • use_discord_adapter(client, relay, mention_required=True, execute=None)
    • binds an on_message listener
    • sends events to relay
    • executes reply actions by default
    • sends a clear message on billing rejection (402 / no subscription or credits)

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

commandless_relay-0.1.1.tar.gz (6.2 kB view details)

Uploaded Source

Built Distribution

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

commandless_relay-0.1.1-py3-none-any.whl (6.9 kB view details)

Uploaded Python 3

File details

Details for the file commandless_relay-0.1.1.tar.gz.

File metadata

  • Download URL: commandless_relay-0.1.1.tar.gz
  • Upload date:
  • Size: 6.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.9.6

File hashes

Hashes for commandless_relay-0.1.1.tar.gz
Algorithm Hash digest
SHA256 b67dd59c3f07d9e4d7c4311102b8348773fe71a0d525497fc7fb3301a78a72e8
MD5 efcf41ba6927204a20cae7b960b9b893
BLAKE2b-256 fd303e5726f4e7f271354d7da22494be0b4c623ad3ba929083c9b3462652a409

See more details on using hashes here.

File details

Details for the file commandless_relay-0.1.1-py3-none-any.whl.

File metadata

File hashes

Hashes for commandless_relay-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 4d05ff0de8d22a6e3c0173f97e6de9f382dc18d255997c19824d00ca38015423
MD5 82e9b2aadf69d23d6d2d10bd1360c819
BLAKE2b-256 6abf09e7861dd6d9a76092f4cf24c6e6ca5e3120eeb20ceef9ac7ae983b7c14d

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