Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Β 

History

18 Commits
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 
Β 

Repository files navigation

Banner Image

Kairo

A modern, self-hostable Discord platform built for customization, automation, and beautiful interactive experiences.

Kairo is a feature-rich, open-source Discord bot and server management platform built with Python, discord.py 2.7.1, Discord Components V2, SQLite, and a modern Vite-powered web dashboard.

The goal of Kairo is to provide a complete, self-hostable alternative to traditional Discord bots β€” combining powerful server features, a modern web interface, persistent configuration, extensibility, and an exceptionally well-documented developer experience.

🚧 Kairo is currently under active development.

Many features described below are planned and may not be implemented yet. This README serves as the project's initial vision and roadmap.


✨ Why Kairo?

Most Discord bots are designed around commands and traditional Discord embeds.

Kairo takes a different approach.

The project is being designed from the ground up around Discord Components V2, allowing Kairo to provide rich, interactive interfaces directly inside Discord while also providing a full web dashboard for configuration and management.

Kairo aims to be:

  • 🧩 Modular β€” features are independently organized and auto-discovered
  • 🎨 Modern β€” Components V2-first Discord interfaces
  • 🌐 Self-hostable β€” run Kairo on your own hardware or server
  • πŸ’Ύ Persistent β€” configuration stored reliably in SQLite
  • πŸ” Secure β€” proper Discord OAuth2 and permission validation
  • πŸ“Š Manageable β€” powerful web dashboard
  • πŸ“š Well documented β€” extensive documentation for users and developers
  • πŸš€ Easy to deploy β€” local, Docker, VPS, and tunnel-based deployment
  • πŸ› οΈ Developer friendly β€” clean architecture and clear extension points
  • 🎭 Customizable β€” application emojis, custom branding, per-server configuration
  • 🀝 Onboarding-ready β€” interactive guild setup wizard on first install

πŸš€ Planned Features

πŸ€– Discord Bot

Moderation

  • Ban
  • Kick
  • Timeout
  • Warn system
  • Warning history
  • Moderation cases
  • Case management
  • Bulk message deletion
  • Moderation logs
  • Configurable punishment actions
  • Moderator permission checks
  • Moderation audit history
  • Temporary bans (auto-unban)
  • Slow mode management
  • Note system (staff-only case notes)
  • Appeal system

AutoMod

  • Spam protection
  • Mention spam protection
  • Duplicate message detection
  • Invite filtering
  • Link filtering
  • Word filtering
  • Caps filtering
  • Raid protection
  • Configurable actions (warn / timeout / kick / ban)
  • AutoMod logging
  • Per-channel configuration
  • Per-role exemptions
  • Regex rule support
  • Mass join detection
  • Phishing link detection
  • New account age filtering

Server Management

  • Welcome messages (Components V2, configurable)
  • Leave messages
  • Auto roles on join
  • Auto roles on verify
  • Verification system (button, CAPTCHA, rules accept)
  • Reaction roles
  • Button roles
  • Select menu roles
  • Role menus (grouped role pickers)
  • Server configuration panel
  • Custom commands
  • Custom command variables (user, server, time)
  • Channel management utilities
  • Role management utilities
  • Server information

Onboarding

  • Interactive guild setup wizard (Components V2 multi-step)
  • First-run detection on guild join
  • Setup progress tracking
  • Channel creation assistant
  • Role creation assistant
  • Feature enable/disable during setup
  • Setup summary and confirmation panel
  • Re-run setup at any time via /setup
  • Skip and configure later for any step

Community

  • Tickets (thread-based, button to open)
  • Ticket transcripts
  • Ticket categories and routing
  • Suggestions (vote panel, status updates)
  • Giveaways (enter/leave, re-roll, winners)
  • Polls (multi-choice, timed, results panel)
  • Starboard
  • Leveling (XP, rank card, leaderboard)
  • Level roles
  • Reminders (personal, channel)
  • Custom responses (trigger β†’ reply)
  • Community statistics dashboard
  • Server milestones
  • Reaction menus

Utility

  • Help command (Components V2, category filter)
  • User information
  • Server information
  • Avatar viewer
  • Bot information
  • Ping / latency
  • Role information
  • Channel information
  • Permissions viewer
  • Server statistics
  • Embed builder
  • Message utilities
  • Snowflake decoder
  • Colour preview
  • Timestamp generator
  • User banner viewer

Logging

  • Message edit logs
  • Message delete logs
  • Member join / leave logs
  • Member ban / unban logs
  • Member role change logs
  • Channel create / edit / delete logs
  • Role create / edit / delete logs
  • Voice channel join / leave / move logs
  • Invite create / delete logs
  • Server update logs
  • Per-event channel routing
  • Log ignore rules (channels, roles, users)
  • Log formatting templates

