MCPcopy Index your code
hub / github.com/PurpleDoubleD/locally-uncensored

github.com/PurpleDoubleD/locally-uncensored @v2.5.6

Chat with this repo
repository ↗ · DeepWiki ↗ · release v2.5.6 ↗ · + Follow
2,225 symbols 5,825 edges 431 files 201 documented · 9%
What it actually does AI analysis from the code graph — generated when you open this
loading…
README

Locally Uncensored

Locally Uncensored

Generate anything — text, images, video. Locally. Uncensored.

No cloud. No data collection. No API keys. Auto-detects 12 local backends. Your AI, your rules.

License: AGPL v3 GitHub stars GitHub last commit GitHub Discussions Discord Website

Locally Uncensored Demo

The only desktop app that runs AI chat, image, and video generation — locally, one click, no cloud.

Download · Features · Quick Start · Why This App? · Roadmap


Screenshots

Chat that draws your images Built-in image & video studio
Chat Create
Coding Agent reviews & fixes Agent Mode builds it for you
Coding Agent Agent Mode

v2.5.5 — Current Release

A security and polish patch on top of v2.5.4. Your chats, memories, and gallery carry over automatically, and auto-update prompts on next launch.

Security: A full hardening pass. Remote Access defaults the shell permission off and rate-limits connections, with stronger passcodes and tightened cross-origin rules; file tools are confined to their workspace (path-jail); web fetch and downloads now block requests to internal addresses (SSRF guard); a tighter content-security policy; and optional OS-keychain storage for provider API keys on Windows and macOS.

Improved: Automatic generation settings are now correct per model — FLUX and Z-Image run at their proper low CFG instead of a generic value that washed them out, and Wan / HunyuanVideo / LTX use their intended steps and CFG. After the agent generates an image, vision-capable models on any provider (not only Ollama) now actually see the result and describe it, instead of guessing from the prompt.

Fixed: Smaller chat models behave on the media loop — no stray reasoning when Thinking is off, a steadier context counter, and follow-up requests keep the image/video tool. Attaching an image to a text-only model shows a clear "this model can't read images" note instead of a raw error. ChatGPT imports read every conversation shard (not just the first 100); Claude imports read the modern export format. LM Studio now surfaces image-to-text errors instead of swallowing them. Stop interrupts ComfyUI from both buttons. Plus reporter-driven fixes: external TTS persistence, Ministral in agent mode, a clear control for Create prompt history, and New Chat routing you to the model picker when nothing is selected.


v2.5.4

A stability patch on top of v2.5.3, focused on Remote Access, video, and the agent. Your chats, memories, and gallery carry over automatically, and auto-update prompts on next launch.

Improved: Remote Access is sturdier — the Cloudflare tunnel self-heals (re-downloads a stale tunnel client that used to silently fail), the QR code only appears once the tunnel is actually connected, and closing the remote chat fully stops the server and tunnel. The pairing code now lasts longer so you have time to scan it.

Fixed: Stop / deleting a chat now actually halts generation on the backend (not just the UI) — it frees your GPU right away instead of letting the model keep running. Image-to-Video upload now routes through the local proxy (addresses a "Failed to upload image" error from some Windows WebView builds), and upload problems now show the real reason. The agent honors your configured project folder for file reads/writes. Freshly downloaded models auto-activate. The Create prompt bar is aligned to one height. Building from source: npm run dev no longer crashes when Ollama isn't installed. And the LM Studio model picker no longer freezes when its server is off.


v2.5.3

A maintenance and features patch on top of v2.5.0. Your chats, memories, and gallery carry over automatically, and auto-update prompts on next launch.

New: edit your custom personas, a civitai.red mirror toggle for regions where civitai.com is blocked, and an external TTS engine option — point LU at any OpenAI-compatible endpoint like Kokoro.

Fixed: LM Studio and Lemonade are reachable across your LAN, the Windows 11 "agent error" mid-chat, the app always showing a window after a bad state, multi-LoRA in the agent, FLUX on current ComfyUI, a clearer hint for the Windows "paging file too small" error, and a batch of smaller issues.


v2.5.0 — The big one

The biggest update since launch. v2.5.0 isn't about new app categories — chat, image & video generation, the coding agent and the model manager were already here — it's a deep upgrade to all of them, plus several genuinely new tools. Everything still runs 100% on your own machine, and your chats, models, and settings carry over automatically.

