Çetin b1f48d449e Add inline tool injection system (Sauron Protocol) with 85+ tools 1 month ago
..
.storybook 8e878f0cb4 Update packages + upgrade Storybook to v10 (#17201) 2 months ago
e2e a7a98e0fff SvelteKit-based WebUI (#14839) 4 months ago
scripts aa9538a63a webui: Remove running `llama-server` within WebUI `dev.sh` script (#16363) 3 months ago
src b1f48d449e Add inline tool injection system (Sauron Protocol) with 85+ tools 1 month ago
static a7a98e0fff SvelteKit-based WebUI (#14839) 4 months ago
.gitignore 99c53d6558 webui: Add a "Continue" Action for Assistant Message (#16971) 1 month ago
.npmrc a7a98e0fff SvelteKit-based WebUI (#14839) 4 months ago
.prettierignore a7a98e0fff SvelteKit-based WebUI (#14839) 4 months ago
.prettierrc a7a98e0fff SvelteKit-based WebUI (#14839) 4 months ago
README.md a7a98e0fff SvelteKit-based WebUI (#14839) 4 months ago
components.json a7a98e0fff SvelteKit-based WebUI (#14839) 4 months ago
eslint.config.js a7a98e0fff SvelteKit-based WebUI (#14839) 4 months ago
package-lock.json 99c53d6558 webui: Add a "Continue" Action for Assistant Message (#16971) 1 month ago
package.json 8e878f0cb4 Update packages + upgrade Storybook to v10 (#17201) 2 months ago
playwright.config.ts 13f2cfad41 Enable per-conversation loading states to allow having parallel conversations (#16327) 2 months ago
svelte.config.js bcfa87622a feat(webui): improve LaTeX rendering with currency detection (#16508) 2 months ago
tsconfig.json a7a98e0fff SvelteKit-based WebUI (#14839) 4 months ago
vite.config.ts bcfa87622a feat(webui): improve LaTeX rendering with currency detection (#16508) 2 months ago
vitest-setup-client.ts a7a98e0fff SvelteKit-based WebUI (#14839) 4 months ago

README.md

llama.cpp Web UI

A modern, feature-rich web interface for llama.cpp built with SvelteKit. This UI provides an intuitive chat interface with advanced file handling, conversation management, and comprehensive model interaction capabilities.

Features

  • Modern Chat Interface - Clean, responsive design with dark/light mode
  • File Attachments - Support for images, text files, PDFs, and audio with rich previews and drag-and-drop support
  • Conversation Management - Create, edit, branch, and search conversations
  • Advanced Markdown - Code highlighting, math formulas (KaTeX), and content blocks
  • Reasoning Content - Support for models with thinking blocks
  • Keyboard Shortcuts - Keyboard navigation (Shift+Ctrl/Cmd+O for new chat, Shift+Ctrl/Cmdt+E for edit conversation, Shift+Ctrl/Cmdt+D for delete conversation, Ctrl/Cmd+K for search, Ctrl/Cmd+V for paste, Ctrl/Cmd+B for opening/collapsing sidebar)
  • Request Tracking - Monitor processing with slots endpoint integration
  • UI Testing - Storybook component library with automated tests

Development

Install dependencies:

npm install

Start the development server + Storybook:

npm run dev

This will start both the SvelteKit dev server and Storybook on port 6006.

Building

Create a production build:

npm run build

The build outputs static files to ../public directory for deployment with llama.cpp server.

Testing

Run the test suite:

# E2E tests
npm run test:e2e

# Unit tests
npm run test:unit

# UI tests
npm run test:ui

# All tests
npm run test

Architecture

  • Framework: SvelteKit with Svelte 5 runes
  • Components: ShadCN UI + bits-ui design system
  • Database: IndexedDB with Dexie for local storage
  • Build: Static adapter for deployment with llama.cpp server
  • Testing: Playwright (E2E) + Vitest (unit) + Storybook (components)