Fun

  • 8-ball
  • Coinflip
  • Dice roller
  • Random quote
  • Would you rather
  • Trivia
  • Mini-games

🎨 Customization

Kairo is designed to be deeply customizable per server.

Application Emojis

  • Application emoji registry β€” Kairo registers its own emoji set with Discord on startup
  • Auto-registration of missing emojis at boot
  • Emoji fallback to Unicode when application emojis are unavailable
  • Per-guild custom emoji overrides
  • Emoji configuration via dashboard

Branding

  • Custom bot name per guild (nickname)
  • Custom embed accent colour per guild
  • Custom footer text
  • Custom status messages (rotating or static)
  • Custom command prefix per guild

Per-Server Configuration

  • Feature enable/disable per guild
  • Language / locale selection
  • Timezone setting (for timed features)
  • Command cooldowns per guild
  • Per-channel command restrictions
  • Per-role command restrictions

🧱 Discord Components V2

Components V2 is a core part of Kairo's Discord interface layer.

Kairo uses discord.py's native CV2 system (discord.ui.LayoutView) directly rather than building a custom abstraction on top of it. All interactive and layout components are provided by discord.py 2.6+ out of the box.

Implemented components:

  • Containers (discord.ui.Container)
  • Sections (discord.ui.Section)
  • Text displays (discord.ui.TextDisplay)
  • Separators (discord.ui.Separator)
  • Buttons (discord.ui.Button)
  • Select menus (discord.ui.Select and variants)
  • Action rows (discord.ui.ActionRow)
  • Thumbnails (discord.ui.Thumbnail)
  • Modals (discord.ui.Modal)
  • Pagination (Paginator β€” Kairo helper built on LayoutView)
  • Media galleries
  • Confirmation dialogs
  • Interactive configuration panels
  • Stateful multi-step flows

Views are sent via view= to interaction.response.send_message(), which is the correct discord.py CV2 API. The src/bot/components/ package re-exports all discord.ui CV2 types and provides thin send helpers (send_layout, edit_layout, followup_layout, send_layout_to_channel).

Example:

import discord
from src.bot.components import send_layout

view = discord.ui.LayoutView()
view.add_item(discord.ui.Container(
    discord.ui.TextDisplay("# Server Configuration"),
    discord.ui.Separator(visible=True),
    discord.ui.TextDisplay("Manage your server settings below."),
    discord.ui.ActionRow(
        discord.ui.Button(label="Moderation", custom_id="config:moderation"),
        discord.ui.Button(label="Logging", custom_id="config:logging"),
    ),
))
await send_layout(interaction, view, ephemeral=True)

🌐 Web Dashboard

Kairo will include a complete web dashboard built using Vite.

The dashboard will provide a centralized interface for managing Kairo installations and Discord servers.

Planned Dashboard Features

  • Discord OAuth2 login
  • Discord account information
  • Guild selector
  • Guild permission validation
  • Bot installation flow
  • Interactive onboarding wizard
  • Server overview (member count, activity, health)
  • Server configuration
  • Moderation configuration
  • AutoMod configuration
  • Logging configuration
  • Welcome / leave configuration
  • Ticket configuration
  • Giveaway management
  • Reaction / button roles editor
  • Role menu builder
  • Custom commands editor
  • Custom responses editor
  • Leveling configuration
  • Application emoji management
  • Branding configuration
  • Audit logs viewer
  • Moderation case browser
  • Bot status
  • System status
  • Database status
  • Responsive mobile interface
  • Dark theme

The dashboard will communicate with the bot through a dedicated API rather than directly manipulating the database.


πŸ” Discord OAuth2

Kairo's dashboard will support proper Discord OAuth2 authentication.

Planned functionality includes:

  • OAuth2 authorization
  • Secure callback handling
  • Session management
  • User authentication
  • Guild membership verification
  • Guild permission verification
  • Bot presence verification
  • Secure API authorization
  • Logout / session invalidation

Kairo will never assume that a user has permission to manage a server simply because they can authenticate with Discord.


πŸ’Ύ Persistent Storage

Kairo will use SQLite as its default persistent database.

The database layer will be designed around repositories and services rather than allowing individual features to freely execute SQL.

Planned capabilities include:

  • Guild configuration
  • User profiles
  • Moderation cases
  • Warnings
  • AutoMod configuration
  • Ticket data and transcripts
  • Giveaway data
  • Logging configuration
  • Leveling / XP data
  • Custom commands
  • Custom responses
  • Application emoji registry
  • Onboarding state
  • Migration system
  • Database backups
  • Database health checks

The architecture will also aim to make migration to another database backend easier for larger deployments in the future.


🧩 Modular Architecture

Kairo is designed as a modular platform. Features are auto-discovered at startup β€” adding a new feature only requires creating a directory with __init__.py and cog.py.

Kairo
β”‚
β”œβ”€β”€ Core
β”‚   β”œβ”€β”€ Configuration
β”‚   β”œβ”€β”€ Logging
β”‚   β”œβ”€β”€ Events (internal pub/sub bus)
β”‚   └── Lifecycle
β”‚
β”œβ”€β”€ Database
β”‚   β”œβ”€β”€ Models
β”‚   β”œβ”€β”€ Repositories
β”‚   └── Migrations
β”‚
β”œβ”€β”€ Components
β”‚   β”œβ”€β”€ LayoutView send helpers
β”‚   β”œβ”€β”€ Paginator
β”‚   └── discord.ui re-exports
β”‚
β”œβ”€β”€ Features (auto-discovered)
β”‚   β”œβ”€β”€ Moderation
β”‚   β”œβ”€β”€ AutoMod
β”‚   β”œβ”€β”€ Logging
β”‚   β”œβ”€β”€ Utility
β”‚   β”œβ”€β”€ Onboarding
β”‚   β”œβ”€β”€ Tickets
β”‚   β”œβ”€β”€ Giveaways
β”‚   β”œβ”€β”€ Leveling
β”‚   β”œβ”€β”€ Roles
β”‚   β”œβ”€β”€ Welcome
β”‚   β”œβ”€β”€ Fun
β”‚   └── ...
β”‚
β”œβ”€β”€ API
β”‚
└── Dashboard

πŸ”Œ Plugin System

One of Kairo's long-term goals is to provide an extensible plugin architecture.

A future plugin could add:

  • Commands
  • Components
  • Database models
  • Dashboard pages
  • API endpoints
  • Background tasks
  • Event listeners
  • Application emojis
  • Configuration options

The intended result is that developers can extend Kairo without modifying its core.


🌍 Deployment

Kairo is being designed with self-hosting as a first-class feature.

Local

Run Kairo directly on your computer for development or small installations.

Docker

Planned Docker support will make it possible to deploy Kairo using containers.

VPS

Kairo will include documentation for common VPS deployments.

Tunnel Integrations

For users who need to expose the dashboard or API without configuring traditional port forwarding, optional integrations are planned for:

  • Cloudflare Tunnel
  • ngrok
  • Localtonet

These integrations will be optional. Kairo will not require a tunnel provider to operate.


πŸ“š Documentation

Documentation is intended to be a major part of the Kairo project.

Rather than only documenting commands, Kairo will provide guides for the entire system.

Planned documentation includes:

Getting Started

  • Installation
  • Discord application setup
  • Bot token configuration
  • Environment variables
  • Database initialization
  • First launch

Self Hosting

  • Windows
  • Linux
  • macOS
  • Docker
  • VPS
  • Reverse proxy
  • Cloudflare Tunnel
  • ngrok
  • Localtonet
  • Backups
  • Updates
  • Troubleshooting

Administration

  • Dashboard guide
  • Guild onboarding wizard
  • Server configuration
  • Permissions
  • Security
  • Database management
  • Logging

Developers

  • Architecture
  • Components V2
  • Creating features (auto-discovery)
  • Creating plugins
  • Database repositories
  • API development
  • Dashboard development
  • Application emojis
  • Testing
  • Contributing

πŸ› οΈ Technology

Technology Purpose
Python Discord bot backend
discord.py 2.7.1 Discord API library
SQLite Persistent storage
Vite Dashboard tooling
Discord OAuth2 Dashboard authentication
Docker Containerized deployment
Cloudflare Tunnel Optional tunneling
ngrok Optional tunneling
Localtonet Optional tunneling

Additional technologies may be introduced as development progresses.


πŸ—ΊοΈ Roadmap

Kairo will be developed incrementally.

Phase 1 β€” Foundation

  • Repository structure
  • Configuration system
  • Logging system
  • Discord bot initialization
  • Auto-discovery cog loader
  • SQLite database
  • Database migrations
  • Basic error handling
  • Development environment

Phase 2 β€” Components V2

  • Native discord.ui CV2 integration (LayoutView)
  • Send helpers (send_layout, edit_layout, followup_layout)
  • Reusable UI components (Container, Section, TextDisplay, Separator, Thumbnail)
  • Interaction handling
  • Pagination (Paginator built on LayoutView)
  • Modals (discord.ui.Modal)
  • Confirmation dialog helper
  • Interactive multi-step flow helper
  • Configuration panel helper