Auto-update prompts on next launch.

🤖 A much smarter Coding Agent

The coding agent got a full overhaul: a plan-first Architect mode, whole-codebase awareness (Repo-Map, Aider-style PageRank), review-before-apply diffs, a read-only Code-Review mode, a test-runner loop, background jobs that survive a restart, typed Git/GitHub tools, multi-repo workspaces, and per-project .lurules. Iteration caps raised to 200 / 400.

🪶 Small-Model Mode (new)

One switch tunes the app so compact 3B–8B local models follow instructions and call tools far more reliably (off by default). Plus new sub-4GB uncensored tool-callers and weight-class filters in Discover so you find models that fit your machine.

🎚️ Real context control (new)

Set the context window per model and watch true token usage. Before v2.5.0, LU never forwarded num_ctx to Ollama, so it silently capped at 2048 and clipped long chats + RAG — now it honours your setting. Plus one-click load/unload of any local model from memory.

🎙️ Voice that actually works

Talk-to-type with live, on-device transcription (nothing is ever sent automatically) and read-aloud in a natural neural voice, both set up with one-click installers. The mic was effectively dead before this release; now it's solid.

🎨 Fresh design & everyday UX

A calmer theme with floating panels and a one-click light/dark toggle, your own profile picture, a per-message action bar (copy / regenerate / edit / read-aloud), an editable memory brain icon, and unlimited chat history — chats & memories moved to a local database, so long, image-heavy threads no longer get cut off.

🖼️ Create-tab upgrades

On top of the existing image/video generation: a LoRA picker, VAE override and CLIP-skip, a model picker right next to Generate, a Text-to-Video / Image-to-Video switch on the main screen, generated images shown inline in chat, and a rebuilt flicker-free media viewer.

📦 Model Manager & hardware

A refreshed layout with weight-class filters, resumable multi-part (sharded) downloads with a size confirmation, per-row LM Studio load/unload, a fixed INSTALLED badge, and a new GPU picker (Settings → Hardware) to pin which card runs your models on multi-GPU rigs.

🧰 New tools & reliability

  • Import your chat history — bring ChatGPT / Claude / Gemini exports into your local knowledge base.
  • Troubleshoot panel — per-backend health (Ollama / ComfyUI / LM Studio) plus system facts.
  • Reliability — your chats & settings now survive restarts and updates (a major fix), no more stuck "ComfyUI starting…", a phantom GPU entry is gone, credentials are redacted from logs, and console.log is stripped from production builds.
  • Plus reporter-driven fixes (context window, download routing + badges, Hermes 3 pulls, backend persistence).

☁️ Optional cloud waitlist

A small, dismissible badge to be notified if a hosted version ever arrives — it only sends an email address you choose to type in. Everything else stays on your device.

Stability

Frontend test suite: 2,725 tests green. Rust test suite + production build green. No breaking changes — settings auto-default and your data migrates forward.

For previous release notes (v2.4.9, v2.4.8, v2.4.6, v2.4.5), see CHANGELOG.md.

Thanks to the community reporters and contributors whose feedback shaped this release: cinemazverev, vanja-san, THobbs23, kj103x, Aldrich Ironhart, leonsk29, BobbyT, MikeS++, and many more in Discord and GitHub.


v2.4.9 — superseded

Five bug fixes + two leonsk29 feature requests on top of v2.4.8. All user-reported (GH levoy1 / kj103x Discord / nightmare13740 Discord / leonsk29 Discord + GH).

