ChatForge is a full-stack AI chat application with a Next.js 15 frontend and a Node.js backend. It works as an OpenAI-compatible API proxy and adds server-side tool orchestration, conversation forking, model comparison with a judge, Playwright-powered browsing, and a desktop app.

OpenWebUI and LibreChat are good options. ChatForge covers a few things they don’t.

Compared with OpenWebUI and LibreChat

FeatureChatForgeOpenWebUILibreChat
ArchitectureNode.js + SQLite (single binary)Python + larger stackNode.js + MongoDB
Browser Automation✅ Playwright with SPA support❌ Basic fetch❌ Basic fetch
Model Comparison✅ Side-by-side with judge❌❌
Conversation Forking✅ Fork at any message❌❌
Cross-Conv Memory✅ Built-in Journal tool❌❌
Prompt Caching✅ Automatic cache breakpoints❌❌
Desktop App✅ Electron with auto-login❌❌
Checkpoint Persistence✅ Resume aborted streams❌❌

Features

  • Judge models: Compare models side-by-side, each with its own isolated conversation history, and have a configurable judge model score the answers and explain why.
  • Playwright web fetch: Pages load in a real browser, with dedicated extractors for Reddit, Stack Overflow, and SPAs that block plain HTTP crawlers.
  • Conversation forking: Branch from any message without losing the original thread.
  • Journal tool: The model can store notes and read them back in later conversations.
  • Prompt caching: Cache breakpoints are inserted automatically (mainly for Anthropic models) to cut token cost and latency.
  • Checkpointed streaming: Stop a response at any point; the state is saved so you can resume or branch from there.
  • Desktop app: Cross-platform Electron build with auto-login and native packaging.
  • One-container deploy: A single Docker image with SQLite. No external database.
  • Server-side tool orchestration: Iterative and parallel tool calls, thinking support, and error handling.
  • Streaming over SSE: Tool execution is visible as it happens, and streams can be aborted.
  • Persistence: SQLite storage with retention cleanup and migrations.
  • Providers: OpenAI, Anthropic, and Gemini behind one OpenAI-compatible interface.
  • UI: React 19 with markdown, syntax highlighting, code wrapping, HTML preview, and a responsive layout.
  • Prompts: Built-in and custom system prompts, picked per conversation.
  • Attachments: Images (with vision models, drag-and-drop), audio for voice-capable models, and text files.
  • Reasoning controls: Reasoning effort and extended thinking modes.

Quick Start

One-line Docker deployment:

docker run -d --name chatforge -p 3000:3000 \
  -v chatforge_data:/data -v chatforge_logs:/app/logs \
  -e DB_URL=file:/data/prod.db qduc/chat:latest

Visit http://localhost:3000, register, and configure your API keys in Settings → Providers & Tools.

Tech Stack

  • Frontend: Next.js 15, React 19, TypeScript
  • Backend: Node.js, Express, SQLite
  • Desktop: Electron for cross-platform support

Docs and setup instructions are in the GitHub repository.