← Documentation  /  Guide du développeur

Créer un plugin

La référence complète du SDK pour les développeurs de plugins — Python sandboxé, livré sous forme de zip, distribué via la marketplace.

These docs are publicly viewable. To publish a plugin you'll need a free YourBot account: sign in to access the Dev Portal.
SDK v0.8.4

Les plugins sont des processus Python isolés. Écrivez un gestionnaire, déclarez vos capacités, envoyez un zip — nous l'exécutons dans un conteneur Docker verrouillé et lui transmettons les événements Discord via JSON-RPC.

Qu'est-ce qu'un plugin ?

Un plugin est un petit programme qui écoute les événements dans un serveur Discord et y réagit.

  • Quelqu'un rejoint votre serveur → votre plugin envoie un message de bienvenue.
  • Quelqu'un tape /leaderboard → votre plugin répond avec les 10 premiers utilisateurs.
  • Someone reacts to a message → your plugin counts the vote and updates the tally.

Vous écrivez du Python. Vous importez le SDK. Vous décorez une fonction avec @plugin.on_event("member_join") et écrivez ce qui doit se passer. La plateforme s'occupe du reste.

Ce que la plateforme fait pour vous

  • Se connecte à Discord. Vous n'avez jamais à gérer les passerelles WebSocket, le sharding, les intents ou les limites de débit. La plateforme transmet les événements à vos gestionnaires et transforme vos valeurs de retour en appels API Discord.
  • Héberge votre code. Pas de serveurs à louer, pas de Docker à gérer, pas de déploiements à 2 h du matin. Poussez votre code — la plateforme l'exécute dans un sandbox isolé.
  • Talks to the outside world. Call external APIs with ctx.http, hold live connections open with ctx.ws and let the platform inject API keys from encrypted secrets so your code never touches them. See Outbound HTTP.
  • Gère les paiements. Set a price or ship it free. Customers pay through Stripe and you keep 70–85% of revenue (tier depends on your last 30 days of volume), paid out to your bank automatically after a hold period. See Selling your plugin.
  • Évolue pour vous. Une installation ou un million — la plateforme gère la concurrence, les nouvelles tentatives et les quotas.

Ce que vous faites

Écrire la logique qui transforme les événements Discord en actions. C'est tout. Le flux ressemble à ceci :

   ┌─────────────────┐     ┌──────────────────┐     ┌──────────────────┐     ┌──────────────────┐
   │  Discord event  │────▶│   YourBot       │────▶│  Your plugin's   │────▶│   YourBot       │
   │  (msg, /cmd…)   │     │   gateway        │     │   handler        │     │   sends to       │
   │                 │     │                  │     │                  │     │   Discord        │
   └─────────────────┘     └──────────────────┘     └──────────────────┘     └──────────────────┘
                                                              ▲
                                                              │
                                                    you write this part

En quoi un plugin diffère d'un « framework de bot Discord »

AspectPlugin (cette plateforme)Bot auto-hébergé (discord.py, etc.)
Se connecter à DiscordLa plateforme le faitVous le faites
Serveur pour héberger le codeLa plateforme le fournitVous louez / gérez
Paiements / StripeLa plateforme gèreVous le construisez vous-même
Installation par clientEn un clic pour le clientVous guidez chaque client à travers OAuth
Mise à l'échelle / quotas / nouvelles tentativesLa plateforme gèreVous vous en chargez
Avis / découvrabilitéMarketplace intégréVous faites vous-même la promotion de votre bot
Surface de l'API DiscordDélimitée par capacités (déclarez ce dont vous avez besoin)Accès complet (sous votre responsabilité)

Où vous passerez votre temps

  1. Relier les événements aux gestionnaires. Des décorateurs comme @plugin.on_event("message_create") ou @plugin.on_slash_command("hello").
  2. Stocker l'état. Per-server settings, counters and leaderboards live in ctx.kv (key-value, every plugin has it) or ctx.sql (full SQL, a capability you request that is granted after staff review). Either way there is no database to manage.
  3. (Facultatif) Une page de paramètres. Intégrez un manifeste JSON et les clients obtiennent une page de tableau de bord depuis laquelle ils peuvent configurer votre plugin. Aucun code frontend requis.

You can build and submit your first plugin in an afternoon. New developers' first versions go through a short staff review before they appear in the marketplace; established developers publish instantly. Click "Getting started" above when you're ready to write code. Prefer not to start from a blank file? The Plugin Builder writes a working first draft from a description, and the yourbot CLI runs it locally before you upload anything.

Good to know before you build

  • Your code has no direct network access. All HTTP goes through ctx.http to domains you declare; live connections go through ctx.ws.
  • Nothing persists on disk. Containers are wiped between restarts. Durable state belongs in ctx.kv or ctx.sql.
  • Resources are capped. 64 MB memory and a fraction of a vCPU per worker. The full numbers live in Limits and quotas.
  • Timers do not run on their own. Marketplace plugins are event-driven: periodic work rides on event traffic with a cooldown. See Pool mode.
  • Reading what people type is a privacy capability. Message text arrives empty unless you request events:message_content and the server approves it. See the capability catalog.
  • Your first version is reviewed by a human. Plan for a short wait before it goes live. See Publish & review.

FAQ existante

Jump straight to the section that answers your question. The filter box above only searches the tab you are on.

I want to…Allez sur le
React when someone joins, posts or clicksTous les événements
commande slashCommandes slash
Nouveaux messagesevents:message_content
Store per-server settings or countersMagasin clé-valeur
Keep an API key without hardcoding itUtilisateurs autorisés
Run real SQL queriesStorage & I/O: Sandboxed SQL
Call an external APISimuler les requêtes HTTP sortantes
Hold a live connection to a game serverStorage & I/O: WebSockets
Do something on a schedulePlanifications cron
Voir les paramètresManifeste du tableau de bord (JSON)
Test my plugin before uploadingPremiers pas
See what my plugin is allowed to touchReference: Capability catalog
Check every size and rate limitReference: Limits and quotas
Supprimer le pluginNommez votre plugin
Publier & réviserPublier & réviser

SDK v0.8.4 · Dernière mise à jour juillet 2026 · Retour au portail développeur