[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-81534":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":11,"openIssues":13,"contributorsCount":14,"subscribersCount":14,"size":14,"stars1d":15,"stars7d":15,"stars30d":15,"stars90d":14,"forks30d":14,"starsTrendScore":13,"compositeScore":16,"rankGlobal":9,"rankLanguage":9,"license":17,"archived":18,"fork":18,"defaultBranch":19,"hasWiki":18,"hasPages":20,"topics":21,"createdAt":9,"pushedAt":9,"updatedAt":33,"readmeContent":34,"aiSummary":35,"trendingCount":14,"starSnapshotCount":14,"syncStatus":12,"lastSyncTime":36,"discoverSource":37},81534,"overtchat","yoloyash\u002Fovertchat","yoloyash","A simpler self-hosted alternative to Open WebUI. Bring your own API keys or local models. Native Android client in closed beta.",null,"TypeScript",26,2,3,0,1,1.43,"MIT License",false,"main",true,[22,23,24,25,26,27,28,29,30,31,32],"android","chatgpt-alternative","expo","llm","local-llm","mobile","nextjs","ollama","openwebui","react-native","self-hosted","2026-06-12 02:04:16","\u003Cp align=\"center\">\n  \u003Cimg src=\".github\u002Fassets\u002Fbanner.png\" alt=\"overtchat banner\" width=\"600\" \u002F>\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  A lightweight self-hosted chat client that \"just works\". One \u003Ccode>docker compose up\u003C\u002Fcode> and you're in.\n\u003C\u002Fp>\n\n\u003Cp align=\"center\">\n  \u003Ca href=\"docs\u002Fandroid-testing.md\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FAndroid-Google_Play-22C55E?logo=googleplay&logoColor=white\" alt=\"Android on Google Play\" valign=\"middle\">\u003C\u002Fa>&nbsp; • &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fyoloyash.github.io\u002Fovertchat\u002Fprivacy.html\">\u003Cimg src=\"https:\u002F\u002Fimg.shields.io\u002Fbadge\u002FPrivacy-Zero_Telemetry-teal?color=0D9488\" alt=\"Privacy Policy\" valign=\"middle\">\u003C\u002Fa>&nbsp; • &nbsp;\n  \u003Ca href=\"https:\u002F\u002Fgithub.com\u002Fyoloyash\u002Fovertchat\">\u003Cimg src=\".github\u002Fbadges\u002Ftokens.svg\" alt=\"repo tokens\" valign=\"middle\">\u003C\u002Fa>\n\u003C\u002Fp>\n\nhttps:\u002F\u002Fgithub.com\u002Fuser-attachments\u002Fassets\u002Fbb1c6b31-97ad-43dc-b39c-743c12d7ae4b\n\n## Why I built overtchat\n\n[Open WebUI](https:\u002F\u002Fgithub.com\u002Fopen-webui\u002Fopen-webui) is an impressive project, but every time I tried to actually live in it something got in the way. The browser tab would peg CPU and balloon past a gig on long replies — the streaming pipeline re-broadcasts the entire growing message body on every token, so a long chat is O(N²) in bytes ([#23733](https:\u002F\u002Fgithub.com\u002Fopen-webui\u002Fopen-webui\u002Fissues\u002F23733), still open). Pasting any sizeable chunk of text would freeze the page for seconds ([#12087](https:\u002F\u002Fgithub.com\u002Fopen-webui\u002Fopen-webui\u002Fissues\u002F12087), still open). The v0.9 release line shipped a run of migration regressions where you'd `docker pull` and then have to `docker exec` into the container and hand-edit alembic scripts before the app would boot.\n\nAnd underneath all that, the UI just feels heavy. Settings pages full of toggles for features I'd never use. Web search that wants its own API key. TTS that wants its own setup. A hundred surfaces in front of a single text box.\n\nI wanted a chat app I could open and use. So I wrote one.\n\n## What's different, concretely\n\n- **One process, one SQLite file, one tiny Redis.** A Next.js app, a SQLite file for everything that matters, and a tiny Redis container (~13 MB idle, capped at 64 MB) that exists only so a reload mid-reply doesn't drop your tokens. No Postgres, no Celery, no separate API service. Schema migrations are one Drizzle command on container boot.\n- **600 MB Docker image vs Open WebUI's 1.7 GB** (compressed, amd64, pulled from `ghcr.io` on 2026-05-20). About a third the size on disk, fewer layers.\n- **No plugin runtime, no pipelines, no functions framework.** Tools are two AI SDK definitions in [`apps\u002Fweb\u002Flib\u002Ftools.ts`](apps\u002Fweb\u002Flib\u002Ftools.ts): `web_search` (SearXNG) and `fetch_url` (Defuddle → markdown). That's the whole extensibility surface.\n- **No RAG, no embeddings, no vector DB.** Chat search is SQLite FTS5 + BM25, populated by triggers ([`apps\u002Fweb\u002Flib\u002Fdb\u002Fsearch.ts`](apps\u002Fweb\u002Flib\u002Fdb\u002Fsearch.ts)). Web search results go straight into context as JSON.\n- **One LLM client for everything.** Anthropic, Google Gemini, OpenAI, Groq, OpenRouter, xAI, Mistral, DeepSeek, Together, Ollama, vLLM, llama.cpp — all through [`@ai-sdk\u002Fopenai-compatible`](apps\u002Fweb\u002Flib\u002Fllm.ts).\n\nIf you want every feature in the world — image generation, a code interpreter, knowledge graphs, a plugin marketplace — use Open WebUI or LibreChat. If you want a chat app that opens in under a second and stays out of your way, this is that.\n\n## Quick start\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fyoloyash\u002Fovertchat\ncd overtchat\ncp .env.example .env\necho \"BETTER_AUTH_SECRET=$(openssl rand -hex 32)\" >> .env\necho \"SEARXNG_SECRET=$(openssl rand -hex 32)\" >> .env\ndocker compose up -d --build\n```\n\nOpen [http:\u002F\u002Flocalhost:4718](http:\u002F\u002Flocalhost:4718), sign up, the setup wizard takes you the rest of the way.\n\n**LAN access:** set `BETTER_AUTH_URL=http:\u002F\u002F\u003Cyour-lan-ip>:4718` in `.env`, then `docker compose up -d`.\n**Internet access:** uncomment the `cloudflared` block in `compose.yml` and paste a tunnel token.\n\n## Mobile\n\novertchat now ships as a native Android app — same chat surface, same model picker, same uploads, voice, and web search you have on web.\n\nIt's a thin client: **bring your own server**. On first launch, enter the URL of an overtchat instance you control. Chats and files live there, not in the app.\n\n- **Android:** Install through [Google Play](docs\u002Fandroid-testing.md).\n- **iOS:** In progress, no timeline yet.\n\n## What's in the box\n\n- Multi-user auth, first signup becomes admin\n- Persistent chat history, auto-titled, full-text searchable\n- File uploads — images, PDFs, Word, Excel, CSV, source code\n- Projects with per-project system prompts\n- Web search via bundled SearXNG. No API key.\n- Text-to-speech via bundled Kokoro. No setup.\n- Speech-to-text via Parakeet TDT v3 (opt-in, CPU or NVIDIA GPU)\n- Chat export (JSON \u002F Markdown)\n\n## Speech-to-text (optional)\n\nOff by default — the mic button in the composer is greyed out until you bring up the Parakeet sidecar:\n\n```bash\ndocker compose --profile stt up -d        # CPU (~670 MB model, ~2 GB RAM)\ndocker compose --profile stt-gpu up -d    # NVIDIA GPU (requires NVIDIA Container Toolkit)\n```\n\nMultilingual (25 languages, auto-detected). All processing stays on your machine. Model downloads on first start (~10 s) and is cached in a Docker volume.\n\n## Privacy\n\nNo telemetry, no analytics. No external calls except the LLM endpoint you configure and the bundled SearXNG (which runs on your machine). All data lives in a single SQLite file you can copy, back up, or delete.\n\nThe Android client adds one exception: crash reports go to Sentry (no chat content, no credentials). Details in the [privacy policy](https:\u002F\u002Fyoloyash.github.io\u002Fovertchat\u002Fprivacy.html).\n\n## Requirements\n\n- Docker + Docker Compose v2\n- ~1 GB RAM free for the app stack (Kokoro TTS pulls ~100 MB on first boot)\n- An LLM endpoint (API key or self-hosted)\n\n## Stack\n\nNext.js 16 · Vercel AI SDK v6 · Better Auth · Drizzle + SQLite · Redis (resume buffer) · base-ui · Tailwind · SearXNG · Kokoro TTS\n\n## More\n\n- [docs\u002Fdeploy.md](docs\u002Fdeploy.md) — updates, backup, troubleshooting\n\n## License\n\nMIT. Fork it, white-label it, ship it. No branding clauses to negotiate around.\n","overtchat 是一个轻量级的自托管聊天客户端，旨在提供更简洁的用户体验。该项目使用 TypeScript 编写，支持用户自带 API 密钥或本地模型，并且正在封闭测试阶段提供原生 Android 客户端。其核心功能包括一键部署（通过 `docker compose up`）、极简配置（仅需一个进程、一个 SQLite 文件和一个小型 Redis 实例），以及对多种 LLM 的支持。与 Open WebUI 相比，overtchat 显著减少了资源占用，例如 Docker 镜像大小仅为 600MB，同时去除了复杂的插件系统和管道处理，使得应用更加专注于核心聊天功能。它非常适合需要快速搭建私有聊天环境且注重隐私保护的个人或团队使用。","2026-06-11 04:05:24","CREATED_QUERY"]