Phase 3 β€” Core Features

  • Moderation (ban, kick, timeout, warn, history, case)
  • AutoMod (scaffold β€” rule engine Phase 3)
  • Logging (scaffold β€” channel output Phase 3)
  • Utility commands (/help, /ping, /botinfo, /userinfo, /serverinfo, /avatar)
  • Full moderation logging to channels
  • AutoMod rule engine (spam, links, words, mentions)
  • Welcome / leave messages
  • Auto roles
  • Button / select menu roles
  • Server configuration system

Phase 4 β€” Onboarding & Customization

  • Interactive guild setup wizard (/setup β€” multi-step CV2 flow)
  • First-run detection on guild join
  • Application emoji registry and auto-registration at startup
  • Emoji fallback system (Unicode when application emojis unavailable)
  • Per-guild branding (accent colour, footer, status)
  • Per-guild feature enable/disable
  • Per-guild language / timezone
  • Custom command prefix per guild

Phase 5 β€” Community Features

  • Tickets (thread-based, CV2 open panel)
  • Ticket transcripts and routing
  • Suggestions (CV2 vote panel, status workflow)
  • Giveaways (enter / leave / re-roll)
  • Polls (timed, multi-choice, live results)
  • Starboard
  • Leveling (XP, rank cards, leaderboard)
  • Level roles
  • Reminders
  • Custom responses
  • Fun commands

Phase 6 β€” Dashboard

  • Vite application scaffold
  • Dark theme UI
  • Discord OAuth2 login
  • Guild selector
  • Guild permission validation
  • API (aiohttp, auth middleware)
  • Server overview page
  • Onboarding wizard in dashboard
  • Configuration pages for all features
  • Moderation case browser
  • Responsive mobile layout

Phase 7 β€” Deployment

  • Docker and docker-compose
  • Local deployment guide
  • VPS documentation
  • Cloudflare Tunnel integration
  • ngrok integration
  • Localtonet integration
  • Reverse proxy configuration (Nginx, Caddy)

Phase 8 β€” Extensibility

  • Plugin architecture
  • Plugin API
  • Plugin lifecycle (load / unload / reload)
  • Plugin database model registration
  • Plugin dashboard page registration
  • Developer documentation
  • Plugin examples
  • Plugin registry / discovery

Phase 9 β€” Production Readiness

  • Automated test suite
  • Security audit
  • Performance profiling and improvements
  • Database backup tooling
  • Migration tooling
  • Rate limit handling and backoff
  • Health check endpoints
  • Comprehensive documentation
  • Stable release (v1.0)

πŸ“Š Project Status

🚧 Early Development β€” Phases 1–3 in progress

Phase Status
Phase 1 β€” Foundation βœ… Complete
Phase 2 β€” Components V2 βœ… Complete
Phase 3 β€” Core Features βœ… Complete
Phase 4 β€” Onboarding πŸ“‹ Planned
Phase 5 β€” Community Features πŸ“‹ Planned
Phase 6 β€” Dashboard πŸ“‹ Planned
Phase 7 β€” Deployment πŸ“‹ Planned
Phase 8 β€” Extensibility πŸ“‹ Planned
Phase 9 β€” Production Ready πŸ“‹ Planned

Expect breaking changes, incomplete features, and unfinished documentation during early development.

The roadmap represents the current direction of the project, not a guarantee that every feature will be implemented exactly as described.


🀝 Contributing

Contributions will be welcome once the core architecture has stabilized.

Potential contribution areas include:

  • Discord features
  • Components V2 interfaces
  • Dashboard development
  • Documentation
  • Testing
  • Plugins
  • Bug fixes
  • Performance improvements
  • Translations

Before contributing, please read the project's contribution guidelines and development documentation.


πŸ”’ Security

If you discover a security vulnerability, please do not publicly disclose it in a GitHub issue.

Security reporting instructions will be provided once the project reaches a stage where external contributions are enabled.


πŸ“œ License

Kairo's license has not yet been finalized.

The repository will contain the applicable license before the first stable release.


⭐ Project Goals

Kairo isn't intended to simply become another Discord bot with hundreds of commands.

The long-term goal is to build a complete open-source Discord platform that is:

Powerful enough for large servers. Simple enough for beginners. Flexible enough for developers. Easy enough to self-host.

If Kairo succeeds, installing the project should feel less like assembling a collection of unrelated services and more like installing a complete Discord platform.


πŸ’™ Kairo

Built with Python, Discord Components V2, and a lot of ambition.

More coming soon.

About

an advanced all-in-one Discord bot with a dashboard and cv2 response layouts

Resources

Contributing

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages