Skip to content

Latest commit

 

History

406 Commits

Folders and files

NameName
Last commit message
Last commit date
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

KeenAI

Open-source alternative to Featurebase — AI-powered customer support, feedback management, help center, and changelog — all in one self-hostable platform.

License TypeScript Bun Version Status


Product Video

Watch the KeenAI 2-minute product video

GitHub README does not reliably render repository-local MP4 files as inline video. Click the preview image above, or open the streaming MP4 directly: Watch the KeenAI 2-minute product video.


1. Vision

KeenAI is an open-source, self-hostable, AI-native platform that unifies customer support and product feedback — an open alternative to Featurebase, Intercom, Zendesk, and Canny for small and mid-size teams.

Core values:

  • AI-first — Keeni AI Agent built in from day one, targeting 60%+ automated resolution
  • All-in-one — Support, feedback, Help Center, and Changelog in a single product
  • Self-hostable — Fully open source, data under your control, one-command launch with Bun + SQLite
  • Extensible — Plugin architecture for custom Channels, Actions, MCP servers, and AI models
  • Modern UX — Notion-style editor, command palette, keyboard-first workflows
  • TypeScript end-to-end — One language, full type safety, native fit with the AI SDK ecosystem

2. Product Matrix

Module Featurebase equivalent Status
Inbox Support Inbox ✅ Alpha
Channels Messenger + Email ✅ Alpha (Widget + Email)
Conversations Conversations ✅ Alpha
Tickets Customer / Back-office / Tracker 🚧 Planned
Workflows Workflows ✅ Alpha (MVP)
Keeni AI Agent Fibi AI Agent 🚧 Planned
Copilot Copilot ✅ Alpha
Feedback Portal Feedback Portal 🚧 Planned
Roadmap Roadmap 🚧 Planned
Changelog Changelog 🚧 Planned
Help Center Help Center 🚧 KB help_center source + search stub(无独立 Portal UI)
Surveys Surveys 🔮 Later

3. Tech Stack (TypeScript Full-Stack)

Layer Choice
Language / Runtime TypeScript 5.6+ · Bun 1.2+ (default) · Node 22 LTS (fallback)
HTTP / Backend Hono (cross-runtime, high performance) · Bun.serve
ORM / Migrations Drizzle ORM (PG / SQLite / D1) · drizzle-kit
Database (dual backend) PostgreSQL 16 (+ pgvector) or SQLite 3.45 (+ sqlite-vec) · Redis 7 (optional) · Meilisearch (optional)
LLM SDK Vercel AI SDK v4 — swap OpenAI / Anthropic / Gemini / DeepSeek / Ollama in one line
Agent orchestration Mastra (Agent + Memory + Workflow + Eval + MCP)
MCP (bidirectional) @modelcontextprotocol/sdk (official TS SDK)
Workflow / Queue Inngest (event-driven) + BullMQ (Redis-heavy queues)
Validation / Schema Zod (shared across frontend and backend)
Dashboard / Portal Next.js 15 · React 19 · Shadcn/ui · Tailwind v4
Messenger Widget Preact + Vite (< 5KB)
Real-time WebSocket (Bun.serve native) · Redis Pub/Sub
Email SMTP (nodemailer) · IMAP (imapflow) · parsing (mailparser)
Crawling / Documents crawlee · unpdf · mammoth (docx)
Local inference @xenova/transformers (embedding / rerank · ONNX · no Python)
Object storage S3-compatible (@aws-sdk/client-s3 / MinIO / local fs)
Monorepo Turborepo + pnpm workspaces
Lint + Format Biome
Testing Vitest · Playwright
Logging pino
Observability OpenTelemetry · Prometheus · Grafana · Loki
Deployment bun build --compile → single binary · Docker · Vercel · Cloudflare Workers

See docs/06-TECH-STACK.md and docs/12-STORAGE-ABSTRACTION.md.


