You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
Developer Anonymous 9c53a271a0 Forgot a quote 10 months ago
.github Update pyright version 1 year ago
discord Forgot a quote 10 months ago
docs things 10 months ago
examples Fix advanced startup example 2 years ago
tests Fix incorrect Select max option condition 12 months ago
.gitignore Add build folder to .gitignore 3 years ago
.readthedocs.yml Updated deprecated versioning in .readthedocs.yml 2 years ago
LICENSE Change copyright year to present 4 years ago
MANIFEST.in Add typing metadata 4 years ago
README.ja.rst Replace references to Python 3.6 with 3.8 in README 3 years ago
README.rst Replace references to Python 3.6 with 3.8 in README 3 years ago
pyproject.toml Remove aiodns from being used on Windows 10 months ago
requirements.txt Use fallback audioop package for Python v3.13 or higher 10 months ago
setup.py Move most static metadata to pyproject.toml 1 year ago

README.rst

discord.py
==========

.. image:: https://discord.com/api/guilds/336642139381301249/embed.png
:target: https://discord.gg/r3sSKJJ
:alt: Discord server invite
.. image:: https://img.shields.io/pypi/v/discord.py.svg
:target: https://pypi.python.org/pypi/discord.py
:alt: PyPI version info
.. image:: https://img.shields.io/pypi/pyversions/discord.py.svg
:target: https://pypi.python.org/pypi/discord.py
:alt: PyPI supported Python versions

A modern, easy to use, feature-rich, and async ready API wrapper for Discord written in Python.

Key Features
-------------

- Modern Pythonic API using ``async`` and ``await``.
- Proper rate limit handling.
- Optimised in both speed and memory.

Installing
----------

**Python 3.8 or higher is required**

To install the library without full voice support, you can just run the following command:

.. code:: sh

# Linux/macOS
python3 -m pip install -U discord.py

# Windows
py -3 -m pip install -U discord.py

Otherwise to get voice support you should run the following command:

.. code:: sh

# Linux/macOS
python3 -m pip install -U "discord.py[voice]"

# Windows
py -3 -m pip install -U discord.py[voice]


To install the development version, do the following:

.. code:: sh

$ git clone https://github.com/Rapptz/discord.py
$ cd discord.py
$ python3 -m pip install -U .[voice]


Optional Packages
~~~~~~~~~~~~~~~~~~

* `PyNaCl <https://pypi.org/project/PyNaCl/>`__ (for voice support)

Please note that when installing voice support on Linux, you must install the following packages via your favourite package manager (e.g. ``apt``, ``dnf``, etc) before running the above commands:

* libffi-dev (or ``libffi-devel`` on some systems)
* python-dev (e.g. ``python3.8-dev`` for Python 3.8)

Quick Example
--------------

.. code:: py

import discord

class MyClient(discord.Client):
async def on_ready(self):
print('Logged on as', self.user)

async def on_message(self, message):
# don't respond to ourselves
if message.author == self.user:
return

if message.content == 'ping':
await message.channel.send('pong')

intents = discord.Intents.default()
intents.message_content = True
client = MyClient(intents=intents)
client.run('token')

Bot Example
~~~~~~~~~~~~~

.. code:: py

import discord
from discord.ext import commands

intents = discord.Intents.default()
intents.message_content = True
bot = commands.Bot(command_prefix='>', intents=intents)

@bot.command()
async def ping(ctx):
await ctx.send('pong')

bot.run('token')

You can find more examples in the examples directory.

Links
------

- `Documentation <https://discordpy.readthedocs.io/en/latest/index.html>`_
- `Official Discord Server <https://discord.gg/r3sSKJJ>`_
- `Discord API <https://discord.gg/discord-api>`_