# engrtarun/chitraai architecture

> Architecture diagram of the GitHub repository engrtarun/chitraai, generated by GitDiagram from its file tree, README and a sample of source files (last updated 2026-09-30). It is an AI-made overview: check details against the source.

- Interactive diagram: https://gitdiagram.com/engrtarun/chitraai
- Repository: https://github.com/engrtarun/chitraai

## Overview

Lobe Chat is a self-hostable chatbot framework. Users interact with chat workspaces and configure models, agents, and plugins; the server routes chat requests into an agent runtime and exposes related marketplace, plugin, speech, and image-generation APIs. The tree also shows session, topic, profile, and settings areas. Source excerpts establish several API dispatches, but the README is empty and most UI-to-API wiring and storage behavior were not sampled; those relationships are therefore omitted or marked unverified.

Main entry points: [`video-generator-ui/src/app/api/chat/[provider]/route.ts`](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/chat/%5Bprovider%5D/route.ts) (Chat API Route), [`video-generator-ui/src/app/api/plugin/gateway/route.ts`](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/plugin/gateway/route.ts) (Plugin Gateway API), [`video-generator-ui/src/app/(main)/chat/(workspace)/page.tsx`](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/(main)/chat/(workspace)/page.tsx) (Chat Workspace), [`video-generator-ui/src/app/api/chat/agentRuntime.ts`](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/chat/agentRuntime.ts) (Agent Runtime)

## Diagram (Mermaid)

```mermaid
flowchart TD

subgraph group_experience["Chat Experience"]
  node_workspace["Chat Workspace<br/>[page.tsx]"]
  node_sessions["Session History<br/>[index.tsx]"]
  node_topics["Topics<br/>[index.tsx]"]
  node_market_ui["Agent Market UI<br/>[page.tsx]"]
end

subgraph group_configuration["User Configuration"]
  node_settings["Settings UI<br/>[page.tsx]"]
end

subgraph group_runtime["Chat Runtime"]
  node_chat_route["Chat API Route<br/>[route.ts]"]
  node_agent_runtime["Agent Runtime<br/>[agentRuntime.ts]"]
  node_key_manager["API Key Manager<br/>[apiKeyManager.ts]"]
  node_model_routes["Provider Routes<br/>[route.ts]"]
end

subgraph group_capabilities["Extended Capabilities"]
  node_market_routes["Market API<br/>[route.ts]"]
  node_market_service["Agent Market<br/>[AgentMarket.ts]"]
  node_plugin_route["Plugin Gateway API<br/>[route.ts]"]
  node_plugin_settings["Plugin Settings Parser<br/>[settings.ts]"]
  node_plugin_store_route["Plugin Store API<br/>[route.ts]"]
  node_plugin_store["Plugin Store<br/>[Store.ts]"]
  node_speech["Speech APIs<br/>[route.ts]"]
  node_image["Text-to-Image API<br/>[route.ts]"]
  node_webhook["Clerk Webhook<br/>[route.ts]"]
  node_webhook_validation["Webhook Validation<br/>[validateRequest.ts]"]
end

node_user(("User"))
node_llm_provider{{"LLM Provider"}}
node_plugin_gateway{{"Plugin Gateway Service"}}

node_user -.->|"uses"| node_workspace
node_workspace -.->|"submits chat"| node_chat_route
node_chat_route -->|"initializes runtime"| node_agent_runtime
node_agent_runtime -->|"uses keys"| node_key_manager
node_model_routes -->|"dispatches to"| node_chat_route
node_chat_route -.->|"requests completion"| node_llm_provider
node_market_routes -->|"resolves index"| node_market_service
node_market_ui -.->|"browses agents"| node_market_routes
node_plugin_route -->|"parses settings"| node_plugin_settings
node_plugin_route -->|"forwards request"| node_plugin_gateway
node_plugin_store_route -->|"gets index URL"| node_plugin_store
node_webhook -->|"validates request"| node_webhook_validation

click node_workspace "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/(main)/chat/(workspace)/page.tsx"
click node_sessions "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/(main)/chat/%40session/features/SessionListContent/index.tsx"
click node_topics "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/(main)/chat/(workspace)/%40topic/features/TopicListContent/index.tsx"
click node_market_ui "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/(main)/market/page.tsx"
click node_settings "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/(main)/settings/llm/page.tsx"
click node_chat_route "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/chat/%5Bprovider%5D/route.ts"
click node_agent_runtime "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/chat/agentRuntime.ts"
click node_key_manager "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/chat/apiKeyManager.ts"
click node_model_routes "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/chat/anthropic/route.ts"
click node_market_routes "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/market/route.ts"
click node_market_service "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/market/AgentMarket.ts"
click node_plugin_route "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/plugin/gateway/route.ts"
click node_plugin_settings "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/plugin/gateway/settings.ts"
click node_plugin_store_route "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/plugin/store/route.ts"
click node_plugin_store "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/plugin/store/Store.ts"
click node_speech "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/openai/tts/route.ts"
click node_image "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/text-to-image/%5Bprovider%5D/route.ts"
click node_webhook "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/webhooks/clerk/route.ts"
click node_webhook_validation "https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/webhooks/clerk/validateRequest.ts"

classDef toneNeutral fill:#f8fafc,stroke:#334155,stroke-width:1.5px,color:#0f172a
classDef toneBlue fill:#dbeafe,stroke:#2563eb,stroke-width:1.5px,color:#172554
classDef toneAmber fill:#fef3c7,stroke:#d97706,stroke-width:1.5px,color:#78350f
classDef toneMint fill:#dcfce7,stroke:#16a34a,stroke-width:1.5px,color:#14532d
classDef toneRose fill:#ffe4e6,stroke:#e11d48,stroke-width:1.5px,color:#881337
classDef toneIndigo fill:#e0e7ff,stroke:#4f46e5,stroke-width:1.5px,color:#312e81
classDef toneTeal fill:#ccfbf1,stroke:#0f766e,stroke-width:1.5px,color:#134e4a
class node_workspace,node_sessions,node_topics,node_market_ui,node_user toneBlue
class node_settings toneAmber
class node_chat_route,node_agent_runtime,node_key_manager,node_model_routes toneMint
class node_market_routes,node_market_service,node_plugin_route,node_plugin_settings,node_plugin_store_route,node_plugin_store,node_speech,node_image,node_webhook,node_webhook_validation toneRose
class node_llm_provider,node_plugin_gateway toneIndigo
```

