discord-clyde


Namediscord-clyde JSON
Version 0.3.0 PyPI version JSON
download
home_pageNone
SummaryA modern, type-hinted Python library for seamless interaction with the Discord Webhook API.
upload_time2025-09-01 09:30:47
maintainerNone
docs_urlNone
authorNone
requires_python>=3.13
licenseNone
keywords api discord library rest webhook wrapper
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            ![Clyde](/assets/readme_banner.png)

![Python](https://img.shields.io/badge/Python-3-blue?logo=python&logoColor=white)
![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/ethanc/clyde/workflow.yaml)
![PyPI Downloads](https://img.shields.io/pypi/dm/discord-clyde)
[![Coverage Report](https://codecov.io/gh/ethanc/clyde/branch/main/graph/badge.svg)](https://codecov.io/gh/ethanc/clyde)

Clyde is a modern, type-hinted Python library for seamless interaction with the [Discord](https://discord.com/) Webhook API.

It's lightweight, developer-friendly, and supports advanced features like [Components](https://discord.com/developers/docs/components/overview) and [Embeds](https://discord.com/developers/docs/resources/message#embed-object).

## Features

-   Fully type-hinted for an excellent developer experience
-   Input validation powered by [msgspec](https://github.com/jcrist/msgspec)
-   Support for all Webhook-compatible [Components](https://discord.com/developers/docs/components/overview)
-   Granular customization of rich [Embeds](https://discord.com/developers/docs/resources/message#embed-object)
-   Helpers for Discord-flavored markdown, including timestamps
-   Compatible with both synchronous and asynchronous HTTP requests

## Getting Started

### Installation

> [!IMPORTANT]
> Clyde requires Python 3.13 or later.

Install with [uv](https://github.com/astral-sh/uv) (recommended):

```
uv add discord-clyde
```

Alternatively, install with pip:

```
pip install discord-clyde
```

### Examples

> [!TIP]
> Take the examples below and copy/paste them into your project to get started in seconds.

**Send a standard Message**

```py
from clyde import Webhook

relay: Webhook = Webhook(url="https://discord.com/api/webhooks/00000/XXXXXXXXXX")

relay.set_avatar_url("https://i.imgur.com/RzkhQgZ.png")
relay.set_username("Heisenberg")

relay.set_content("[Clyde](https://github.com/EthanC/Clyde) says hi!")

relay.execute()
```

![Preview](/assets/readme_example_standard.png)

**Send a Message with Components**

```py
from clyde import Webhook
from clyde.components import ActionRow, LinkButton, TextDisplay

relay: Webhook = Webhook(url="https://discord.com/api/webhooks/00000/XXXXXXXXXX")

relay.set_avatar_url("https://i.imgur.com/BpcKmVO.png")
relay.set_username("TARS")

greeting: TextDisplay = TextDisplay(content="[Clyde](https://github.com/EthanC/Clyde) says hi!")

actions: ActionRow = ActionRow()
repository: LinkButton = LinkButton()

repository.set_label("Try Clyde")
repository.set_url("https://github.com/EthanC/Clyde")

actions.add_component(repository)
relay.add_component(greeting)
relay.add_component(actions)
relay.execute()
```

![Preview](/assets/readme_example_components.png)

**Send a Message with an Embed**

```py
from clyde import Embed, Webhook


relay: Webhook = Webhook(url="https://discord.com/api/webhooks/00000/XXXXXXXXXX")

relay.set_avatar_url("https://i.imgur.com/QaTHttz.png")
relay.set_username("Shady")

rich: Embed = Embed()

rich.set_description("[Clyde](https://github.com/EthanC/Clyde) says hi!")
rich.set_color("#5865F2")

relay.add_embed(rich)
relay.execute()
```

![Preview](/assets/readme_example_embed.png)

## Releases

Clyde loosely follows [Semantic Versioning](https://semver.org/) for consistent, predictable releases.

## Contributing

Contributions are welcome—whether it’s fixing bugs or adding new features.

-   See [`CONTRIBUTING.md`](/.github/CONTRIBUTING.md) for guidelines.
-   See [Issues](https://github.com/EthanC/Clyde/issues) for known bugs and feature requests.

## Acknowledgements

The Clyde character and Discord brand assets are owned by Discord.

This project is not affiliated with or endorsed by Discord in any way.

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "discord-clyde",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.13",
    "maintainer_email": null,
    "keywords": "api, discord, library, rest, webhook, wrapper",
    "author": null,
    "author_email": "Ethan C <16727756+EthanC@users.noreply.github.com>",
    "download_url": "https://files.pythonhosted.org/packages/ce/f2/c3adf35ca834f7ef9681ff177e5d1f48911570435aac787615319cbc3a30/discord_clyde-0.3.0.tar.gz",
    "platform": null,
    "description": "![Clyde](/assets/readme_banner.png)\n\n![Python](https://img.shields.io/badge/Python-3-blue?logo=python&logoColor=white)\n![GitHub Workflow Status](https://img.shields.io/github/actions/workflow/status/ethanc/clyde/workflow.yaml)\n![PyPI Downloads](https://img.shields.io/pypi/dm/discord-clyde)\n[![Coverage Report](https://codecov.io/gh/ethanc/clyde/branch/main/graph/badge.svg)](https://codecov.io/gh/ethanc/clyde)\n\nClyde is a modern, type-hinted Python library for seamless interaction with the [Discord](https://discord.com/) Webhook API.\n\nIt's lightweight, developer-friendly, and supports advanced features like [Components](https://discord.com/developers/docs/components/overview) and [Embeds](https://discord.com/developers/docs/resources/message#embed-object).\n\n## Features\n\n-   Fully type-hinted for an excellent developer experience\n-   Input validation powered by [msgspec](https://github.com/jcrist/msgspec)\n-   Support for all Webhook-compatible [Components](https://discord.com/developers/docs/components/overview)\n-   Granular customization of rich [Embeds](https://discord.com/developers/docs/resources/message#embed-object)\n-   Helpers for Discord-flavored markdown, including timestamps\n-   Compatible with both synchronous and asynchronous HTTP requests\n\n## Getting Started\n\n### Installation\n\n> [!IMPORTANT]\n> Clyde requires Python 3.13 or later.\n\nInstall with [uv](https://github.com/astral-sh/uv) (recommended):\n\n```\nuv add discord-clyde\n```\n\nAlternatively, install with pip:\n\n```\npip install discord-clyde\n```\n\n### Examples\n\n> [!TIP]\n> Take the examples below and copy/paste them into your project to get started in seconds.\n\n**Send a standard Message**\n\n```py\nfrom clyde import Webhook\n\nrelay: Webhook = Webhook(url=\"https://discord.com/api/webhooks/00000/XXXXXXXXXX\")\n\nrelay.set_avatar_url(\"https://i.imgur.com/RzkhQgZ.png\")\nrelay.set_username(\"Heisenberg\")\n\nrelay.set_content(\"[Clyde](https://github.com/EthanC/Clyde) says hi!\")\n\nrelay.execute()\n```\n\n![Preview](/assets/readme_example_standard.png)\n\n**Send a Message with Components**\n\n```py\nfrom clyde import Webhook\nfrom clyde.components import ActionRow, LinkButton, TextDisplay\n\nrelay: Webhook = Webhook(url=\"https://discord.com/api/webhooks/00000/XXXXXXXXXX\")\n\nrelay.set_avatar_url(\"https://i.imgur.com/BpcKmVO.png\")\nrelay.set_username(\"TARS\")\n\ngreeting: TextDisplay = TextDisplay(content=\"[Clyde](https://github.com/EthanC/Clyde) says hi!\")\n\nactions: ActionRow = ActionRow()\nrepository: LinkButton = LinkButton()\n\nrepository.set_label(\"Try Clyde\")\nrepository.set_url(\"https://github.com/EthanC/Clyde\")\n\nactions.add_component(repository)\nrelay.add_component(greeting)\nrelay.add_component(actions)\nrelay.execute()\n```\n\n![Preview](/assets/readme_example_components.png)\n\n**Send a Message with an Embed**\n\n```py\nfrom clyde import Embed, Webhook\n\n\nrelay: Webhook = Webhook(url=\"https://discord.com/api/webhooks/00000/XXXXXXXXXX\")\n\nrelay.set_avatar_url(\"https://i.imgur.com/QaTHttz.png\")\nrelay.set_username(\"Shady\")\n\nrich: Embed = Embed()\n\nrich.set_description(\"[Clyde](https://github.com/EthanC/Clyde) says hi!\")\nrich.set_color(\"#5865F2\")\n\nrelay.add_embed(rich)\nrelay.execute()\n```\n\n![Preview](/assets/readme_example_embed.png)\n\n## Releases\n\nClyde loosely follows [Semantic Versioning](https://semver.org/) for consistent, predictable releases.\n\n## Contributing\n\nContributions are welcome\u2014whether it\u2019s fixing bugs or adding new features.\n\n-   See [`CONTRIBUTING.md`](/.github/CONTRIBUTING.md) for guidelines.\n-   See [Issues](https://github.com/EthanC/Clyde/issues) for known bugs and feature requests.\n\n## Acknowledgements\n\nThe Clyde character and Discord brand assets are owned by Discord.\n\nThis project is not affiliated with or endorsed by Discord in any way.\n",
    "bugtrack_url": null,
    "license": null,
    "summary": "A modern, type-hinted Python library for seamless interaction with the Discord Webhook API.",
    "version": "0.3.0",
    "project_urls": {
        "Changelog": "https://github.com/EthanC/Clyde/releases",
        "Issues": "https://github.com/EthanC/Clyde/issues",
        "Repository": "https://github.com/EthanC/Clyde"
    },
    "split_keywords": [
        "api",
        " discord",
        " library",
        " rest",
        " webhook",
        " wrapper"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "e97394e31aea94147f82f96bf9710fcbff66ca5905da6daa2f6db8ac3ae83610",
                "md5": "bed049b776a3f2ad027f5f6971f37023",
                "sha256": "4029b6d8a7495bf9a6d056a9cfd9728f156ad6fd9dc28a2cf4e28a777362561e"
            },
            "downloads": -1,
            "filename": "discord_clyde-0.3.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "bed049b776a3f2ad027f5f6971f37023",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.13",
            "size": 38263,
            "upload_time": "2025-09-01T09:30:46",
            "upload_time_iso_8601": "2025-09-01T09:30:46.519512Z",
            "url": "https://files.pythonhosted.org/packages/e9/73/94e31aea94147f82f96bf9710fcbff66ca5905da6daa2f6db8ac3ae83610/discord_clyde-0.3.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "cef2c3adf35ca834f7ef9681ff177e5d1f48911570435aac787615319cbc3a30",
                "md5": "666f983a0e24558b82570fea54a7d8ae",
                "sha256": "931c66576eb3acef6801482c8d18fa9c3340114bbc284d2c6f9ea406d382b340"
            },
            "downloads": -1,
            "filename": "discord_clyde-0.3.0.tar.gz",
            "has_sig": false,
            "md5_digest": "666f983a0e24558b82570fea54a7d8ae",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.13",
            "size": 7094084,
            "upload_time": "2025-09-01T09:30:47",
            "upload_time_iso_8601": "2025-09-01T09:30:47.712186Z",
            "url": "https://files.pythonhosted.org/packages/ce/f2/c3adf35ca834f7ef9681ff177e5d1f48911570435aac787615319cbc3a30/discord_clyde-0.3.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-09-01 09:30:47",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "EthanC",
    "github_project": "Clyde",
    "travis_ci": false,
    "coveralls": false,
    "github_actions": true,
    "lcname": "discord-clyde"
}
        
Elapsed time: 0.93092s