Model or dataset
PurpleDoubleD/locally-uncensored avatar
PurpleDoubleD/locally-uncensored

Locally Uncensored: a desktop AI studio that bundles chat, ComfyUI image and video lanes, and a coding agent

The all-in-one local AI studio for your desktop: chat, image and video generation and a coding agent in one free, open source app. Windows and Linux. No Docker, no terminal, no cloud required.

1,871 stars304 forksTypeScriptAGPL-3.0

At a glance

What is it?
Locally Uncensored is a Tauri desktop app for Windows and Linux that wraps an LLM engine, a managed ComfyUI install and a diff-first coding agent in one window. The README is unusually detailed about what ships and silent about how the pieces fail.
Who is it for?
Adopt it if you want a local chat, image and video front end without hand-wiring ComfyUI node graphs, and you accept Windows or Linux only. Skip it if you need macOS, or if you want a headless server you drive over HTTP rather than a GUI.
Can I use it commercially?
Yes, with strict conditions. AGPL-3.0 is a network copyleft licence: if people use a modified version over a network, for example as a hosted service, you must offer them its source code under the same licence.
Is it still maintained?
Yes. The repository last received commits 3 days ago.
What is it written in?
Mainly TypeScript, according to GitHub's language statistics.

Answers come from the project's GitHub data, last synced on October 1, 2026, and from our analysis. They are not legal advice.

Editorial analysis

The problem Locally Uncensored is aimed at

Running local models is not hard. Running local models plus a diffusion pipeline plus an agent that can touch your filesystem is hard, because each piece has its own install ritual. Ollama or LM Studio for text. ComfyUI for images, which means Python, node graphs and a model directory convention. A separate coding agent that reads your repository. Three launchers, three model folders, three update paths.

Locally Uncensored targets the person who wants the result without the wiring. The README frames it as an all-in-one studio with four tabs (Chat, Create, Code, Agent) in one window, and it makes a specific promise about the setup: no Docker, no terminal, no config files. The audience is a desktop user with a GPU who is willing to install an app but not willing to maintain a Python environment. It is not aimed at someone provisioning a shared inference server for a team.

The second half of the pitch is model choice. The README says the chat menu puts models that answer directly, without refusals, next to the mainstream ones, which is where the project name comes from. That is a policy position as much as a feature, and it shapes who the project is for.

How the pieces fit: engine detection, ComfyUI management, and a local API

The architecture visible in the repository is a Tauri shell around a React and TypeScript front end, with Rust under src-tauri. The front end is Vite-built and the package metadata pins Node 22 or newer for development.

The interesting part is what the app does on first launch. According to the README, a wizard looks for an AI engine already running on the machine and installs one with a single click if it finds none. It does the same for ComfyUI, which the app then starts, repairs and updates. So the app is not shipping inference itself. It is an orchestrator that discovers, installs and supervises two external engines, then presents them through its own UI.

The model manager is where that pays off. The README states it marks which models fit your hardware and downloads them in one click, and that it can link models Ollama or LM Studio already store rather than copying them. Linking instead of copying matters on a machine where a single quantized model is tens of gigabytes.

For programmatic use, a Local API in Settings exposes every local model on one OpenAI compatible address behind a token, so other coding tools can point at the same machine. The repository also contains a mobile-client directory, matching the README's claim that the app can be reached from a phone over the LAN or through a Cloudflare tunnel, paired by QR code and a passcode, off by default.

Installing Locally Uncensored and generating a first image

The README points to the Releases page for builds. Windows 10 and 11 get an .exe (NSIS, described as recommended) or an .msi, and the README says the Windows build is tested every release on a signed auto update channel. Linux gets .deb, .rpm or .AppImage, built on every release. There is no macOS download; the README says macOS builds from source with npm run tauri build.

If you want to build or contribute instead of installing a release, the README gives this sequence. It clones the repository, installs dependencies and starts browser dev mode, with the Tauri build as the desktop binary.