4. Documentation

4.0 Local Reference Repos (AI Core)

When implementing Keeni Agent / Memory, clone these read-only references at the repo root (gitignored, not committed):

Local path Upstream Related docs
hermes-agent/ NousResearch/hermes-agent 09-AGENT-ENGINE.md
agentmemory/ rohitg00/agentmemory 10-AGENT-MEMORY.md, 11-RAG-KNOWLEDGE.md
git clone --depth 1 https://github.com/NousResearch/hermes-agent.git hermes-agent
git clone --depth 1 https://github.com/rohitg00/agentmemory.git agentmemory

Entry points, responsibilities, and boundaries with the Featurebase-style frontend are in docs/00-REFERENCE-REPOS.md.

4.1 Product & System Design

Doc Contents
00-REFERENCE-REPOS.md Local reference repos: clone setup, code entry points, mapping to docs 09–11
01-PRD.md Product requirements (users, scenarios, goals)
02-FEATURES.md Feature list and Featurebase comparison matrix
03-ARCHITECTURE.md System architecture
04-MODULES.md Core module design
05-FRONTEND.md Frontend UI and Messenger Widget
06-TECH-STACK.md Tech stack rationale (TS-first)
07-DATA-MODEL.md Database schema design
08-ROADMAP.md Phased execution roadmap
docs/index.md Documentation hub
DEPLOYMENT.md Self-host: Docker lite, Bun binary, cloud-shaped deploy
MIGRATION.md Intercom / Zendesk import (keenai import stub)
GA.md Release checklist (v0.2.0 = Phase 0~3 complete)

4.2 AI Core (Agent / Memory / RAG)

Doc Contents References
09-AGENT-ENGINE.md Keeni Agent runtime: Plan-Act-Observe-Reflect loop, personality, context assembly, multi-LLM providers, tools/MCP, skill learning, subagents, sandbox, cron hermes-agent + Mastra
10-AGENT-MEMORY.md Keeni Memory: 4-layer consolidation, hook pipeline, memory slots, hybrid retrieval (BM25 + vector + graph), decay, contradiction detection, KG, team memory, GDPR agentmemory
11-RAG-KNOWLEDGE.md KB / RAG: multi-source connectors, chunking, contextual retrieval, hybrid retriever, reranker, knowledge graph, i18n, versioning, eval harness AgentMemory + Anthropic + LlamaIndex.ts

4.3 Infrastructure & Automation

Doc Contents
12-STORAGE-ABSTRACTION.md Storage abstraction: Store / VectorStore / FTSStore + Drizzle dual-dialect (PG pgvector ⟷ SQLite sqlite-vec), migrations, contract tests
13-WORKFLOW.md Workflow engine: Featurebase-style workflows (13 triggers / 21 actions) + Inngest execution, React Flow builder, versioning, shadow runs, eval harness
14-MULTIMODAL.md Multimodal messaging: text / image / audio / video / file — canonical MessagePart model, inbound adapters, media pipeline, Agent vision/STT, outbound rendering
15-MEMORY-TREE.md Memory Tree: OpenHuman-style summary trees (source / topic / global), bucket-seal pipeline, hotness, on top of Keeni 4-layer memory

5. Development (Monorepo Root)

cp .env.example .env
pnpm install
pnpm db:migrate   # Apply LibSQL migrations
pnpm seed         # Demo account: owner@keenai.local / keenai-demo-12
pnpm dev          # API :8090 + Dashboard :3000/inbox
pnpm test
pnpm smoke        # API smoke test: health + login + /me + conversations (requires dev + seed)
pnpm kb:eval      # KB golden retrieval eval (Vitest)
pnpm kb:bench     # KB search load test (requires dev + seed; see docs/DEPLOYMENT.md)
pnpm keenai import intercom --file ./export.zip --org-slug demo --dry-run
pnpm storybook    # Design system → http://localhost:6006

