Open-source, privacy-focused, and fully customizable AI chat interface
π Website: lmwebui.com
LMWebUI is an open-source web interface that enables users to interact with local language models through a modern, privacy-focused web UI.
- LM: Language Model
- Web UI: Web-based User Interface
LMWebUI β a web-based interface where users can run local/open-source language models and chat with them.
- π Privacy-First: Run models locally on your device β privacy and control in your hands
- π Web Interface: Simple but powerful UI with chat history, suggested prompts, theme selection, markdown support
- π Multi-Language: Multi-language interface (TR/EN/etc.) with community translation support
- β‘ Local & Online: Supports both offline and online models (e.g., Ollama models)
- π¨ Customizable: Fully customizable and extensible architecture
- π€ Model Management: Easy model switching with dropdown selector
- π¬ Real-time Chat: Live message streaming with typing indicators
- π± Responsive Design: Works perfectly on desktop and mobile devices
- π― User-Friendly: Intuitive interface similar to ChatGPT
- ChatGPT-like Design - Familiar and intuitive interface
- Dark Theme - Beautiful dark mode with high contrast
- Responsive Design - Works perfectly on desktop and mobile
- Smooth Animations - Typing indicators and message streaming
- Accessibility - WCAG 2.1 AA compliant
- 5 Languages - English, Turkish, Spanish, French, German
- Easy Translation - JSON-based translation system
- RTL Support - Ready for right-to-left languages
- Language Persistence - Remembers your language choice
- 100% Local - No data leaves your device
- No Telemetry - Zero tracking or analytics
- Direct Ollama Connection - No intermediaries
- Local Storage - Conversations stored locally
- Real-time Streaming - Live message generation
- Markdown Support - Rich text with code highlighting
- Model Management - Easy model switching
- Conversation History - Persistent chat sessions
- Copy Code - One-click code copying
- Suggested Prompts - Quick start suggestions
- Node.js 18+ and npm/yarn
- Ollama installed and running locally
-
Clone the repository
git clone https://github.com/ismailcankaratas/LMWebUI.git cd LMWebUI -
Install dependencies
npm install # or yarn install -
Start Ollama
ollama serve
-
Install a model
ollama pull llama2 # or any other model you prefer -
Start the development server
npm run dev # or yarn dev -
Open your browser Navigate to
http://localhost:3000
- Frontend: React 18 + TypeScript
- Styling: Tailwind CSS
- State Management: Zustand
- Build Tool: Vite
- AI Integration: Ollama API
- Icons: Lucide React
- Markdown: react-markdown + rehype-highlight
- i18n: react-i18next
LMWebUI/
βββ src/
β βββ components/ # React components
β β βββ Header.tsx # Top navigation
β β βββ Sidebar.tsx # Chat history sidebar
β β βββ ChatInterface.tsx # Main chat area
β β βββ MessageBubble.tsx # Individual messages
β β βββ ...
β βββ stores/ # Zustand state management
β β βββ chatStore.ts # Chat state
β β βββ themeStore.ts # Theme state
β βββ services/ # API services
β β βββ ollamaService.ts # Ollama integration
β βββ i18n/ # Internationalization
β β βββ index.ts # i18n config
β β βββ locales/ # Translation files
β βββ ...
βββ docs/ # Documentation
βββ public/ # Static assets
βββ ...
Create a .env.local file:
# Ollama API Configuration
VITE_OLLAMA_BASE_URL=http://localhost:11434
VITE_OLLAMA_TIMEOUT=30000
# App Configuration
VITE_APP_NAME=LMWebUI
VITE_APP_VERSION=1.0.0Modify src/stores/themeStore.ts to add custom themes:
const themes = {
dark: {
background: '#0f172a',
surface: '#111827',
// ... your custom colors
}
}Add new languages in src/i18n/locales/:
- Create
new-lang.json - Add translations
- Update
src/i18n/index.ts
- Connect your GitHub repository
- Set environment variables
- Deploy automatically
# Build the image
docker build -t lmwebui .
# Run the container
docker run -p 3000:3000 lmwebui# Build for production
npm run build
# Deploy the dist/ folder to any static hostWe welcome contributions! Please see our Contributing Guide for details.
- Fork the repository
- Create a feature branch
git checkout -b feature/amazing-feature
- Make your changes
- Run tests
npm test - Commit your changes
git commit -m 'Add amazing feature' - Push to the branch
git push origin feature/amazing-feature
- Open a Pull Request
- Light Theme - Alternative light mode
- Plugin System - Extensible architecture
- Voice Input - Speech-to-text integration
- File Upload - Document analysis
- Export Chats - PDF/Markdown export
- Model Fine-tuning - Custom model training
- API Endpoints - REST API for integrations
- Docker Compose - Easy deployment setup
- Model Loading: Large models may take time to load initially
- Mobile Keyboard: iOS Safari keyboard may cause layout shifts
- Memory Usage: Very long conversations may impact performance
Have an idea? We'd love to hear it!
- π Bug Reports: Open an issue
- π‘ Feature Requests: Request a feature
- π¬ Discussions: Join the conversation
This project is licensed under the MIT License - see the LICENSE file for details.
- Ollama - For the amazing local AI platform
- OpenAI - For ChatGPT's design inspiration
- React Team - For the incredible framework
- Tailwind CSS - For the utility-first CSS framework
- Contributors - Thank you to all contributors!
- π§ Email: support@lmwebui.com
- π¬ Discord: Join our community
- π Documentation: docs.lmwebui.com
- π Issues: GitHub Issues
Made with β€οΈ by the LMWebUI team
β Star us on GitHub β’ π¦ Follow us on Twitter β’ π¬ Join our Discord