bash
git clone https://github.com/PurpleDoubleD/locally-uncensored.git
cd locally-uncensored
npm install
npm run dev          # browser dev mode
npm run tauri build  # desktop binary

On Windows, setup.bat bootstraps Node, Git and Ollama for dev mode; on Linux and macOS the equivalent is setup.sh. Expect npm install to pull a large dependency tree, since the package metadata includes three.js, react-three-fiber, pdfjs-dist, mammoth and katex alongside the Tauri plugins.

After installing the release build, the first real use is the three-step flow the README describes. Run the installer. On first launch, let the wizard find or install an engine, and do the same for ComfyUI. Then open the model manager, pick a model the manager marks as fitting your hardware, and download it. Then switch to the Create tab and use the text to image lane. The README notes there are no node graphs to touch; the app drives ComfyUI for you and puts the result in a gallery.

One configuration file is documented. The .env.example contains a single optional key for pointing the app at an existing ComfyUI installation.

bash
# Path to your ComfyUI installation (optional, for image/video generation)
# COMFYUI_PATH=C:\path\to\your\ComfyUI

If you leave it unset, the README's described behaviour is that the app installs and manages its own ComfyUI.

The coding agent and its permission model

The Code tab is the part that deserves the most scrutiny, because it is the part that writes to your disk. The README describes a specific sequence: the agent builds a map of the repository, edits only the lines you asked for, shows the diff before applying anything, runs your tests and reads the failures. Per project rules live in a .lurules file. Each conversation runs in Ask, Plan or Bypass mode, and there is a workspace per project plus a file explorer with preview.

That diff-before-apply default is the right call for a local agent, and it is a deliberate constraint rather than a limitation. The Agent tab goes further: web search and fetch, file read and write, a shell, code execution, screenshots, image and video generation, and user-supplied MCP servers. The README says every tool call passes a permission gate you control and that a read only run stays read only. Long jobs go to background agents with a panel showing what is running.

Read that list of capabilities plainly. A shell plus filesystem writes plus code execution is a large blast radius for a desktop app, and the README's answer is a permission gate rather than a sandbox. That is a design choice worth understanding before you run an agent against a repository you care about.

Where Locally Uncensored is the wrong tool

The clearest boundary is platform. There is no macOS build. The README says macOS builds from source with npm run tauri build, and the repository carries a GOAL-mac-local.md file, which suggests macOS is planned rather than shipped. If your team is on Macs, this app is not the answer today.

The second boundary is the cloud split. The README states that Upscale and Erase Object are the two Create lanes that run in the cloud only, and that an optional LU Labs Cloud switch sends models too large for a desktop card to hosted GPUs, with credit packs that do not expire. The local app stays free, but a workflow that depends on upscaling is not fully local, and that is a real distinction for anyone adopting this specifically for privacy.

The third is deployment shape. This is a GUI desktop application. If you need a headless inference endpoint for a build server or a shared team service, the Local API is a convenience for pointing other tools at your own machine, not a substitute for a server-grade deployment. There is no documented multi-user mode.

Finally, the documentation is thin on failure. The README describes the wizard installing and repairing ComfyUI, but it does not document rollback, what happens when an engine update breaks a working setup, or how to recover a corrupted model directory. The repository has an UPDATER-LINUX-BEFUND.md file and a SECURITY.md section on antivirus false positives, which suggests these are known operational areas, but the user-facing recovery story is not spelled out.

How it differs from wiring Ollama and ComfyUI yourself

The honest alternative is the manual stack: Ollama or LM Studio for text, ComfyUI for images, and a separate terminal-based agent such as the ones that ship as CLI tools. That combination is more work to assemble and more work to keep aligned, but every component is independently replaceable and independently debuggable. When ComfyUI breaks in a manual setup, you read its console output. In Locally Uncensored, the app owns the lifecycle, so your first move is the app's own repair path.

