Pick a chat on the left or start a new one.
Documents
Untitled v0
P 0 C 0 T 0 ~$0.000 0.0s • 0 tok/s
Chat Controls
System Prompt
Advanced Params
Temperature
Default
Controls randomness: lower values are more focused and deterministic, higher values are more creative and varied.
Dynamic Temp Range
Default
Final T in [T - range, T + range] (0 = disabled)
Dynamic Temp Exponent
Default
Exponent applied to dynamic T (default 1.0)
Top-k
Default
0–200 (default 40)
Top-p
Default
0–1 nucleus sampling (default 0.95)
Min-p
Default
Relative to most likely token (default 0.05)
Typical-p
Default
1.0 = disabled (default 1.0)
Max Tokens (n_predict)
Default
Max generated tokens (default -1 = unlimited)
Keep Tokens (n_keep)
Default
How much of the prompt to keep when context overflows
Indent (n_indent)
Default
Minimum leading spaces for code completion
Repeat Penalty
Default
Discourage repeats (default 1.1)
Repeat Last N
Default
Window for repetition penalty (default 64)
Presence Penalty
Default
Repeat alpha presence penalty (default 0.0)
Frequency Penalty
Default
Repeat alpha frequency penalty (default 0.0)
DRY Multiplier
Default
0.0 = disabled
DRY Base
Default
Exponential base (default 1.75)
DRY Allowed Length
Default
Tokens allowed before DRY penalty skyrockets (default 2)
DRY Penalty Last N
Default
0 = disabled, -1 = context size (default -1)
DRY Sequence Breakers (JSON)
Default
JSON array of strings
Mirostat Mode
Default
0=off, 1=Mirostat, 2=Mirostat 2.0
Mirostat Tau
Default
Target entropy (default 5.0)
Mirostat Eta
Default
Learning rate (default 0.1)
Stream
Default
Return tokens as they are generated
Stop Sequences (JSON)
Default
JSON array of strings
Seed
Default
RNG seed (default -1 = random)
Logit Bias (JSON)
Default
Array or object; backend expects valid JSON
Grammar
Default
Grammar string (leave empty to disable)
JSON Schema
Default
Constrains output to valid JSON
Ignore EOS
Default
Ignore end-of-sequence and keep generating
Top-N Probs (n_probs)
Default
Include top-N token probabilities
Min Keep (samplers)
Default
Force samplers to return at least N tokens
Time Limit (ms)
Default
Abort after this many ms (if newline seen)
Samplers (CSV)
Default
Order of samplers; leave empty for default chain
Cache Prompt
Default
Reuse KV cache when possible (default true)
Return Token IDs
Default
Include raw token IDs in response
Timings per Token
Default
Include speed info in each response
Return Progress (stream)
Default
Include prompt processing progress in stream mode
Response Fields (JSON)
Default
Flatten & include only these fields
LoRA (JSON)
Default
Per-request LoRA adapters (JSON array)
Chat Template Kwargs (JSON)
Default
Additional params passed to the chat template parser (must be a JSON object). Example: set `enable_thinking` to `false` for non-reasoning mode on some models.
Settings

### General

Only superadmins can change these global limits.
Max tool-call iterations
How many tools the model may call in a row before the server aborts. Default: 10.

### Web

Web settings (Allow-Private + Limits) are managed globally for this user.
Activate web automatically
Enables Web by default for new chats. You can turn it off per chat anytime via the Web button below.
Allow local/private IPs for web reading (Intranet)
On: web_read (tool) and link extraction may also fetch `192.168.*`/`10.*`/`localhost`, etc. Off: private networks stay blocked.
Max chars for URL extraction (fetch)
Limit for the regular link extractor (readability.php). 0 = unlimited.
Max chars for tool-call web_read
Hard limit for tool calling (web_read). Models may stay below it, but not above it (unless this is 0 = unlimited).
Prefer saving web sources as attachments
On: URLs are fetched automatically on send and stored in the chat as a text source. Off: URLs stay in the prompt; the model uses tool calling (web reads apply only to this answer and are not saved to the chat).

### Search

Search is managed globally for this user (shared global settings). You can only view it here.
Activate web search automatically
Enables Web search by default for new chats (if configured). You can turn it off per chat anytime via the Web button below.
Provider
“Custom” expects Serper-compatible JSON and endpoints `/search` and `/news`.
Serper API Key
Stored locally (server-side SQLite). Header: `X-API-KEY`.
Brave API Key
Stored locally (server-side SQLite). Header: `X-Subscription-Token`.
Custom API Base/Endpoint URL
You can either provide a base URL (then we use `{base}/search` and `{base}/news`) or a full endpoint URL (e.g. `index.php`) that is called directly.
Custom News URL (optional)
Only needed if your endpoint URL (e.g. `/search/index.php`) does not allow automatically deriving a news route.
Allow local/private network endpoints (192.168/10.x)
If your custom search server runs on your LAN, you’ll need this. Default stays off (SSRF protection).
Custom API Key (optional)
If set, we send `X-API-KEY`.
SearchNGX Base URL
We call `{base}/search` with `format=json`. Important: in your SearchNGX instance, JSON output must be enabled (`search` → `formats` → `json`), otherwise no JSON will be returned.
Allow local/private network instances (192.168/10.x)
Only if your SearchNGX instance runs on your LAN. Default stays off (SSRF protection).
Instance API Key (optional)
If set, we send `X-API-KEY`.
gl
Geo (e.g. de, us)
hl
Language (e.g. de, en)
num
1–20
Tip: if you also enable “Web” in the composer, the model can fetch search results and then open links from those results and include their content.

### Image

These image settings are global (shared global settings) and can’t be changed here.
Activate image generation automatically
Enables Image generation by default for new chats. You can turn it off per chat anytime via the 🌐 button below.
Always attach last image to messages
When enabled, LLC automatically attaches the last generated image to every new user message. This lets the LLM see its own generated images and keep working with them. Downside: the chat then requires a vision-capable model.
Provider
Choose which backend generates images. OpenAI uses `/v1/images/*`. OpenRouter uses `/chat/completions` with image output. ComfyUI uses your own server (workflow JSON).
Base URL
Standard: `https://api.openai.com/v1`.
API Key
Stored locally (server-side SQLite). Header: `Authorization: Bearer ...`
Model
Default size
Default quality
Default background
GPT image models only
Default output
GPT image models only
OpenRouter Base URL
Standard: `https://openrouter.ai/api/v1`. Models are loaded from `/models?output_modalities=image`.
OpenRouter API Key
Separate storage from the OpenAI image key. Header: `Authorization: Bearer ...`
OpenRouter image model
Only image-output models are shown when OpenRouter returns modality metadata.
ComfyUI server URL
Your ComfyUI must be reachable from the server (Backend → ComfyUI). For local LAN IPs this is usually fine.
Workflow JSON (Template)
Paste the JSON you get from ComfyUI UI → File → Export (API).
Bindings JSON
Bindings define where values land in your JSON. Choose Auto-detect for automatic detection.
Default seed
-1 = random
Default steps
Default guidance
Default width
Default height
Default batch size
Max wait (seconds)
ComfyUI may take minutes depending on queue/GPU load. This is the maximum time we wait before aborting.
Defaults override workflow values
Off: we leave the values from your workflow JSON as-is (except the prompt). On: we inject the default values (steps/size/guidance/seed/batch) and overwrite the workflow JSON.

### Voice

Voice is managed globally for this user (shared global settings). You can only view it here.
Voice API Key (OpenAI)
Stored server-side in SQLite. Used only for Voice (Transcribe/Realtime) — independent of Connections.
Activate voice in every chat
On: the Voice button is shown by default in the composer.
Dictation: send automatically after transcription
On: after dictation the message is sent immediately. Off: text only lands in the input field — you press Enter yourself.

Read aloud
“Browser” uses your system’s built-in TTS. “OpenAI” uses the speech endpoint (requires a Voice API key).
OpenAI model
Currently we use `gpt-4o-mini-tts` (stable).
OpenAI voice

### Connections

Manage OpenAI-API compatible endpoints (e.g. openrouter.ai, api.openai.com). Stored locally.

No connections yet
Create your first connection — name, base URL, and key.
Name Prefix
Base URL
API Key
Stored locally in your SQLite database (server-side).
Additional headers (optional, JSON)
May not be needed for providers like OpenRouter.
Notes (optional)

### Pricing

Set token prices per Connection + Model. Unit: USD per 1M tokens. If a model is not listed here, the chat won't show $ cost estimates.

### My account

Signed in as — user
Email
Current password New password New password (repeat)

### User management

Admins can create users, grant/revoke admin rights, and change email/password.

No users
Create the first user.
Username
Email (optional)
Password
Admin
User inherits global connections (use only, no editing / no keys) User inherits global search settings (provider/keys/locale) User inherits global web settings (Allow-Private + limits) User inherits global image settings (provider/keys/defaults/ComfyUI) User inherits global voice settings (API key + TTS) User may create/manage their own connections

### About this project

LocalLightChat - the high performance chat frontend.

Project URL: https://www.locallightai.com/llc/

- Version: 0.5.0
- License: Apache License 2.0
- Third-Party Notices: Tools & Licenses
- Author: SRWare

© 2026 SRWare. All rights reserved.

Login
Username / Email Password
Default: admin / admin