What's fixed

  • ComfyUI Desktop App is detected and accepted in onboarding (Bug U — levoy1 GH #47). Pre-v2.4.9 both auto-detect and manual path entry rejected the %LOCALAPPDATA%\Programs\ComfyUI binary folder with "Invalid path — main.py not found". v2.4.9 walks a probe list when given a folder with ComfyUI.exe until it finds the actual Working Directory with main.py.
  • Chats with attached RAG documents persist across NSIS auto-update / WebView2 data reset (Bug V/a — kj103x Discord 2026-05-23). Separate 30 s / beforeunload IndexedDB backup → %APPDATA%\Locally Uncensored\rag_chunks_backup.json restores chunks on cold start and on warm starts where IndexedDB is empty.
  • LU-spawned Ollama is killed when you quit LU (Bug V/b — same kj103x report). ollama serve no longer lingers as a ~200 MB orphan after a tray-menu Quit. User-managed Ollama running pre-launch is still left alone.
  • Benchmark per-model display shows the latest session's tok/s, not a drifting historical average (Bug W — nightmare13740 Discord 2026-05-23/24). New getLatestSpeed groups runs into sessions via a 10 s timestamp gap; leaderboard keeps the cross-model average.
  • Thinking + Agent toggles light up for community-uncensored Gemma 4 builds (Bug X — leonsk29 Discord 2026-05-24). normalizeFamily rewritten as a greedy strip + suffix/quant peel + family-dash collapse /g, plus word-boundary contains-check.

What's new

  • Onboarding suggests nomic-embed-text for Document Chat / RAG (GH #45 — leonsk29). Auto-detects existing embedding models or offers a one-click 274 MB pull.
  • VRAM filter for text models in Discover (GH #46 — leonsk29). Lightweight ≤10 GB / Mid-Range 10–16 GB / High-End >16 GB chips on the text tab.

v2.4.8 — superseded

Hotfix: 8 fixes on top of v2.4.6. All user-reported. v2.4.7 was tagged but not separately released; its six fixes ship together with v2.4.8.

What's fixed

  • Text models in Discover keep their INSTALLED badge after restart (Bug S — leonsk29 GH #43). Pre-v2.4.8 the badge only lit up if the download finished in the current session, so a model installed yesterday looked uninstalled today. v2.4.8 also matches against the provider model list (Ollama tags directly, plus GGUF downloads via hf.co/<repo>:<quant> references), so whatever Ollama / LM Studio actually have on disk is what the Discover grid shows.
  • canPull:false text models now get a clickable HuggingFace link (Bug T — leonsk29 GH #44). Qwen 3.6 27B Samantha and GLM 5.1 754B MoE both have HF pages but no GGUF on day-one, so they show up as Available rather than downloadable. Before this they had no UI to open the HF page from inside LU. v2.4.8 adds the external-link button next to the Available badge.
  • LM Studio server-off banner is dismiss-able and matches the dropdown chrome (Bug Q UX polish). The v2.4.7 banner that surfaces "Start LM Studio Server" in the model picker had amber styling that clashed with the rest of the dropdown. v2.4.8 switches to neutral white/gray and adds an X to dismiss. Dismiss sticks across dropdown re-opens within the same LU session but is not persisted, so the hint resurfaces on the next launch in case the user forgot to start the server.
  • Benchmark tok/s now matches actual chat throughput (Bug M — nightmare13740 Discord). Pre-v2.4.7 the benchmark counted time-to-first-token + stream init in the tok/s denominator, so any local model looked slower in the Benchmark tab than in real chat. On nightmare13740's RTX 4070 Laptop 8 GB + gemma4:e4b: ollama CLI 30 tok/s, manual chat 23–25 tok/s, pre-fix benchmark 12 tok/s. v2.4.8 starts the clock at first-token-received and (for Ollama) prefers the server-reported eval_count / eval_duration from the final stream chunk, with a wall-clock fallback for OpenAI-compat providers when streaming gets buffered. End result: benchmark matches CLI / chat baselines on every provider.
  • Windows ComfyUI install probes git --version before clone (Bug N — juliandiggins-stack GH #40). If a WSL / Linux-mounted git is first on PATH, the previous code let the clone start and die mid-flight with cryptic stderr.

Extension points exported contracts — how you extend this code

Core symbols most depended-on inside this repo

Shape

Function 1,771
Interface 280
Method 110
Class 62
Enum 2

Languages

TypeScript76%
Rust24%
Python1%

Modules by API surface

src-tauri/src/commands/install.rs128 symbols
src-tauri/src/commands/remote.rs68 symbols
src/api/comfyui.ts55 symbols
src/api/vram-handoff.ts52 symbols
src/api/backend.ts42 symbols
src/api/discover.ts39 symbols
src-tauri/src/commands/process.rs36 symbols
src/api/mcp/builtin-tools.ts35 symbols
vite.config.ts33 symbols
src/components/settings/SettingsPage.tsx29 symbols
src-tauri/src/commands/repo_map.rs28 symbols
src-tauri/src/commands/proxy.rs28 symbols

For agents

$ claude mcp add locally-uncensored \
  -- python -m otcore.mcp_server <graph>

⬇ download graph artifact

Ask about this repo answers extend the page