## Components

### Chat Experience

- [Chat Workspace](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/(main)/chat/(workspace)/page.tsx): `video-generator-ui/src/app/(main)/chat/(workspace)/page.tsx`
- [Session History](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/(main)/chat/%40session/features/SessionListContent/index.tsx): `video-generator-ui/src/app/(main)/chat/@session/features/SessionListContent/index.tsx`
- [Topics](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/(main)/chat/(workspace)/%40topic/features/TopicListContent/index.tsx): `video-generator-ui/src/app/(main)/chat/(workspace)/@topic/features/TopicListContent/index.tsx`
- [Agent Market UI](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/(main)/market/page.tsx): `video-generator-ui/src/app/(main)/market/page.tsx`

### User Configuration

- [Settings UI](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/(main)/settings/llm/page.tsx): `video-generator-ui/src/app/(main)/settings/llm/page.tsx`

### Chat Runtime

- [Chat API Route](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/chat/%5Bprovider%5D/route.ts): `video-generator-ui/src/app/api/chat/[provider]/route.ts`
- [Agent Runtime](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/chat/agentRuntime.ts): `video-generator-ui/src/app/api/chat/agentRuntime.ts`
- [API Key Manager](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/chat/apiKeyManager.ts): `video-generator-ui/src/app/api/chat/apiKeyManager.ts`
- [Provider Routes](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/chat/anthropic/route.ts): `video-generator-ui/src/app/api/chat/anthropic/route.ts`

### Extended Capabilities

- [Market API](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/market/route.ts): `video-generator-ui/src/app/api/market/route.ts`
- [Agent Market](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/market/AgentMarket.ts): `video-generator-ui/src/app/api/market/AgentMarket.ts`
- [Plugin Gateway API](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/plugin/gateway/route.ts): `video-generator-ui/src/app/api/plugin/gateway/route.ts`
- [Plugin Settings Parser](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/plugin/gateway/settings.ts): `video-generator-ui/src/app/api/plugin/gateway/settings.ts`
- [Plugin Store API](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/plugin/store/route.ts): `video-generator-ui/src/app/api/plugin/store/route.ts`
- [Plugin Store](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/plugin/store/Store.ts): `video-generator-ui/src/app/api/plugin/store/Store.ts`
- [Speech APIs](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/openai/tts/route.ts): `video-generator-ui/src/app/api/openai/tts/route.ts`
- [Text-to-Image API](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/text-to-image/%5Bprovider%5D/route.ts): `video-generator-ui/src/app/api/text-to-image/[provider]/route.ts`
- [Clerk Webhook](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/webhooks/clerk/route.ts): `video-generator-ui/src/app/api/webhooks/clerk/route.ts`
- [Webhook Validation](https://github.com/engrtarun/chitraai/blob/main/video-generator-ui/src/app/api/webhooks/clerk/validateRequest.ts): `video-generator-ui/src/app/api/webhooks/clerk/validateRequest.ts`

### Other components

- **User**
- **LLM Provider**
- **Plugin Gateway Service**

## Connections

- User → Chat Workspace: uses
- Chat Workspace → Chat API Route: submits chat
- Chat API Route → Agent Runtime: initializes runtime (evidence: `video-generator-ui/src/app/api/chat/[provider]/route.ts`)
- Agent Runtime → API Key Manager: uses keys (evidence: `video-generator-ui/src/app/api/chat/agentRuntime.ts`)
- Provider Routes → Chat API Route: dispatches to (evidence: `video-generator-ui/src/app/api/chat/anthropic/route.ts`)
- Chat API Route → LLM Provider: requests completion
- Market API → Agent Market: resolves index (evidence: `video-generator-ui/src/app/api/market/route.ts`)
- Agent Market UI → Market API: browses agents
- Plugin Gateway API → Plugin Settings Parser: parses settings (evidence: `video-generator-ui/src/app/api/plugin/gateway/route.ts`)
- Plugin Gateway API → Plugin Gateway Service: forwards request (evidence: `video-generator-ui/src/app/api/plugin/gateway/route.ts`)
- Plugin Store API → Plugin Store: gets index URL (evidence: `video-generator-ui/src/app/api/plugin/store/route.ts`)
- Clerk Webhook → Webhook Validation: validates request (evidence: `video-generator-ui/src/app/api/webhooks/clerk/route.ts`)
