discoflow is a TypeScript MVP for building Discord bots behind a stable application API and a scaffolding CLI.
The MVP includes:
createBot()runtime composition- Page as controller plus view contract
- deterministic middleware pipeline
- normalized fake interaction support for tests
- in-memory session state store
- centralized
discoflow.yamlandapis.yamlconfiguration .envplaceholder resolution during config build- Nunjucks-based scaffolding templates
discoflowCLI for projects and components- isolated Discord adapter through
discoflow/adapters/discord
Only the package-owned Discord adapter imports discord.js.
Framework runtime code, pages, middleware, senders, templates, and generated user code should use stable discoflow contracts. If a bot needs to connect to Discord, it should use createDiscordAdapter() from discoflow/adapters/discord.
npm run build
npm test
npm run discoflow -- new my-bot --dry-runThe package is intentionally small while the public contracts are still being shaped.