A Python framework · runs on AWS Lambda

Discord bots.
No server.

Your bot ships as a single AWS Lambda function. cordless provisions it, wires the endpoint, and registers your commands, so you write handlers, not infrastructure. Nothing runs between interactions.

Get started
$pip install cordless
Interaction pathFig. 1
POST /interactionsinvokeasync200 · replyedit replycold start · +12 mscold start · +18 msDiscorduser runs a commandFunction URLlambda url · api gwhandler λyour codeworker λasync · slow work
idle · 0 ms compute · $0.00

Specification

No server

Runs entirely on AWS Lambda. No process to keep alive, nothing to monitor, no idle cost; you pay only when interactions happen.

One-command deploy

cordless deploy packages your code, creates the Lambda, wires API Gateway, sets up IAM, and registers your commands. One step, start to finish.

Deferred interactions

Commands that outlast Discord's 3-second window stay responsive. cordless does the async worker-Lambda handoff and keeps the reply updated as work completes.

Components v2

First-class Containers, Sections, MediaGallery, and every modern UI Kit primitive. Typed objects, not raw dicts.

lambda_function.pySheet 01
from cordless import Cordless

bot = Cordless()

@bot.command("hello", description="Say hello")
async def hello(ctx, name: str = "world"):
    await ctx.send(f"Hello, {name}!")

handler = bot.handler()
cordless deploySheet 02
$ cordless deploy
→ packaging function...
→ provisioning lambda...
→ wiring api gateway...
→ registering commands...
https://abc123.execute-api.eu-west-2.amazonaws.com/

Cut the cord.

Install cordless, scaffold a project, and deploy in minutes.

$pip install cordless
Quickstart →