API smoke test (separate terminal, after pnpm dev):

pnpm db:migrate && pnpm seed   # First run
pnpm smoke                     # or: bash scripts/smoke.sh
keenai/
├── apps/
│   ├── api/               @keenai/api
│   └── dashboard/         @keenai/dashboard (Inbox)
├── packages/
│   ├── shared/            @keenai/shared
│   ├── storage/           @keenai/storage (+ Drizzle migrations)
│   ├── auth/              @keenai/auth
│   └── ui/                @keenai/ui (design system + Storybook)
├── infra/                 Docker · Compose
└── docs/                  Design docs

Matches the monorepo layout in 06-TECH-STACK.md §2.

Phase 1 · Conversations API

Method Path Description
GET /api/v1/conversations Inbox list (?status=&brandId=&cursor=)
POST /api/v1/conversations Create conversation (optional initialMessage)
GET /api/v1/conversations/:id Conversation detail
GET /api/v1/conversations/:id/messages Message history
POST /api/v1/conversations/:id/messages Send message (agent / internal note)
GET /api/v1/conversations/:id/stream SSE real-time events
GET /api/v1/conversations/:id/ws?access_token= WebSocket (Bun runtime)

6. Quick Start (Alpha)

Full Alpha details: docs/ALPHA.md.

KeenAI supports three deployment profiles:

6.1 Lite (default — Docker, zero external deps)

Indie / self-hosted single machine / demo — API + Dashboard containers, LibSQL single-file database.

git clone https://github.com/ai77/keenai.git
cd keenai
docker compose --profile lite up --build -d
# or: pnpm docker:lite

# Dashboard: http://localhost:3000  (owner@keenai.local / keenai-demo-12)
# API:       http://localhost:8090

Local development (no Docker):

cp .env.example .env
pnpm install && pnpm db:migrate && pnpm seed
pnpm dev    # API :8090 + Dashboard :3000
pnpm smoke

6.2 Standard (PostgreSQL + Redis + MinIO)

For mid-size teams / SaaS deployments.

docker compose --profile standard up -d

6.3 Cloud (Vercel / Cloudflare + managed PG)

Edge:   Cloudflare Workers (Widget API)
Web:    Vercel (Dashboard / Portal / Help Center)
API:    Vercel Functions / Fly.io / Railway (Hono + Bun)
Queue:  Inngest Cloud
DB:     Supabase / Neon / Turso
Vector: pgvector / Qdrant Cloud

Migrating from Lite to Standard: bunx keenai migrate-backend --from sqlite --to postgres (includes vector index rebuild).


7. Roadmap Overview

Phase 1 (M1–M3)   MVP: Inbox + Messenger + Email + Basic AI Reply
Phase 2 (M4–M6)   Workflows + Tickets + Feedback Portal
Phase 3 (M7–M9)   Keeni AI Agent + Help Center + Roadmap
Phase 4 (M10–M12) Changelog + Copilot + Multi-brand
Phase 5 (M13+)    Plugin marketplace + Enterprise (SSO / SAML / Audit Log)

See docs/08-ROADMAP.md.


8. License

AGPL-3.0 — Same license model as Plausible, Cal.com, PostHog, and Supabase: SaaS deployments must contribute back.


9. Contributing

Issues, PRs, and Discussions are welcome. See CONTRIBUTING.md.

Toolchain (Bun + Node)

Purpose Recommended Notes
API runtime Bun 1.2+ pnpm dev:api · WebSocket · Bun integration tests
Package manager / build pnpm 9+ + Node 22 Dashboard, UI, Vitest, Biome
Database migrations pnpm pnpm db:migrate (resolves paths to monorepo root from any cwd)

The API requires Bun; Dashboard and tests run on Node only.

About

Open-source alternative to Featurebase — AI-powered customer support, feedback management, help center, and changelog — all in one self-hostable platform.

Resources

Contributing

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages