{"id":28412582,"url":"https://github.com/ebenezerdon/webllm-offline-ai","last_synced_at":"2026-04-24T12:33:48.809Z","repository":{"id":293349957,"uuid":"983093562","full_name":"ebenezerdon/webllm-offline-ai","owner":"ebenezerdon","description":"A browser-based LLM chat application that runs AI models directly in your browser using WebGPU and WebLLM","archived":false,"fork":false,"pushed_at":"2025-05-15T18:16:52.000Z","size":726,"stargazers_count":2,"open_issues_count":0,"forks_count":0,"subscribers_count":1,"default_branch":"main","last_synced_at":"2025-06-24T13:42:50.702Z","etag":null,"topics":["ai","ai-agents","browser-ai","llama","llama3","llm","local-llm","qwen2-5","qwen3","webgpu","webllm"],"latest_commit_sha":null,"homepage":"https://chat.ebenezerdon.com","language":"JavaScript","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/ebenezerdon.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null}},"created_at":"2025-05-13T21:40:34.000Z","updated_at":"2025-06-17T13:09:43.000Z","dependencies_parsed_at":null,"dependency_job_id":"d448b9f1-57f0-4caa-bda5-f9c8a74cf259","html_url":"https://github.com/ebenezerdon/webllm-offline-ai","commit_stats":null,"previous_names":["ebenezerdon/webllm-offline-ai"],"tags_count":0,"template":false,"template_full_name":null,"purl":"pkg:github/ebenezerdon/webllm-offline-ai","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenezerdon%2Fwebllm-offline-ai","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenezerdon%2Fwebllm-offline-ai/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenezerdon%2Fwebllm-offline-ai/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenezerdon%2Fwebllm-offline-ai/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/ebenezerdon","download_url":"https://codeload.github.com/ebenezerdon/webllm-offline-ai/tar.gz/refs/heads/main","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/ebenezerdon%2Fwebllm-offline-ai/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32224152,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-24T10:26:35.452Z","status":"ssl_error","status_checked_at":"2026-04-24T10:25:27.643Z","response_time":64,"last_error":"SSL_connect returned=1 errno=0 peeraddr=140.82.121.5:443 state=error: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["ai","ai-agents","browser-ai","llama","llama3","llm","local-llm","qwen2-5","qwen3","webgpu","webllm"],"created_at":"2025-06-02T23:14:32.999Z","updated_at":"2026-04-24T12:33:48.803Z","avatar_url":"https://github.com/ebenezerdon.png","language":"JavaScript","funding_links":[],"categories":[],"sub_categories":[],"readme":"# 🖥️ 🤖 WebLLM Offline AI Assistant\n\nThis is a browser-based LLM chat application that runs AI models directly in your browser using WebGPU technology, presented with a **pc-themed desktop interface**.\nAll processing happens locally on your device. No server required. ✨\n\n## 🌟 Live URL\n\n🔗 Use the app at [https://chat.ebenezerdon.com](https://chat.ebenezerdon.com)\n\n## ✅ Features\n\n- 🖥️ **PC Desktop Experience**: Interact with the chat app in a simulated pc environment, complete with a taskbar, draggable window, and window controls (minimize, maximize, close).\n- 🤖 **Run large language models** directly in your browser.\n- 🔄 **Choice of models** with different sizes and capabilities.\n- 📊 **Progress tracking** for model downloads and progress bar.\n- ℹ️ **Model information** (download size, VRAM requirements, parameters).\n- 📱 **Responsive design** that adapts.\n- 💬 Clear feedback during download and inference, integrated into the pc UI.\n- 🎛️ Taskbar with a start button, app icon, and live clock.\n\n## 🔧 Requirements\n\n- **Browser Support**: Chrome 113+, Edge 113+, or Firefox 118+ with WebGPU enabled.\n- **Hardware**: Models work best with a dedicated GPU.\n  - 🟢 Small models: ~1GB VRAM (runs on most devices)\n  - 🟠 Medium models: ~6GB VRAM (dedicated GPU recommended)\n  - 🟣 Large models: 10GB+ VRAM (high-end GPU required)\n\n## 📁 Project Structure\n\n```\nwebllm-chat/\n├── index.html              # Main HTML file with pc desktop structure\n├── css/\n│   ├── pc-theme.css   # Core CSS for the pc desktop theme and app window\n│   └── icons.css           # SVG icons for the pc theme\n├── js/\n│   ├── index.js            # Main JavaScript entry point\n│   ├── app.js              # Core application logic for WebLLM chat\n│   ├── config.js           # Model configurations and constants\n│   ├── models/\n│   │   └── llm-model.js    # Handles LLM operations via WebLLM\n│   └── utils/\n│       ├── logger.js       # Logging utilities\n│       ├── ui.js           # UI helper functions (model select, progress, etc.)\n│       ├── db.js           # IndexedDB utilities for caching and preferences\n│       └── pc-ui.js   # Manages pc desktop UI interactions (dragging, controls, taskbar)\n├── favicon.svg             # pc-themed favicon\n└── README.md               # This file\n```\n\n## 🚀 Development\n\nTo run the application locally:\n\n1. Clone this repository.\n2. Open `index.html` in a WebGPU-enabled browser.\n3. The chat application will appear as a window on the simulated desktop.\n4. Select a model from the dropdown within the app window and click \"Load Model\" (or allow auto-load).\n\n## ⚙️ How It Works\n\nThis application uses [web-llm](https://github.com/mlc-ai/web-llm), a project that compiles LLMs to WebGPU for browser execution. The UI is structured as a pc desktop environment. When you load a model, it downloads the model weights (which may take some time). Subsequent loads use the cached version from IndexedDB.\nThe `pc-ui.js` script handles the visual aspects of the windowing (dragging, minimize, maximize, close simulation) and the taskbar.\n\n## 🔗 Connect With the Developer\n\nIf you find this project useful, please consider:\n\n- ⭐ Giving this repo a star on GitHub\n- 📺 Checking out my YouTube channel: [youtube.com/ebenezerdon](https://youtube.com/ebenezerdon)\n- 👥 Connecting with me on LinkedIn: [linkedin.com/in/ebenezerdon](https://linkedin.com/in/ebenezerdon)\n- 🐦 Following me on X: [x.com/ebenezerDN](https://x.com/ebenezerDN)\n\nYour support helps me continue creating open-source projects like this one! 🙏\n\n## 📝 License\n\nGNU GPL v3\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febenezerdon%2Fwebllm-offline-ai","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Febenezerdon%2Fwebllm-offline-ai","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Febenezerdon%2Fwebllm-offline-ai/lists"}