// the take
Poise is a command framework that sits on top of the serenity Discord library, letting you define slash commands and text commands from the same Rust function signature instead of writing serenity's lower-level handlers by hand. It's aimed at Rust developers building Discord bots who want argument parsing and dispatch handled for them, not at anyone looking for a standalone Discord library.
Command parameters are inferred from the function signature and Rust types, so there's one source of truth instead of separately declared slash command schemas and parsing logic. It genuinely unifies prefix and slash commands behind one dispatch path, so a bot can support both without duplicating command bodies. Edit tracking (re-rendering the bot's response when the triggering message is edited) is a real, uncommon feature that most bot frameworks don't bother implementing. The feature_showcase examples cover real sticking points — modals, autocomplete, cooldowns, localization, context menus — rather than just a hello-world.
It's built directly on serenity's types and traits, so you inherit serenity's breaking changes and release cadence; switching Discord libraries later means a rewrite, not a swap. The macro-driven API (command attribute macros generating dispatch code) means a mistake in a command function can surface as a confusing macro-expansion error rather than a clear Rust compiler message. At ~900 stars with a small core maintainer group, it's a single-point-of-failure dependency for anything built on it — worth checking how active the current maintainers are before committing a production bot to it. The split between 'current' and 'next' docs/branches means you need to track which poise version matches which serenity version yourself; there's no indication of a stable LTS branch to pin against.
We read the README, the directory tree and a key source file in October 2026. Nobody pays to be listed. How we judge →