The other real alternative is a chat-focused desktop client that speaks to Ollama. Those are lighter and do one thing. They will not give you the Create lanes, the LoRA picker with stack and strength sliders, Character Studio training a character onto a local LoRA, or the Agent tab's tool set. The trade is scope against surface area: Locally Uncensored carries a much larger dependency tree, including three.js and react-three-fiber, and correspondingly more places for something to go wrong.

A third comparison is a hosted service. The README is explicit that the same account works in the browser at lu-labs.ai on a plan or on credit packs. If your goal is capability rather than locality, the hosted route removes the hardware question entirely. Locally Uncensored is for the case where the hardware question is the point.

Licence, maintenance and what an upgrade costs you

The licence is AGPL-3.0-only, stated in both the repository metadata and package.json. That is a strong copyleft licence with a network-use clause. If you fork the app and offer it to others over a network, the AGPL's source-availability obligation is the thing to read carefully with your own counsel; this article is not legal advice. Internal desktop use is a different question from redistributing a modified build, and the two should not be conflated.

Maintenance looks current. The last push was on 2026-09-08, and v2.6.9 was released the same day, following v2.6.8 on 2026-09-06 and v2.6.7 on 2026-08-31. The repository is not archived. The README states that every change since 1.0.0 is in CHANGELOG.md, and that the Windows update channel is signed against a public minisign key, which gives you a way to verify an update rather than trust it.

The upgrade cost is the part to weigh. Because the app manages ComfyUI and the inference engine for you, an app update can move an engine version underneath a workflow that was working. The README does not document a rollback path. If you depend on a specific model and a specific pipeline, pin the release you installed, keep the installer, and treat an app update as a change to test rather than a background event.

Editorial conclusion

Adopt it if you want a local chat, image and video front end without hand-wiring ComfyUI node graphs, and you accept Windows or Linux only. Skip it if you need macOS, or if you want a headless server you drive over HTTP rather than a GUI. Before installing, read SECURITY.md on the unsigned NSIS false positives, confirm your GPU fits the models the manager marks as compatible, and check whether the two cloud-only Create lanes matter to you.

Frequently asked questions

Which platforms does Locally Uncensored support?

Windows 10 and 11 get an .exe (NSIS, recommended) or an .msi, and Linux gets .deb, .rpm or .AppImage, all built on every release. There is no macOS download; the README says macOS builds from source with npm run tauri build.

Does Locally Uncensored require Docker or a terminal?

No. The README states there is no Docker, no terminal and no config files required, because a first-launch wizard finds or installs an AI engine and does the same for ComfyUI. The only documented configuration file is an optional COMFYUI_PATH entry in .env.example.

Is everything in Locally Uncensored running locally?

Most of it, with two stated exceptions. The README says Upscale and Erase Object are the two Create lanes that run in the cloud only, and an optional LU Labs Cloud switch sends models too large for a desktop card to hosted GPUs. The local app itself stays free either way.

What licence is Locally Uncensored released under?

AGPL-3.0-only, stated in package.json and the repository metadata. The AGPL includes a network-use clause, so redistributing a modified build that others reach over a network raises source-availability questions worth reviewing with your own counsel.

Does the coding agent apply edits without asking?

The README describes the Code tab as showing the diff before it applies anything, with Ask, Plan and Bypass modes per conversation and per project rules in a .lurules file. The Agent tab's tool calls each pass a permission gate, and a read only run stays read only.

Official sources

  1. License: AGPL-3.0
  2. Project website
  3. PurpleDoubleD/locally-uncensored on GitHub
  4. README
  5. Releases
Add this badge to your README

If you maintain this project, the badge below links readers to this analysis and shows its maintenance status from the daily GitHub snapshot. Paste the markdown into your README; add ?metric=license or ?metric=stars to the image URL for a different field.

Add this badge to your README

markdown
[![Hysen Labs](https://hysenlabs.com/badge/purpledoubled-locally-uncensored.svg)](https://hysenlabs.com/projects/purpledoubled-locally-uncensored)