Skip to content

Repository files navigation

LMWebUI

LMWebUI Main Interface

LMWebUI - Modern Language Model Web UI with dark theme and ChatGPT-like interface

React 18 TypeScript Tailwind CSS MIT License

πŸš€ Modern Language Model Web UI for local Ollama models

Open-source, privacy-focused, and fully customizable AI chat interface

🌐 Website: lmwebui.com


πŸ“˜ About LMWebUI

LMWebUI is an open-source web interface that enables users to interact with local language models through a modern, privacy-focused web UI.

What does "LMWebUI" mean?

  • 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.

Key Features:

  • πŸ”’ 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

✨ Features

🎨 Modern UI/UX

  • 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

🌍 Internationalization

  • 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

πŸ”’ Privacy & Security

  • 100% Local - No data leaves your device
  • No Telemetry - Zero tracking or analytics
  • Direct Ollama Connection - No intermediaries
  • Local Storage - Conversations stored locally

⚑ Advanced Features

  • 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

πŸš€ Quick Start

Prerequisites

  • Node.js 18+ and npm/yarn
  • Ollama installed and running locally

Installation

  1. Clone the repository

    git clone https://github.com/ismailcankaratas/LMWebUI.git
    cd LMWebUI
  2. Install dependencies

    npm install
    # or
    yarn install
  3. Start Ollama

    ollama serve
  4. Install a model

    ollama pull llama2
    # or any other model you prefer
  5. Start the development server

    npm run dev
    # or
    yarn dev
  6. Open your browser Navigate to http://localhost:3000

πŸ› οΈ Tech Stack

  • 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

πŸ“ Project Structure

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
└── ...

πŸ”§ Configuration

Environment Variables

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.0

Customization

Themes

Modify src/stores/themeStore.ts to add custom themes:

const themes = {
  dark: {
    background: '#0f172a',
    surface: '#111827',
    // ... your custom colors
  }
}

Languages

Add new languages in src/i18n/locales/:

  1. Create new-lang.json
  2. Add translations
  3. Update src/i18n/index.ts

πŸš€ Deployment

Vercel (Recommended)

  1. Connect your GitHub repository
  2. Set environment variables
  3. Deploy automatically

Deploy with Vercel

Docker

# Build the image
docker build -t lmwebui .

# Run the container
docker run -p 3000:3000 lmwebui

Static Hosting

# Build for production
npm run build

# Deploy the dist/ folder to any static host

🀝 Contributing

We welcome contributions! Please see our Contributing Guide for details.

Development Setup

  1. Fork the repository
  2. Create a feature branch
    git checkout -b feature/amazing-feature
  3. Make your changes
  4. Run tests
    npm test
  5. Commit your changes
    git commit -m 'Add amazing feature'
  6. Push to the branch
    git push origin feature/amazing-feature
  7. Open a Pull Request

πŸ“‹ Roadmap

  • 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

πŸ› Known Issues

  • 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

πŸ’‘ Ideas & Feature Requests

Have an idea? We'd love to hear it!

πŸ“„ License

This project is licensed under the MIT License - see the LICENSE file for details.

πŸ™ Acknowledgments

  • 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!

πŸ“ž Support


Made with ❀️ by the LMWebUI team

⭐ Star us on GitHub β€’ 🐦 Follow us on Twitter β€’ πŸ’¬ Join our Discord

About

LMWebUI, privacy-focused Language Model Web UI for local Ollama models. Run language models locally with a beautiful web interface.

Topics

Resources

Code of conduct

Contributing

Security policy

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages