Skip to main content
World Monitor supports local AI inference via Ollama or LM Studio. All summarization runs on your hardware — no data leaves your machine, no API keys required.

Why Local LLMs?

Privacy: News headlines never sent to third-party APIs
Cost: Zero API fees, unlimited usage
Speed: No network latency for inference
Offline: Works without internet connection (after model download)
Control: Choose your own models and parameters

Ollama Setup

1. Install Ollama

Download from https://ollama.com/download:
Verify installation:

2. Download a Model

Recommended models for summarization:
Model size = approximate disk + RAM usage. 8GB+ RAM recommended for 7-8B models.

3. Start Ollama Server

Ollama runs as a background service after installation. Verify it’s running:
You should see a JSON response with available models.

4. Configure World Monitor

  1. Open Settings (Cmd+, or Ctrl+,)
  2. Navigate to AI & Summarization tab
  3. Enter Ollama URL: http://localhost:11434
  4. Select model from dropdown (auto-discovered)
  5. Click Save & Verify
The desktop app automatically:
  • Discovers available models
  • Filters out embedding-only models
  • Validates the endpoint
  • Sets the model as the primary provider

LM Studio Setup

1. Install LM Studio

Download from https://lmstudio.ai/ (available for macOS, Windows, Linux).

2. Download a Model

  1. Open LM Studio
  2. Navigate to Discover tab
  3. Search for models:
    • llama-3.1-8b-instruct (recommended)
    • mistral-7b-instruct
    • qwen2.5-7b-instruct
  4. Click Download

3. Start Local Server

  1. Navigate to Local Server tab (icon in left sidebar)
  2. Select your downloaded model
  3. Click Start Server
  4. Server starts on http://localhost:1234 by default

4. Configure World Monitor

  1. Open Settings (Cmd+, or Ctrl+,)
  2. Navigate to AI & Summarization tab
  3. Enter LM Studio URL: http://localhost:1234
  4. Select model from dropdown (auto-discovered via /v1/models)
  5. Click Save & Verify
LM Studio uses the OpenAI-compatible /v1/chat/completions endpoint, same as Ollama. The dashboard auto-detects the server type.

Model Selection Guide

Avoid embedding models (e.g., nomic-embed-text, all-minilm). The dashboard automatically filters these out.

Advanced Configuration

Custom Ollama Port

If Ollama is running on a different port:
Then configure:

Remote Ollama Server

Run Ollama on a different machine:
Configure the client:
Do not expose Ollama to the public internet without authentication. Use SSH tunneling or VPN for remote access.

Custom Token Limit

Override the maximum tokens for summaries:

Model Parameters

Ollama models use default parameters optimized for summarization:
  • Temperature: 0.3 (factual, low creativity)
  • Max Tokens: 300 (concise summaries)
  • Stop Sequences: None
To customize, edit server/worldmonitor/news/v1/_shared.ts:166.

Desktop Settings

The desktop app provides a visual model selector:
  1. Open Settings (Cmd+, or Ctrl+,)
  2. Navigate to AI & Summarization
  3. Enter Ollama/LM Studio URL
  4. Click outside the input field
  5. Model dropdown populates automatically
  6. Select your preferred model
  7. Click Save & Verify
Model discovery process:
  1. Tries Ollama native endpoint: GET /api/tags
  2. Falls back to OpenAI-compatible: GET /v1/models
  3. Filters out embedding models (name contains embed)
  4. Populates dropdown with valid models
  5. If discovery fails, shows manual text input
Secret storage:
  • macOS: Keychain Access (secrets-vault entry)
  • Windows: Credential Manager
  • Linux: Secret Service API
Cross-window sync: Saving in Settings broadcasts a localStorage event. The main dashboard hot-reloads secrets without restart.

Fallback Chain

AI summarization uses a 4-tier fallback:
Each tier attempts inference. On failure/timeout, the chain advances to the next provider.
Tier 1 (local) is always attempted first when OLLAMA_API_URL is configured, even if cloud keys are present.

Performance Tuning

GPU Acceleration

Ollama automatically uses GPU if available:
  • NVIDIA: CUDA (automatic)
  • Apple Silicon: Metal (automatic)
  • AMD: ROCm (requires manual setup)

RAM Optimization

If you see OOM errors, use smaller quantization:

Concurrent Requests

Ollama handles 1 request at a time by default. For higher concurrency:

Troubleshooting

”Ollama endpoint unreachable”

  1. Verify Ollama is running:
  2. Check firewall settings
  3. Ensure correct port in OLLAMA_API_URL

”No models available”

  1. Download at least one model:
  2. Verify models are listed:

“Model not found”

Model name in config doesn’t match Ollama:

Slow inference

  1. Check GPU utilization:
  2. Use smaller model (mistral vs llama3.1:8b)
  3. Enable GPU acceleration if not already active

High memory usage

Ollama keeps models in RAM. To unload:

Security Considerations

Do not expose Ollama to the public internet. It has no built-in authentication.
Recommended setup:
  • Bind to localhost only (default)
  • Use SSH tunneling for remote access
  • Run behind a reverse proxy with auth (Nginx, Caddy)
Desktop app security:
  • Sidecar API protected by session token
  • Token rotates on each app launch
  • Secrets stored in OS keychain, never in plaintext

OpenAI-Compatible Servers

Any server implementing /v1/chat/completions works:
  • llama.cpp server: ./server -m model.gguf --port 8080
  • vLLM: vllm serve model_name --port 8080
  • text-generation-webui: Enable OpenAI extension
  • LocalAI: Compatible out of the box
Configure the same way:
The dashboard detects the server type automatically via endpoint discovery.