KendaliAI is a self-hosted AI automation platform that unified AI access, enables AI agents, provides workflow automation, controls messaging bots, and is highly extensible via plugins.
Architecture: Monolithic (single repository, unified config).
-
Phase 1: Core Runtime
- Core primitives (
src/core) - Event Bus (
src/eventbus) - Tool System (
src/tools) - Intent Router (
src/router) - Database Layer (
src/database)
- Core primitives (
-
Phase 2: AI Gateway & Agents
- AI Gateway (model routing, provider adapters, caching) (
src/gateway) - Agent Runtime (planner, executor, memory) (
src/agents)
- AI Gateway (model routing, provider adapters, caching) (
-
Phase 3: Workflow Automation
- Workflow engine (node engine, triggers, scheduler) (
src/workflow)
- Workflow engine (node engine, triggers, scheduler) (
-
Phase 4: Dashboard UI
- System monitoring (
src/dashboard/pages/Overview) - Workflow editor (
src/dashboard/pages/Workflows)
- System monitoring (
-
Phase 5: Plugin SDK
- Tool extensions, workflow nodes, UI widgets SDK (
src/sdk)
- Tool extensions, workflow nodes, UI widgets SDK (
-
Phase 6: Messaging Integration
- Messaging adapters (Telegram, Discord, WhatsApp) (
src/adapters)
- Messaging adapters (Telegram, Discord, WhatsApp) (
The fastest way to get started is with the Gateway CLI, which lets you create and manage AI-powered Telegram bots.
# Start the interactive TUI to create a gateway
bun start
# Or use direct commands:
bun run gateway list # List all gateways
bun run gateway start <name> # Start a gateway
bun run gateway stop <name> # Stop a gateway
bun run gateway logs <name> # Follow gateway logsThe TUI wizard will guide you through:
- Selecting an AI provider (ZAI/DeepSeek)
- Entering your API key
- Choosing a model
- Connecting a Telegram bot token
- Configuring optional skills and hooks
Gateway configurations are stored in gateways/ directory (not tracked in git).
bun install
bun run devThe frontend application runs on top of Vite and React. The backend API is entirely unified under src/server (or run concurrently) to avoid monorepo setups.
bun run src/server/index.ts| Script | Description |
|---|---|
bun start |
Start the interactive TUI |
bun run gateway |
Gateway management commands |
bun run dev |
Start frontend + backend concurrently |
bun test |
Run unit tests |
- Gateway configurations contain sensitive credentials (API keys, bot tokens)
- The
gateways/directory is excluded from git via.gitignore - Shell commands executed by AI are restricted to a safe allowlist
- File system access is limited to allowed directories
Unit tests run natively via bun test. Test files are stored under the tests/ directory.
bun test