Chakor - Your AI, on Your Hardware
An open-source AI workspace you run yourself. Local and cloud models, web search, document chat, model compare, notes, and memory - all private on your own machine.
What You Will Learn / Do
- Stand up a private AI workspace with Docker, a one-command installer, or a manual dev build.
- Connect local engines (llama.cpp, Ollama, LM Studio) or bring your own cloud API keys.
- Download GGUF models from Hugging Face in-app and switch models from the UI, no terminal.
- Stack: Next.js 15, React 19, TypeScript, Tailwind, SQLite (better-sqlite3), Auth.js v5 · License: MIT
Overview
Chakor is an open-source AI workspace that runs entirely on hardware you control. Point it at a local model or your own API keys, then chat, search the web, talk to your documents, compare models side by side, and run real research. Conversations live in a SQLite database on your disk, not in someone else's data center. It is a lighter, friendlier alternative to Open WebUI and an open-source answer to LM Studio that also runs on a server and on your phone.
Three things set it apart: it reads your RAM and GPU and tags every model FITS, TIGHT, or TOO BIG so you never load one that crashes; it downloads GGUF models from Hugging Face in the background straight into your models folder; and it switches between llama.cpp, Ollama, and LM Studio in one tap, freeing the previous model first so two never fight for the same VRAM.
Architecture Overview
Quick Start
Pick whichever fits you. All three end with the app on http://localhost:3001. The first account you register becomes the admin. For a solo setup, set REGISTRATION_MODE=open before you register, or use the default invite code on the register screen.
Option 1: Docker (Linux, macOS, Windows)
The least-fuss path. Install Docker, then clone and bring it up; a secret key is generated and stored in the data volume.
git clone https://github.com/TYFSADIK/chakor.git && cd chakor && docker compose up -dOption 2: One-command installer (Linux, macOS, Android)
The hands-off path. The installer detects your OS and package manager and installs Git, a build chain, Node 20+, and Ollama, then starts Chakor. On Android, run the same command inside Termux and your phone becomes the server.
git clone https://github.com/TYFSADIK/chakor.git && cd chakor && bash install.shsudo bash install.sh --yes --service # fresh server, unattended, 24/7 systemd serviceOption 3: Manual (for developers)
npm install --legacy-peer-deps && cp .env.example .env.local && npm run build && npm startGet a Model
Chakor needs something to talk to. The simplest route is Ollama; Chakor auto-discovers its installed models.
ollama pull llama3.2- llama.cpp: point
LLAMA_SERVER_BINat yourllama-serverand Chakor supervises it. No model yet? Use Settings → Models → Download from Hugging Face, with a fit tag per quant. - Cloud keys: set
OPENAI_API_KEY,ANTHROPIC_API_KEY,GOOGLE_AI_API_KEY, or oneOPENROUTER_API_KEYfor hundreds of models. - Hardware-aware: Settings → Models shows detected RAM/GPU and marks each model FITS, TIGHT, or TOO BIG with a RECOMMENDED pick.
How Model Switching Works
Switch model per message from the chat header, flip engines (llama.cpp / Ollama / LM Studio) in one tap, and download in the background so you can close the tab. On a roomy GPU, enable "keep multiple models loaded" for instant switching; on a modest machine it stays safely one-at-a-time so two models never OOM.
Key Features
- Models, your way: local (Ollama/LM Studio/llama.cpp, GPU or CPU) and cloud (OpenAI, Anthropic, Google, OpenRouter), switchable per message.
- Knowledge + web: built-in web search (SearXNG → Brave → DuckDuckGo fallback), document chat (PDF/text/markdown), and a cited research mode.
- More than a chat box: blind A/B Compare with a leaderboard, cross-conversation Memory, a Keep-style Notes panel, folders/tags/archive, vision input, and shareable links.
- Private + yours: no telemetry, local SQLite storage, multi-user with an admin panel, a live theme editor, and full rebrand from one config file. Installable as a PWA on phone and desktop.
Testing & Validation
After startup, open http://localhost:3001 and register the first (admin) account, then confirm a model responds:
curl -s -o /dev/null -w "%{http_code}\n" http://localhost:3001You should see 200, the model picker should list your Ollama/LM Studio models or cloud providers, and a test prompt should stream a reply. If all three hold, your private AI workspace is live.
Troubleshooting
- Installer stopped partway: re-run
bash install.sh- it is safe to re-run and skips finished steps; the log is ininstall.log. - npm install fails on peer deps: use
npm install --legacy-peer-deps. - Chat cannot connect: confirm Ollama, LM Studio, or llama.cpp is running, or set a cloud key. Settings → Models shows which engines are up.
- Local model keeps crashing: it is likely TOO BIG; pick the recommended fit or switch engines from the model menu.
- Cannot sign in after first run: the first registered account is admin; check
REGISTRATION_MODEandINVITE_CODE.
Key Results
- Delivered a self-hosted AI workspace with 100% local conversation storage (no telemetry).
- Unified 3 local engines plus 4+ cloud providers behind one UI, switchable per message.
- Added hardware-aware model fit tagging that prevents out-of-memory crashes on load.
- Shipped a hands-off installer (v2.4.1) that provisions every dependency in one command.