Démarrage rapide¶

Cette page crée une application Discord, l'ajoute à un serveur et lance un bot avec une commande slash. Elle suppose que bostie est installé.
Vous utilisez un assistant de code IA ?
Installez la skill bostie pour que votre assistant de code s'en sorte mieux sur les tâches bostie. Copiez le prompt et collez-le dans votre assistant de code. En savoir plus sur la skill
Installer la skill bostie
Install the bostie skill for my coding agent so it writes correct bostie code: Discord bots with slash commands, components, events, REST calls, voice and tests.
Use the Agent Skills installer with the bostie repository, https://github.com/nicokim/bostie:
npx skills add nicokim/bostie --skill bostie --yes
If I ask for a global install instead, use:
npx skills add nicokim/bostie --skill bostie --yes --global
Detect which agent or editor I am using. If it is one of these and I prefer the plugin path, install the bostie plugin instead, as https://bostie.dev/fr/assistants/ shows:
Claude Code: /plugin marketplace add nicokim/bostie, then /plugin install bostie@bostie
Codex CLI: codex plugin marketplace add nicokim/bostie, then codex plugin add bostie@bostie
GitHub Copilot CLI: copilot plugin marketplace add nicokim/bostie, then copilot plugin install bostie@bostie
VS Code with GitHub Copilot: run "Chat: Install Plugin from Source" and enter nicokim/bostie
Devin: devin plugins install nicokim/bostie#docs
Factory Droid: droid plugin marketplace add nicokim/bostie, then droid plugin install bostie@bostie --scope user
Qwen Code: qwen extensions install nicokim/bostie:bostie
Do not invent other skill names or install URLs.
Then add this line to the instructions file you read at the start of every session (AGENTS.md at the project root, or your global one for a global install), and create the file if needed:
Before you write or change code that uses bostie, look at how the project is laid out, then load the bostie skill.
After installing, confirm that the bostie skill is available to you.
Créer l'application¶
- Ouvrez le Developer Portal et créez une application.
- Sur sa page Bot, réinitialisez le token et copiez-le. Quiconque possède le token contrôle le bot : gardez-le hors de votre code et de votre dépôt.
- Sur sa page Installation, ajoutez les scopes
applications.commandsetbotà l'installation sur un serveur (Guild Install), puis ouvrez le lien d'installation et ajoutez l'application à un serveur que vous gérez.
Écrire le bot¶
Enregistrez ceci sous le nom bot.py :
import bostie
from bostie import Context
bot = bostie.Bot()
@bot.command
async def hello(ctx: Context) -> None:
"""Say hello."""
await ctx.respond(f"Hello, {ctx.user.display_name}!")
bot.run()
@bot.command transforme la fonction en commande slash /hello. Son nom est celui de la fonction et sa description est la première ligne de la docstring. ctx est le Context d'une utilisation de la commande : qui l'a lancée, où, et les méthodes qui y répondent.
Le lancer¶
Passez le token par la variable d'environnement BOSTIE_TOKEN et lancez le fichier :
export BOSTIE_TOKEN="your token"
python bot.py
bot.run() configure la journalisation au niveau INFO, se connecte et compare les commandes que vous avez définies avec celles enregistrées sur Discord. Le premier démarrage enregistre /hello et journalise commands synced (global): added ['hello'], ... ; les démarrages suivants n'envoient rien, sauf si une commande a changé. Tapez /hello dans votre serveur et le bot répond.
Ctrl+C, ou un SIGTERM envoyé par un gestionnaire de processus, ferme proprement le bot.
Ajouter une option¶
Les paramètres qui suivent ctx deviennent les options de la commande, typées par leurs annotations :
import secrets
import bostie
from bostie import Context, Range
bot = bostie.Bot()
@bot.command
async def roll(ctx: Context, sides: Range[int, 2, 100] = 6) -> None:
"""Roll a die."""
rolled = secrets.randbelow(sides) + 1
await ctx.respond(f"You rolled {rolled} on a d{sides}.")
bot.run()
sides est une option entière de 2 à 100 qui vaut 6 par défaut : Discord l'affiche donc comme facultative et refuse les valeurs hors de la plage avant même que le bot ne les voie. Redémarrez le bot et il envoie la commande modifiée.
Et ensuite¶
- Commandes slash couvre tous les types d'options, les choix, l'autocomplétion et les sous-commandes.
- Répondre aux interactions explique
respond, les réponses différées, les messages de suivi et les réponses éphémères. - Enregistrer les commandes montre comment enregistrer les commandes dans un serveur de test pendant que vous travaillez dessus.
- Lancer un bot couvre le token, la journalisation, le cycle de vie du bot et son exécution au sein d'un autre programme.