2026 AI / Infrastructure / Open Source GitHub ↗ Docs ↗

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.

01

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 -d
Optionally bundle a local model: docker compose --profile ollama up -d
02

Option 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.sh
Full build with CUDA-aware llama.cpp: bash install.sh --all
sudo bash install.sh --yes --service # fresh server, unattended, 24/7 systemd service
03

Option 3: Manual (for developers)

npm install --legacy-peer-deps && cp .env.example .env.local && npm run build && npm start
Set AUTH_SECRET with: openssl rand -base64 32

Get a Model

Chakor needs something to talk to. The simplest route is Ollama; Chakor auto-discovers its installed models.

ollama pull llama3.2
Or load a model in LM Studio's Developer tab, or download a GGUF from Hugging Face inside the app.
  • llama.cpp: point LLAMA_SERVER_BIN at your llama-server and 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 one OPENROUTER_API_KEY for 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:3001

You 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 in install.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_MODE and INVITE_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.
Next.jsTypeScriptReactSQLitellama.cppOllamaLM StudioDockerSelf-HostedOpen Source