Skip to main content

NOTE

disnake-compass

An extension for disnake aimed at making component interactions with listeners somewhat less cumbersome.
Requires disnake version 2.10.0 or above and python 3.10.0 or above.

Key Features

  • Smoothly integrates with disnake,
  • Intuitive dataclass-like syntax to declare component classes,
  • Fully stateless and persistent by permanently storing state inside custom ids,
  • Custom id matching, parsing, conversion and creation are all managed for you,
  • Highly customisable!

Installing

Python 3.10 or higher and disnake 2.10.0 or higher are required

To install the extension, run the following command in your command prompt/shell:

# Linux/macOS
python3 -m pip install -U disnake-compass

# Windows
py -3 -m pip install -U disnake-compass

It can then be imported as

import disnake_compass

Examples

A very simple component that increments its label each time you click it can be written as follows:

import disnake
from disnake.ext import commands
import disnake_compass


bot = commands.InteractionBot()
manager = disnake_compass.get_manager()
manager.add_to_client(bot)


@manager.register
class MyButton(disnake_compass.RichButton):
    count: int

    async def callback(self, interaction: disnake.MessageInteraction[disnake.Client]) -> None:
        self.count += 1
        self.label = str(self.count)

        await interaction.response.edit_message(components=self)


@bot.slash_command()
async def test_button(interaction: disnake.CommandInteraction[disnake.Client]) -> None:
    component = await MyButton(label="0", count=0).as_ui_component()

    await interaction.send(components=component)


bot.run("TOKEN")

For extra examples, please see the examples folder.

To-Do

  • Implement modals,
  • Improve Cog support by somehow injecting the cog instance,
  • Contribution guidelines,

Contributing

Any contributions are welcome, feel free to open an issue or submit a pull request if you would like to see something added. Contribution guidelines will come soon.

Metadata

Release files for disnake-compass 1.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 disnake-compass 1.1.0
File Size Uploaded
disnake_compass-1.1.0.tar.gz 199.1 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for disnake-compass 1.1.0
File Interpreter ABI Platform
disnake_compass-1.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 258.1 kB

Release files / disnake_compass-1.1.0.tar.gz

Download URL disnake_compass-1.1.0.tar.gz
Size 199.1 kB
Tags Source
SHA-256 checksum
How to use checksums
72ad4dd72f74fbb33d8720c497f4195c4c107d349910387557af56296be0b32e
BLAKE2b-256 checksum
How to use checksums
a73d4583225760b956f88ebec0e696fe39ed4328a5d968dd8a3adb5ca5299748
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 3, 2025.

Transparency log

Release files / disnake_compass-1.1.0-py3-none-any.whl

Download URL disnake_compass-1.1.0-py3-none-any.whl
Size 59.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
9b19dc1558005256bf55590a94e40a40bf77d664c7811f264aebb2dd7af0a9a5
BLAKE2b-256 checksum
How to use checksums
0eac43d9502b349924e576673180d0df8a89164629881c599b9a3812b55bf8cf
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.7

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Dec 3, 2025.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.0 This release

2 release files

1.0.1

2 release files

1.0.0

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