Service Setup Guide

Open Settings → Sources → Add source, then enable and configure the sources you want to search. Select Manage → Test connection to check a source. Configure language models under Settings → AI. Most services need a base URL and API key; Linear and ClickUp use fixed API hosts. Service Discovery supports selected existing local services, not every connector.

LM Studio

LM Studio provides a local OpenAI-compatible API for running language models on your own hardware.

FieldValue
Default URLhttp://localhost:1234
AuthNone required

Setup

  1. Download and install LM Studio
  2. Load a model (e.g., Qwen, Llama, Mistral) from the Discover tab
  3. Click Start Server in the Local Server tab — it starts on port 1234 by default
  4. The server URL is shown in the Server tab header (e.g., http://192.168.86.77:1234)
  5. To allow network access from other machines, enable Serve on Local Network in Server settings

Finding your model name

  • Open LM Studio → Local Server tab → the loaded model name is shown at the top
  • Or visit http://<your-ip>:1234/v1/models in a browser — the id field is the model name
  • Prism auto-detects the loaded model during onboarding

Ollama

Unverified path. Prism has no named Ollama connector. Ollama exposes an OpenAI-compatible API, so pointing a custom model at http://localhost:11434/v1 should work, but this route has not been through a verified setup pass. LM Studio is the tested local runtime.

Ollama runs open-source models locally with a simple CLI.

FieldValue
Default URLhttp://localhost:11434
AuthNone required

Setup

  1. Install Ollama
  2. Pull a model: ollama pull llama3.2:latest
  3. Ollama starts automatically and listens on port 11434
  4. To allow network access, set the environment variable:
    • macOS/Linux: OLLAMA_HOST=0.0.0.0 ollama serve
    • Windows: Set OLLAMA_HOST=0.0.0.0 in System Environment Variables, then restart Ollama
    • Docker: -e OLLAMA_HOST=0.0.0.0

Finding your model name

  • Run ollama list in terminal — the NAME column shows available models
  • Or visit http://<your-ip>:11434/api/tags — the name field in each model entry
  • Use the full name including tag, e.g., llama3.2:latest (not just llama3.2)

Paperless-ngx

Document management system that indexes PDFs, images, and office documents with OCR.

FieldValue
Default URLhttp://localhost:8010
AuthAPI Token

Setup

  1. Install Paperless-ngx (Docker recommended)
  2. The default port is 8000, but many setups use 8010 — check your docker-compose.yml
  3. Log in to the Paperless web UI

Finding your API token

  1. Open Paperless web UI → click your username (top-right) → My Profile
  2. Scroll down to Auth Tokens section
  3. Click + Add to create a new token, or copy an existing one
  4. The token looks like: a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2

Alternative (Django admin)

  1. Go to http://<your-url>/admin/authtoken/tokenproxy/
  2. Click Add Token, select your user, and save
  3. Copy the token string

Obsidian (Local REST API)

Connects to your Obsidian vault via the Local REST API community plugin.

FieldValue
Default URLhttp://127.0.0.1:27123 or https://127.0.0.1:27124
AuthAPI Key (Bearer token)

Setup

  1. Open Obsidian → Settings → Community plugins → Browse
  2. Search for "Local REST API" and install it
  3. Enable the plugin in Community plugins
  4. Go to the plugin's settings (click the gear icon next to it)

Finding your API key

  1. In the Local REST API plugin settings, you'll see the API Key field
  2. Copy the key — it's a long alphanumeric string
  3. The settings also show the port (default: 27123 for HTTP, 27124 for HTTPS)
  4. If using HTTPS (recommended for network access), Prism automatically handles the self-signed certificate

Network access

  • By default the plugin only listens on 127.0.0.1 (localhost)
  • To access from another machine, go to plugin settings → enable "Enable Non-local Requests"
  • Use the IP of the machine running Obsidian (e.g., http://192.168.86.103:27123)

BookStack

Self-hosted wiki platform for organizing documentation.

FieldValue
Default URLhttp://localhost:8080
AuthToken ID + Token Secret

Setup

  1. Install BookStack (Docker recommended)
  2. Default port is 8080 — check your docker-compose.yml port mapping

Finding your API tokens

  1. Log in to BookStack web UI
  2. Click your profile icon (top-right) → Edit Profile
  3. Scroll down to API Tokens section
  4. Click Create Token
  5. Give it a name (e.g., "Prism") and click Save
  6. Copy both values:
    • Token ID — short alphanumeric string (e.g., GaE5y9k3E6rL)
    • Token Secret — longer string (e.g., lGiCc3IpIkBE5t0r4muMvQxMbhv9oOET)
  7. Important: The Token Secret is only shown once — save it immediately

Nextcloud

Self-hosted cloud storage and collaboration platform.

FieldValue
Default URLhttp://localhost:8443
AuthUsername + App Password

Setup

  1. Install Nextcloud (Docker, Snap, or manual)
  2. Check your port in the Nextcloud config or docker-compose.yml

Creating an App Password

  1. Log in to Nextcloud web UI
  2. Click your avatar (top-right) → Settings
  3. Go to Security in the left sidebar
  4. Scroll down to Devices & sessions
  5. Enter a name (e.g., "Prism") in the App name field
  6. Click Create new app password
  7. Copy the generated password — it looks like: xY3kL-mN7pQ-rS9tU-vW2xA-bC4dE
  8. Use your Nextcloud username (not email) in the Username field

Apps and filenames

Use the existing system index to find names as you type. This feature starts off and stays separate from knowledge search and Ask.

  1. Open Settings → Sources → Local Files → Apps and filenames.
  2. On macOS, enable Spotlight application lookup, filename lookup or both. On Windows, install Everything, keep it running under the same user account without administrator mode and enable filename lookup.
  3. For filenames, enable Local Files and choose its approved folders and supported extensions. Hidden files, excluded directories and repository ignore rules still apply.
  4. Type at least two characters. Select a result with an arrow key and press Enter, or click it to open. With no selection, Enter runs ordinary search. Cmd+Enter or Ctrl+Enter in the palette still opens Ask.

App lookup covers standard macOS application folders and excludes embedded helper apps. Windows app discovery is not included. Linux keeps existing knowledge search. Names and paths remain local and are excluded from AI context.

Spotlight and Everything may have incomplete or stale indexes. If the provider is unavailable, Prism shows its status and Enter can still search your knowledge sources.

Local Files

Indexes files on your local filesystem using a full-text search engine.

FieldValue
Search PathsComma-separated directory paths
ExtensionsComma-separated file extensions
AuthNone (local filesystem)

Setup

  1. Enter one or more directories to index, separated by commas:
    ~/Documents, ~/Projects, ~/Notes
    Use absolute paths on Windows: C:\Users\you\Documents, D:\Projects
  2. Optionally customize which file types to include:
    • Default: md, txt, pdf, docx, csv, json, rs, ts, py (and many more)
    • Add or remove extensions as needed
  3. Click Sync to trigger the initial indexing

Supported file types

  • Text: .md, .txt, .csv, .json, .yaml, .toml, .xml
  • Documents: .pdf (text extraction via lopdf), .docx (via docx_rs)
  • Code: .rs, .ts, .tsx, .js, .jsx, .py, .go, .java, .c, .cpp, .h, .sh
  • Web: .html, .css, .svg

Email (Gmail / Outlook / FastMail)

Search your email inbox directly from Prism.

FieldValue
ProviderGmail, Outlook or FastMail
AuthOAuth2 Access Token

Gmail setup

  1. Go to Google Cloud Console
  2. Create a project → Enable the Gmail API
  3. Create OAuth 2.0 credentials (Desktop app type)
  4. Use the OAuth flow to get an access token with scope: https://www.googleapis.com/auth/gmail.readonly
  5. Paste the access token into Prism

Outlook / Microsoft setup

  1. Go to Azure Portal → App registrations → New registration
  2. Add Microsoft Graph API permission: Mail.Read
  3. Use the OAuth flow to get an access token
  4. Paste the access token into Prism
Note: OAuth access tokens expire (typically 1 hour). You'll need to refresh them periodically. A future Prism update will add built-in OAuth flows.

SearXNG

Self-hosted metasearch engine that aggregates results from multiple search engines.

FieldValue
Default URLhttp://localhost:8080
AuthNone required

Setup

  1. Install SearXNG (Docker recommended):
    docker run -d -p 8080:8080 --name searxng searxng/searxng
  2. Ensure JSON output is enabled in settings.yml:
    search:
      formats:
        - html
        - json
  3. The default port is 8080 — check your Docker port mapping if different

Seven new services

These connectors provide read-only search and source passages for Ask. Add and enable a source under Settings → Sources, enter its fields and use Manage → Test connection. Each search returns up to ten results with readable text. Foundation supports five enabled search sources; Professional supports all fifteen.

Keys stay in the operating system keychain. Changing a configured service URL requires entering a key for the new destination. Optional collection and tag filters can be cleared without losing the saved key.

Linear

Personal API key and Team UUID.

  1. Create a personal API key in Linear account API settings. Give it access to the team you want to search.
  2. Enter the key and the team UUID in Prism. Use the UUID, not an issue prefix such as ENG.

Search reads issue titles and descriptions within that team. OAuth sign-in is not included in 1.6.0.

ClickUp

Personal API token and numeric List ID.

  1. Copy a personal token from ClickUp Settings → Apps. The account must have access to the selected list.
  2. Enter the token and the numeric List ID from the list URL in Prism.

Search includes closed tasks and task descriptions. Choose a list with at most 500 tasks; larger scopes report an error.

Outline

Instance base URL, API key and optional Collection UUID.

  1. Create an Outline API key with documents.search and documents.info access.
  2. Enter your base URL and key. Set a Collection ID to narrow search or leave it blank for all accessible collections.

Prism retrieves the full source text of matching documents. The key’s document permissions apply.

Joplin

Local Web Clipper URL and authorization token.

  1. In Joplin desktop, enable Web Clipper and copy its authorization token. Keep Joplin running.
  2. Use http://127.0.0.1:41184 unless Joplin shows another local port. Enter its token in Prism.

Only loopback URLs are accepted. Results open the corresponding desktop note. This connector does not connect to Joplin Server.

Wiki.js

Instance base URL and API key.

  1. Create a Wiki.js API key with both read:pages and read:source permissions.
  2. Enter the instance base URL and key in Prism, then run the connection check.

The instance’s search engine finds pages; Prism retrieves page source text. A key can pass search access but still be denied page content.

Ghost

Site base URL, Content API key and optional tag slug.

  1. Create a custom integration in Ghost and copy its Content API key. Do not use the Admin API key.
  2. Enter the site base URL and Content API key. Add a tag slug to narrow the selected posts if needed.

Search reads published post text available through the Content API. Scopes above 500 posts report an error. Drafts and restricted member content are not retrieved.

Karakeep

Instance base URL and API key.

  1. Create an API key in Karakeep settings.
  2. Enter the base URL and key in Prism. Stored articles need to have been fetched successfully by Karakeep.

Prism searches stored article content, text bookmarks and user notes. AI summaries are excluded from evidence. PDF and image attachments are not downloaded or extracted.

Qdrant

Vector database used by Prism for semantic search (RAG pipeline).

FieldValue
Default URLhttp://localhost:6333
AuthAPI Key (optional for local)

Setup

  1. Install Qdrant (Docker recommended):
    docker run -d -p 6333:6333 -p 6334:6334 \
      -v qdrant_storage:/qdrant/storage \
      qdrant/qdrant
  2. Default ports: 6333 (REST API), 6334 (gRPC)
  3. Dashboard available at http://localhost:6333/dashboard
  4. For local instances, no API key is needed
  5. If you set an API key in Qdrant's config, enter it in Prism

Auto-created collections

When you explicitly sync a supported source, Prism creates its corresponding collection:

  • prism_paperless — Paperless document embeddings
  • prism_bookstack — BookStack page embeddings
  • prism_obsidian — Obsidian note embeddings

Embedding Model

Prism uses an embedding model to convert text into vectors for semantic search.

FieldDefault
Modeltext-embedding-nomic-embed-text-v2
Dimension768
Providerlocal (LM Studio/Ollama)

Local setup (default)

  1. In LM Studio: Go to Discover → search for text-embedding-nomic-embed-text-v2 → Download
  2. The embedding model runs alongside your chat model
  3. Select the loaded model in Prism and set its matching embedding dimension. The local provider uses the configured LM Studio URL.

OpenAI setup (alternative)

  1. In Source Priority advanced settings, change Embedding Provider to openai
  2. Enter your OpenAI API key
  3. Endpoint: https://api.openai.com (default)
  4. Model: text-embedding-3-small or text-embedding-ada-002

Default Ports

ServiceDefault PortProtocol
LM Studio1234HTTP
Ollama11434HTTP
Paperless-ngx8000 / 8010HTTP
BookStack8080HTTP
Obsidian REST API27123 (HTTP) / 27124 (HTTPS)HTTP/HTTPS
Nextcloud8443 / 443HTTP/HTTPS
Joplin Web Clipper41184Loopback HTTP
SearXNG8080HTTP
Qdrant6333HTTP

Troubleshooting

"Connection refused"

The service isn't running or isn't listening on the expected port. Check:

  • Is the Docker container / service actually running?
  • Is the port correct? Check docker ps or your service config
  • Is the service listening on 0.0.0.0 (all interfaces) vs 127.0.0.1 (localhost only)?

"Connection timed out"

Network can't reach the service. Check:

  • Is the IP address correct?
  • Is there a firewall blocking the port?
  • Are you on the same network / VPN?

"HTTP 401 / 403"

Authentication failed. Check:

  • Is the API key / token correct and not expired?
  • For Paperless: use Token <key> format (Prism handles this automatically)
  • For Obsidian: the API key must match what's in the plugin settings
  • For BookStack: both Token ID and Token Secret are required

"DNS lookup failed"

The hostname can't be resolved. Check:

  • Use an IP address instead of a hostname
  • Check if your DNS resolver is working
  • For .local domains, ensure mDNS/Bonjour is running

Service discovery not finding services

  • Discovery only scans localhost and common ports — it won't find services on other machines
  • Enter the URL manually for remote services (e.g., http://192.168.86.16:8010)
  • Some services need specific ports open for discovery signatures to work