Skip to content

buape/carbon

Carbon

Carbon Wordmark Discord NPM Version NPM Downloads

Carbon is a fully typed Discord bot framework for TypeScript that helps you ship quickly with HTTP interactions first, then scale into richer features through plugins, reusable classes, and optional Gateway support without rewriting your architecture later.

Features

  • Build every common interaction type in one place: slash commands, user/message commands, buttons, select menus, and modals.
  • Start with simple HTTP interactions, then add Gateway or Gateway Forwarder only when your bot needs non-interaction events.
  • Run the same bot across Node.js, Bun, and Fetch-style runtimes like Cloudflare Workers or Next.js.
  • Components can register themselves automatically, and you can still register them globally or per command when you need persistence.
  • For quick flows, you can parse custom IDs cleanly and wait for a single component click with replyAndWaitForComponent.
  • Use prechecks and wildcard handlers to add safety rules and fallback behavior without turning command code into a mess.
  • Host multiple Discord applications from one deployment with ClientManager.
  • Grow through plugins like Linked Roles, Command Data, Paginator, Sharding, and Voice.
  • Tune request/event processing with queue lanes, concurrency controls, and runtime metrics when traffic grows.

Installation

To get started with Carbon, you can check out the Getting Started guides for your preferred platform.

Useful Links

Contributing

We welcome contributions to Carbon! If you're interested in contributing, please check out the Contributing Guide for more information, and join our Discord to get involved!

About

A fully-featured HTTP library for Discord bots

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Sponsor this project

  •  

Contributors