Skip to main content

a standalone library to bring discord.py developer experience to your python applications, focus on building your logic rather then an event manager or command manager

Project description

commandkit

a standalone library to bring discord.py developer experience to your python applications, focus on building your logic rather then an event manager or command manager

Features

  • Familiar Decorator API – Leverages the intuitive discord.py pattern for registering commands and events.
  • Automatic Type Conversion – Uses Python type hints to automatically convert input strings into integers, floats, or custom objects.
  • Asynchronous by Design – Built from the ground up for asyncio, allowing command and event handlers to run concurrently within your existing event loop.
  • Zero Bloat – A focused codebase with zero dependencies.

Installation

been tested in python 3.10

Run the following to install:

pip install commandkit

or

python -m pip install commandkit

if that didn't work, try replacing pip with pip3.

need help? or have bugs to report, let me know in here

Quick Examples

import asyncio
from commandkit import CommandLine, Greedy

cmder = CommandLine(prefix="!")

@cmder.command()
def add(a: int, b: int):
	"""Adds two numbers."""
	return a + b

@cmder.command()
async def announce(title: str, *, message: str):
	"""Capture the rest of the string as a single argument."""
	await asyncio.sleep(0.1)
	return f"[{title}] {message}"

async def main():
	# Sync command call
	res = await cmder.process_command("!add 10 20")
	print(res) # 30

	# Rest capture
	res = await cmder.process_command('!announce "System Alert" This is a test message.')
	print(res) # [System Alert] This is a test message.

if __name__ == "__main__":
	asyncio.run(main())

Event Management

CommandKit includes a standalone EventManager for dispatching async events.

from commandkit import EventManager
import asyncio

em = EventManager()

@em.event
async def on_message(arg):
	print(f"Event received: {arg}")

async def run_events():
	# dispatch("test") will trigger all "on_message" events
	await em.dispatch("message", "Hello World!")

asyncio.run(run_events())

Documentation

you can check commandkit docs here

Contributing

We value technical contributions and bug reports.

  • Issues: Open a ticket for bugs or feature requests.
  • PRs: Pull requests are welcome. Please ensure code follows PEP 8 standards.

License

CommandKit is distributed under the MIT License.

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

commandkit-0.3.0.tar.gz (12.3 kB view details)

Uploaded Source

Built Distribution

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

commandkit-0.3.0-py3-none-any.whl (12.0 kB view details)

Uploaded Python 3

File details

Details for the file commandkit-0.3.0.tar.gz.

File metadata

  • Download URL: commandkit-0.3.0.tar.gz
  • Upload date:
  • Size: 12.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for commandkit-0.3.0.tar.gz
Algorithm Hash digest
SHA256 d5c1c13535514c001e5ad04475882a32ea7136a7078b242198c8e9836da79ad8
MD5 7ea4856c7680a77eac60d11071f0fc12
BLAKE2b-256 052d60d682d780d5fed0bc0106184b571a4fda037af915a01b7314ccd8adb844

See more details on using hashes here.

File details

Details for the file commandkit-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: commandkit-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 12.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.14.3

File hashes

Hashes for commandkit-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 cbc01bd41f0ec9471a900c7ab558e199aa1487cf40fcf6016796b841fb4f4e1f
MD5 9338d7ee5b209f63630e8e5bf1b49bcf
BLAKE2b-256 27bd28a81f9c213ea5d247af5f451cc6a1aa2272292729ab194dbbaf4c51c163

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