需先自行启动 llama.cpp server 并设置 Base URL,否则无法对话;HTTPS 页面访问本地 HTTP 服务会被浏览器拦截,需用 mitmproxy 反向代理并信任证书;开发环境要求 Node.js >= 22
llama.ui
PromptPastureMIT活跃维护纯浏览器端运行的极简 AI 对话界面,可对接 llama.cpp、Ollama、vLLM 和 OpenAI 兼容接口,省去本地部署 WebUI 的麻烦。
A minimal interface for AI Companion that runs entirely in your browser.
npm ci
npm run build
npm startREADME 未说明具体显存要求;模型由本地 llama.cpp 服务加载,硬件门槛取决于所选量化模型与 llama.cpp 本身
基于 llama.cpp WebUI 的本地 AI 聊天界面,纯浏览器运行,数据不上云
纯浏览器端运行的极简 AI 对话界面,可对接 llama.cpp、Ollama、vLLM 和 OpenAI 兼容接口,省去本地部署 WebUI 的麻烦。
核心能力
- 支持 llama.cpp、LM Studio、Ollama、vLLM、OpenAI 等多种推理后端
- 用 IndexedDB 在浏览器本地存储对话,支持分支编辑与导入导出
- 渲染 Markdown 语法高亮与 LaTeX 公式,支持文本、图片、PDF 附件
- 支持 PWA 离线使用与 SSE 流式响应,可调生成参数并显示性能指标
- 内置多语言包与 DaisyUI 主题切换,适配移动端与桌面端
容易踩的坑
- v2.38.2最新正式版2025-10-16 · 2025-10-16 17:35 UTC
Release Notes
🎨 Styling
- (App) Add dark mode border color support (#226)
- (chat) Update icon and styling in ChatMessage component (#226)
🚜 Refactor
- (i18n) [breaking] Replace 'thoughts' with 'reasoning' in all language files (#226)
- v2.38.12025-10-15 · 2025-10-15 22:29 UTC
查看更新说明
Release Notes
🚀 Enhancements
- (sidebar) Add conversation search functionality (#223)
🎨 Styling
- (chat) Update styling for main content and chat input (#224)
🚜 Refactor
- (Input) Replace native input with custom Input component (#222)
- (icon) Migrate to direct icon component usage (#225)
- v2.38.02025-10-12 · 2025-10-12 18:58 UTC
查看更新说明
Release Notes
🚀 Enhancements
- UI components (#217)
- (components) Add AutoSizingTextArea component (#219)
🛠 Fixes
- (inference) Update condition for loading models (#221)
🎨 Styling
- (chat) Expand ChatInput on focus (#220)
🚜 Refactor
- (ui) Replace button elements with Button component
- (common) Replace IntlIconButton with Button component
- (ui) Replace label elements with custom Label component
- (chat) Replace collapse component with custom button in ChatMessage
- Migrate project structure
- (components) Introduce Icon component to replace direct react-icons usage
- (vite.config) Update vendor chunk splitting logic
- (chat) Move prefilled message logic to custom hook (#218)
- (app) Simplify App component and extract toast logic to custom hooks
- v2.37.02025-10-06 · 2025-10-06 19:50 UTC
查看更新说明
Release Notes
🚀 Enhancements
- Speech to Text #66 (#127)
- v2.36.02025-10-01 · 2025-10-01 23:10 UTC
查看更新说明
Release Notes
🚀 Enhancements
- (chat) Add mermaid chart support to markdown display #103 (#212)
用户点评
登录用户的真实使用记录,可按版本和硬件筛选还没有人点评。第一个说出真实体验的人最有价值。
🦙 llama.ui - Minimal Interface for Local AI Companion ✨
Tired of complex AI setups? 😩 llama.ui is an open-source desktop application that provides a beautiful ✨, user-friendly interface for interacting with large language models (LLMs) powered by llama.cpp. Designed for simplicity and privacy 🔒, this project lets you chat with powerful quantized models on your local machine - no cloud required! 🚫☁️
⚡ TL;DR
This repository is a fork of llama.cpp WebUI with:
- Fresh new styles 🎨
- Extra functionality ⚙️
- Smoother experience ✨

🌟 Key Features
-
Multi-Provider Support: Works with llama.cpp, LM Studio, Ollama, vLLM, OpenAI,.. and many more!
-
Conversation Management:
- IndexedDB storage for conversations
- Branching conversation support (edit messages while preserving history)
- Import/export functionality
-
Rich UI Components:
- Markdown rendering with syntax highlighting
- LaTeX math support
- File attachments (text, images, PDFs)
- Theme customization with DaisyUI themes
- Responsive design for mobile and desktop
-
Advanced Features:
- PWA support with offline capabilities
- Streaming responses with Server-Sent Events
- Customizable generation parameters
- Performance metrics display
-
Privacy Focused: All data is stored locally in your browser - no cloud required!
-
Localized Interface: Most popular language packs are included in the app, and you can choose the language at any time.
🚀 Getting Started in 60 Seconds!
💻 Standalone Mode (Zero Installation)
- ✨ Open our hosted UI instance
- ⚙️ Click the gear icon → General settings
- 🌐 Set "Base URL" to your local llama.cpp server (e.g.
http://localhost:8080) - 🎉 Start chatting with your AI!
Uh-oh! Browsers block HTTP requests from HTTPS sites 😤. Since llama.cpp uses HTTP, we need a bridge 🌉. Enter mitmproxy - our traffic wizard! 🧙♂️
Local setup:
mitmdump -p 8443 --mode reverse:http://localhost:8080/
Docker quickstart:
docker run -it -p 8443:8443 mitmproxy/mitmproxy mitmdump -p 8443 --mode reverse:http://localhost:8080/
Pro-tip with Docker Compose:
services:
mitmproxy:
container_name: mitmproxy
image: mitmproxy/mitmproxy:latest
ports:
- '8443:8443' # 🔁 Port magic happening here!
command: mitmdump -p 8443 --mode reverse:http://localhost:8080/
# ... (other config)
⚠️ Certificate Tango Time!
- Visit http://localhost:8443
- Click "Trust this certificate" 🤝
- Restart 🦙 llama.ui page 🔄
- Profit! 💸
Voilà! You've hacked the HTTPS barrier! 🎩✨
🖥️ Full Local Installation (Power User Edition)
- 📦 Grab the latest release from our releases page
- 🗜️ Unpack the archive (feel that excitement! 🤩)
- ⚡ Fire up your llama.cpp server:
Linux/MacOS:
./server --host 0.0.0.0 \
--port 8080 \
--path "/path/to/llama.ui" \
-m models/llama-2-7b.Q4_0.gguf \
--ctx-size 4096
Windows:
llama-server ^
--host 0.0.0.0 ^
--port 8080 ^
--path "C:\path\to\llama.ui" ^
-m models\mistral-7b.Q4_K_M.gguf ^
--ctx-size 4096
- 🌐 Visit http://localhost:8080 and meet your new AI buddy! 🤖❤️
🌟 Join Our Awesome Community!
We're building something special together! 🚀
- 🎯 PRs are welcome! (Seriously, we high-five every contribution! ✋)
- 🐛 Bug squashing? Yes please! 🧯
- 📚 Documentation heroes needed! 🦸
- ✨ Make magic with your commits! (Follow Conventional Commits)
🛠️ Developer Wonderland
Prerequisites:
- 💻 macOS/Windows/Linux
- ⬢ Node.js >= 22
- 🦙 Local llama.cpp server humming along
Build the future:
npm ci # 📦 Grab dependencies
npm run build # 🔨 Craft the magic
npm start # 🎬 Launch dev server (http://localhost:5173) for live-coding bliss! 🔥
🧰 Preconfiguring Defaults
Planning to redistribute the app with opinionated settings out of the box? Any JSON under
src/config is baked into immutable defaults at build time (see
src/config/index.ts).
If those baked defaults include a non-empty baseUrl, the inference server will auto-sync on first load
so model metadata is fetched without requiring manual input.
🏗️ Architecture
Core Technologies
- Frontend: React with TypeScript
- Styling: Tailwind CSS + DaisyUI
- State Management: React Context API
- Routing: React Router
- Storage: IndexedDB via Dexie.js
- Build Tool: Vite
Key Components
- App Context: Manages global configuration and settings
- Inference Context: Handles API communication with inference providers
- Message Context: Manages conversation state and message generation
- Storage Utils: IndexedDB operations and localStorage management
- Inference API: HTTP client for communicating with inference servers
📜 License - Freedom First!
llama.ui is proudly MIT licensed - go build amazing things! 🚀 See LICENSE for details.