Skip to content

heng1234/polychat

Repository files navigation

polychat

30-second local ChatGPT alternative. No Docker. No database setup. Just npx polychat. Multi-model (GPT/Claude/Gemini/Qwen/DeepSeek/...), image generation, image input. Gateway-friendly.

简体中文 · English below


✨ Why polychat?

polychat Open WebUI LibreChat LobeChat
Install npx polychat Docker Docker + MongoDB Vercel + PostgreSQL
Setup time ~30 seconds 15-30 min 30 min+ 15-20 min
External deps None Docker Mongo + Meili + Vector DB PostgreSQL
Bundle ~2 MB Hundreds of MB Hundreds of MB
Multi-model
Image gen
Image input
Local-first partial

Quick start

# Run without installing
npx polychat

# Or install globally
npm install -g polychat-app
polychat

The browser opens to http://localhost:3333 automatically. First-run wizard helps you add an API key.

Features

  • Multi-model: OpenAI, Anthropic Claude, Google Gemini, xAI Grok, OpenRouter, plus any OpenAI-compatible gateway
  • Gateway-first: built-in templates for new-api, one-api, 火山方舟, 智谱, DeepSeek, Moonshot Kimi, Qwen DashScope, Together, Groq, Fireworks
  • Image generation with /image <prompt> (works with gpt-image-1, dall-e-3, gemini-3-pro-image-preview, etc.)
  • Image input — drag, paste, or upload images for vision models
  • Multi-conversation sidebar with persistent history (SQLite)
  • Markdown + syntax-highlighted code (Shiki, 16+ languages)
  • Model manager — browse, favorite, set defaults from your provider's /v1/models
  • Settings wizard — one-click gateway templates, test connectivity before saving
  • HTTP proxy support — honors HTTPS_PROXY env var for corporate / VPN setups
  • Bilingual UI (中文 / English), Chinese default
  • Local-first — your code, keys, and chats never leave your machine

Configuration

Stored at ~/.polychat/config.json (mode 0600).

{
  "defaultModel": "polyai:claude-sonnet-4-6",
  "defaultImageModel": "polyai:gemini-3-pro-image-preview",
  "providers": {
    "polyai": {
      "apiKey": "sk-...",
      "baseUrl": "https://your-gateway/v1"
    }
  }
}

Environment variables (precedence over config file):

POLYAI_API_KEY=sk-...          # also accepts OPENAI_API_KEY
POLYAI_BASE_URL=https://...    # also accepts OPENAI_BASE_URL
ANTHROPIC_API_KEY=sk-ant-...
HTTPS_PROXY=http://127.0.0.1:7890   # for VPN/corporate proxy

"polyai" is our short name for "any OpenAI-compatible provider" — the actual model behind it can be Claude, Gemini, Qwen, etc., depending on your gateway.

Commands

polychat                        # start web UI (default)
polychat --port 4000            # custom port
polychat --no-open              # don't auto-open browser
polychat config                 # show current config
polychat login <provider>       # interactively set API key

Requirements

  • Node.js ≥ 20 (uses node:sqlite, recommended Node 22+)
  • macOS / Linux / Windows
  • A modern browser (Chrome / Safari / Edge / Firefox)

Slash commands (in chat)

  • /image <prompt> — generate image (also /img, /draw, /画)

Architecture

  • Backend: Hono server (~50KB), Vercel AI SDK v6
  • Frontend: React + Vite + Tailwind + shadcn-style components, ~470KB JS gzipped
  • DB: SQLite via Node 22+ built-in node:sqlite (zero native deps)
  • Single npm package with everything bundled

Security

  • All keys stored locally (~/.polychat/config.json, mode 0600)
  • No telemetry, no cloud sync, no account system
  • Server binds only to 127.0.0.1 (not exposed to network)
  • Pre-commit secret scanner included (.git/hooks/pre-commit)

Contributing

git clone https://github.com/heng1234/polychat.git
cd polychat
npm install
npm run dev:web    # frontend on :5173 with HMR
npm run dev:server # backend on :3333 in watch mode

License

MIT


中文文档

30 秒装好的本地版 ChatGPT。 不要 Docker、不要外部数据库,npx polychat 一行搞定。 多模型(GPT/Claude/Gemini/Qwen/DeepSeek 等)、图片生成、图片输入,网关友好。

为什么用 polychat?

polychat Open WebUI LibreChat LobeChat
安装 npx polychat Docker Docker + MongoDB Vercel + PostgreSQL
用时 ~30 秒 15-30 分钟 30+ 分钟 15-20 分钟
外部依赖 Docker Mongo + Meili + 向量库 PostgreSQL
体积 ~2 MB 几百 MB 几百 MB
多模型
图片生成
图片输入
本地优先

快速开始

# 不装,跑一次
npx polychat

# 或全局装
npm install -g polychat-app
polychat

启动后浏览器自动开 http://localhost:3333。首次会弹设置向导引导你配 API key。

主要功能

  • 多模型支持:OpenAI、Claude、Gemini、Grok、OpenRouter,以及任何 OpenAI 兼容网关
  • 国内网关一等公民:内置 new-api / one-api / 火山方舟 / 智谱 / DeepSeek / Kimi / 通义千问 / OpenRouter / Groq / Fireworks 等模板,一键填好 baseUrl
  • 图片生成 /image 一只猫 触发(支持 gpt-image-1 / dall-e-3 / gemini-3-pro-image-preview 等)
  • 图片输入 — 拖、粘贴、上传图片给视觉模型(GPT-4o / Claude / Gemini)
  • 多对话侧栏 + SQLite 历史持久化
  • Markdown + 代码高亮(Shiki,16+ 语言)
  • 模型管理 — 拉网关 /v1/models 列表,收藏、设默认、按类型过滤
  • 设置向导 — 网关模板一键填、测试连通性
  • HTTP 代理透传 — 自动认 HTTPS_PROXY 环境变量
  • 中英双语 UI,默认中文
  • 本地优先 — 代码、key、对话永不出本机

配置文件

位于 ~/.polychat/config.json(权限 0600)。

{
  "defaultModel": "polyai:claude-sonnet-4-6",
  "defaultImageModel": "polyai:gemini-3-pro-image-preview",
  "providers": {
    "polyai": {
      "apiKey": "sk-...",
      "baseUrl": "https://your-gateway/v1"
    }
  }
}

环境变量(优先于配置文件):

POLYAI_API_KEY=sk-...          # 也认 OPENAI_API_KEY
POLYAI_BASE_URL=https://...    # 也认 OPENAI_BASE_URL
HTTPS_PROXY=http://127.0.0.1:7890   # 走 VPN 时设这个

polyai 是我们对"OpenAI 兼容协议适配器"的简称 — 后面接的模型可以是 Claude、Gemini、Qwen 等,看你网关注册了什么。这个名字避免了"用 polychat 是不是只能跑 OpenAI"的误解。

命令

polychat                       # 启动 Web UI(默认)
polychat --port 4000           # 自定义端口
polychat --no-open             # 不自动开浏览器
polychat config                # 看当前配置
polychat login <provider>      # 交互式配 key

系统要求

  • Node.js ≥ 20(用了 node:sqlite,建议 Node 22+)
  • macOS / Linux / Windows
  • 现代浏览器(Chrome / Safari / Edge / Firefox)

聊天里的快捷命令

  • /image <提示词> — 生成图片(也支持 /img/draw/画)

协议

MIT

About

30-second local ChatGPT alternative. No Docker. Multi-model (GPT/Claude/Gemini/Qwen). Image gen + image input. Gateway-friendly.

Resources

License

Contributing

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages