TL;DR: Ooor is a MIT-licensed, open-source Windows desktop app weighing just 1.5MB. It integrates llama.cpp engine management, a GGUF model library, a Hugging Face model marketplace, a resumable chunked down, a streaming chat console, and an Agent tool-calling layer. No Electron. No cloud services. No telemetry. No accounts. Pure local. Double-click and go.
Let's be honest β running LLMs locally in 2026 isn't novel anymore. But have you ever experienced this:
llama-server --help to find the right flags, type out a long command line, and restart everything just to change the GPU layer count
If any of that resonates, Ooor (pronounced "O-or") is worth five minutes of your time.
GitHub: https://github.com/rhettli/Ooor-desktop
Website: https://ooor.cc
License: MIT
Author: oshine
Ooor is a native Windows desktop application that wraps the llama.cpp command-line ecosystem into a "click-and-run" workstation. It's not an Electron app, not WPF, not MAUI β it's plain WinForms + .NET Framework 4.8, compiling to a 1.5MB binary that launches instantly and idles in single-digit megabytes of RAM.
Specifically, Ooor packs four roles into a single sub-1.5MB executable:
| Role | Description |
|---|---|
| Llama Engine Manager | Discover, install, and switch between llama-server builds (CPU / CUDA / Vulkan / SYCL) |
| Model Library Manager | Scans disk for all .gguf files, manages multimodal projection files, supports soft-delete |
| Down | Chunked resumable downloads, HuggingFace mirror support, GitHub proxy acceleration |
| Chat Console & Agent Host | Streaming chat, tool calling (read/write files, shell, web fetch), MCP protocol support |
| Tool | Installer Size | Runtime Dependency | Idle Memory |
|---|---|---|---|
| Ollama | ~150MB | Bundled runtime | ~50MB |
| LM Studio | ~500MB+ | Electron + Chromium | ~800MB |
| Ooor | ~1.5MB | .NET Framework 4.8 (built into Win10) | single-digit MB |
No Electron. No Node runtime. No 200MB framework download. A hand-written WinForms binary that talks directly to llama-server.exe via local HTTP API.
127.0.0.1
Select engine β Select model β Click Start Service β Get an OpenAI-compatible HTTP endpoint running at 127.0.0.1:6080.
Connect directly to:
apiBase
/v1/chat/completions format
llama.cpp iterates rapidly. Ooor's approach: decouple the engine from the GUI.
llama-b*-bin-win-*.zip to config\llama-bin\
The Model Manager is a spreadsheet-like GGUF file management interface:
| Column | Description |
|---|---|
| Model Name | Filename |
| Projection File | Multimodal (vision) model's mmproj-*.gguf projection file |
| Folder | Disk location |
| Type | Built-in (internal directory) or External (referenced directory) |
| Size | Disk usage |
| Note | Free-form annotation (e.g., "good at code", "fast inference") |
| D | Soft-delete marker |
Right-click menu: edit notes, locate file, hard-delete / soft-delete, add external model folders.
Soft-delete is particularly useful: removes from the list but keeps the disk file, so you can switch back and forth during experiments without re-down 7GB.
Not just a search box β a full HF browser:
hf-mirror mirror source (friendly for users in regions with restricted access)
Not a progress bar β a real download manager:
Status bar summary: task count, active count, current speed, total bytes.
Built-in chat interface with streaming output. Each response includes:
This means you can visually compare inference speed across engine versions or quantization levels without running a separate benchmark.
This is Ooor's most interesting capability β it's not just a chat box, it's a local Agent host.
Built-in tool set:
| Tool | Function | Safety Mechanism |
|---|---|---|
| Fetch URL | HTTP GET to fetch a web page, returns cleaned text/Markdown | Auto-uses GitHub proxy |
| Read File | Reads text files within allowed root directories | Path restriction |
| Write File | Writes text to allowed root directories | Requires manual confirmation |
| List Directory | Lists directory contents | Path restriction |
| Shell | Executes shell commands | Requires manual confirmation , streaming output |
| Memory | Key-value store across conversation turns | β |
Workflow:
MCP Protocol Support: You can bind Model Context Protocol servers that enjoy the same status as built-in tools. The repository includes a sample MCP server ooor-sqlite-mcp.
What does this mean? Your local model can: fetch web content β read local files β analyze β write results to a file. A fully offline local research assistant.
A Profile = engine + model + runtime parameters + Agent binding, as a complete snapshot.
Typical usage:
One-click switching. No need to reconfigure each time.
Supports English and Simplified Chinese, switchable at runtime.
| Layer | Technology |
|---|---|
| Client | C# + WinForms (.NET Framework 4.8) |
| Inference backend | llama.cpp (official Release builds) |
| Chat frontend | Embedded HTML (Vue.js) |
| Gateway (optional) | Go (chi router / SQLite / singleflight) |
csharp-desktop-app/
βββ OOOR/ # Desktop app main project
β βββ Core/ # Domain logic: engine runtime, model storage, Agent, tools
β βββ Controls/ # Custom WinForms controls (sparkline, etc.)
β βββ Properties/ # AssemblyInfo, Resources
β βββ html/ # Embedded web assets for chat console (index.html, vue.js)
β βββ Lang/ # i18n strings (en.json, zh.json)
β βββ Ooor.csproj
β βββ Program.cs
βββ Ooor-cli/ # Optional CLI frontend
βββ OoorFunc/ # Shared Agent/tool function library
βββ ooor-sqlite-mcp/ # Sample SQLite MCP server
βββ doc/img/ # README screenshots
βββ Ooor.slnx # Solution file
All user data is centralized under one config tree, making backup and migration straightforward:
| Path | Purpose |
|---|---|
<install_dir>\bin\Ooor.exe |
Application executable |
<install_dir>\config\llama-bin\ |
Extracted llama-server builds |
<install_dir>\config\models\ |
Built-in model folder (auto-scanned) |
<install_dir>\config\github-proxy.txt |
GitHub acceleration mirror list |
<install_dir>\config\ref_models.conf |
External model folder references (e.g., LM Studio library) |
<install_dir>\config\ (chat/temp/remark) |
Chat logs, temp files, annotations |
Default install directory: D:\Ooor if drive D exists, otherwise %LOCALAPPDATA%\Ooor.
Download Ooor-Setup-x64-v*.exe from ooor.cc and run the installer. On first launch, Windows may show an "unknown publisher" warning β this is because the app currently uses a self-signed certificate (a commercial code signing certificate is on the Roadmap). Click Run anyway.
No admin privileges required for daily use (the installer requests admin only for writing to the install directory). No reboot. No runtime installation.
Open Llama β Downloads and choose based on your hardware:
llama-bXXXX-bin-win-cpu-x64.zip β CPU inferencellama-bXXXX-bin-win-cuda-x64.zip β NVIDIA GPUllama-bXXXX-bin-win-vulkan-x64.zip β Generic GPU (best cross-vendor compatibility)
After download, it auto-extracts to config\llama-bin\ and auto-selects.
Open Models β Download Models, search for a small model to start with, e.g., Qwen2.5-Coder-1.5B-Instruct-Q4_K_M, and click Download.
Return to the main window β the engine and model are auto-selected. Click Start Service. The console log shows llama-server starting up, and the status bar displays llama-server detected.
Click Open Console AI Assistant, type a message, and the model streams back a response.
Open Agent Manager, bind a few tools (e.g., Fetch URL, Read File), and save as a Profile. Then give the model a task that requires tools, for example:
"Fetch the README from https://github.com/rhettli/Ooor-desktop and summarize it"
The model will autonomously call the Fetch URL tool, retrieve the content, and return a summary.
If you want to compile or contribute:
Prerequisites:
%PATH% (for packaging the installer)
Steps:
git clone https://github.com/rhettli/Ooor-desktop.git
cd Ooor-desktop
The build is driven by a Node script:
node ooor-utils/desktop-app/build-all.js
The script automatically:
Core/DEF.cs and auto-increments by 0.0001
AssemblyInfo.cs and installer.nsi
bin/Release/ and runs MSBuild (Release configuration)github-proxy.txt to the config directory
One-click publish (build + upload + version manifest + update check):
node ooor-utils/desktop-app/publish.js build_and_upload --notes "your release notes"
| Feature | Ollama | LM Studio | Ooor |
|---|---|---|---|
| Installer size | ~150MB | ~500MB+ | ~1.5MB |
| Open source license | MIT | Closed | MIT |
| UI framework | CLI + basic GUI | Electron | WinForms (native) |
| Idle memory | ~50MB | ~800MB | single-digit MB |
| Login required | No | Nudges login | No |
| Telemetry | None | Unclear | None |
| Inference engine | Custom (based on llama.cpp) | Bundled llama.cpp | Uses llama.cpp official builds directly |
| Engine version management | Tied to app version | Tied to app version | Independent, multi-version coexistence |
| Model format | Ollama's own format | GGUF | GGUF (native) |
| Model search | Official library (limited) | Built-in HF search | Built-in HF search + mirror acceleration + hardware requirement annotations |
| Download acceleration | None | None | hf-mirror + GitHub proxy + NVMe cache |
| Resumable downloads | No | Yes | Yes (chunk-level) |
| Built-in chat | Yes | Yes | Yes (streaming + token sparkline) |
| Agent tool calling | No | No | Yes (6 built-in tools + MCP support) |
| Profile system | No | No | Yes |
| OpenAI-compatible API | β | β | β |
| Multilingual UI | Partial | Partial | EN/CN, runtime switch |
| Cross-platform | Win/Mac/Linux | Win/Mac/Linux | Windows only |
| Security | Reported unauthorized access risk | Closed, opaque | Pure local 127.0.0.1, no remote access |
I've browsed through many local LLM tool projects on GitHub. Most are either Electron GUI shells over CLI tools, or feature-stuffed but rough-around-the-edges half-finished products.
Ooor feels different. It has a quality of deliberate subtraction:
But it also adds in the right places:
If you're on Windows and looking for a lightweight, open-source, purely local, Agent-capable LLM management tool, Ooor is the best option I've found so far.
Project: https://github.com/rhettli/Ooor-desktop
Website: https://ooor.cc
License: MIT
Author: oshine
This article is based on the Ooor official website and the GitHub repository README. If you spot any inaccuracies, please let me know in the comments.
Tags: #LocalLLM #llama.cpp #GGUF #Ooor #OpenSource #MIT #OpenAI-compatible #Agent #MCP #Windows #AITools #TokenFreedom #WinForms