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.
| Field | Value |
|---|---|
| Default URL | http://localhost:1234 |
| Auth | None required |
Setup
- Download and install LM Studio
- Load a model (e.g., Qwen, Llama, Mistral) from the Discover tab
- Click Start Server in the Local Server tab — it starts on port
1234by default - The server URL is shown in the Server tab header (e.g.,
http://192.168.86.77:1234) - 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/modelsin a browser — theidfield 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.
| Field | Value |
|---|---|
| Default URL | http://localhost:11434 |
| Auth | None required |
Setup
- Install Ollama
- Pull a model:
ollama pull llama3.2:latest - Ollama starts automatically and listens on port
11434 - 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.0in System Environment Variables, then restart Ollama - Docker:
-e OLLAMA_HOST=0.0.0.0
- macOS/Linux:
Finding your model name
- Run
ollama listin terminal — the NAME column shows available models - Or visit
http://<your-ip>:11434/api/tags— thenamefield in each model entry - Use the full name including tag, e.g.,
llama3.2:latest(not justllama3.2)
Paperless-ngx
Document management system that indexes PDFs, images, and office documents with OCR.
| Field | Value |
|---|---|
| Default URL | http://localhost:8010 |
| Auth | API Token |
Setup
- Install Paperless-ngx (Docker recommended)
- The default port is
8000, but many setups use8010— check yourdocker-compose.yml - Log in to the Paperless web UI
Finding your API token
- Open Paperless web UI → click your username (top-right) → My Profile
- Scroll down to Auth Tokens section
- Click + Add to create a new token, or copy an existing one
- The token looks like:
a1b2c3d4e5f6a1b2c3d4e5f6a1b2c3d4e5f6a1b2
Alternative (Django admin)
- Go to
http://<your-url>/admin/authtoken/tokenproxy/ - Click Add Token, select your user, and save
- Copy the token string
Obsidian (Local REST API)
Connects to your Obsidian vault via the Local REST API community plugin.
| Field | Value |
|---|---|
| Default URL | http://127.0.0.1:27123 or https://127.0.0.1:27124 |
| Auth | API Key (Bearer token) |
Setup
- Open Obsidian → Settings → Community plugins → Browse
- Search for "Local REST API" and install it
- Enable the plugin in Community plugins
- Go to the plugin's settings (click the gear icon next to it)
Finding your API key
- In the Local REST API plugin settings, you'll see the API Key field
- Copy the key — it's a long alphanumeric string
- The settings also show the port (default:
27123for HTTP,27124for HTTPS) - 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.
| Field | Value |
|---|---|
| Default URL | http://localhost:8080 |
| Auth | Token ID + Token Secret |
Setup
- Install BookStack (Docker recommended)
- Default port is
8080— check yourdocker-compose.ymlport mapping
Finding your API tokens
- Log in to BookStack web UI
- Click your profile icon (top-right) → Edit Profile
- Scroll down to API Tokens section
- Click Create Token
- Give it a name (e.g., "Prism") and click Save
- Copy both values:
- Token ID — short alphanumeric string (e.g.,
GaE5y9k3E6rL) - Token Secret — longer string (e.g.,
lGiCc3IpIkBE5t0r4muMvQxMbhv9oOET)
- Token ID — short alphanumeric string (e.g.,
- Important: The Token Secret is only shown once — save it immediately
Nextcloud
Self-hosted cloud storage and collaboration platform.
| Field | Value |
|---|---|
| Default URL | http://localhost:8443 |
| Auth | Username + App Password |
Setup
- Install Nextcloud (Docker, Snap, or manual)
- Check your port in the Nextcloud config or
docker-compose.yml
Creating an App Password
- Log in to Nextcloud web UI
- Click your avatar (top-right) → Settings
- Go to Security in the left sidebar
- Scroll down to Devices & sessions
- Enter a name (e.g., "Prism") in the App name field
- Click Create new app password
- Copy the generated password — it looks like:
xY3kL-mN7pQ-rS9tU-vW2xA-bC4dE - 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.
- Open Settings → Sources → Local Files → Apps and filenames.
- 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.
- For filenames, enable Local Files and choose its approved folders and supported extensions. Hidden files, excluded directories and repository ignore rules still apply.
- 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.
| Field | Value |
|---|---|
| Search Paths | Comma-separated directory paths |
| Extensions | Comma-separated file extensions |
| Auth | None (local filesystem) |
Setup
- Enter one or more directories to index, separated by commas:
Use absolute paths on Windows:~/Documents, ~/Projects, ~/NotesC:\Users\you\Documents, D:\Projects - 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
- Default:
- 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.
| Field | Value |
|---|---|
| Provider | Gmail, Outlook or FastMail |
| Auth | OAuth2 Access Token |
Gmail setup
- Go to Google Cloud Console
- Create a project → Enable the Gmail API
- Create OAuth 2.0 credentials (Desktop app type)
- Use the OAuth flow to get an access token with scope:
https://www.googleapis.com/auth/gmail.readonly - Paste the access token into Prism
Outlook / Microsoft setup
- Go to Azure Portal → App registrations → New registration
- Add Microsoft Graph API permission:
Mail.Read - Use the OAuth flow to get an access token
- Paste the access token into Prism
SearXNG
Self-hosted metasearch engine that aggregates results from multiple search engines.
| Field | Value |
|---|---|
| Default URL | http://localhost:8080 |
| Auth | None required |
Setup
- Install SearXNG (Docker recommended):
docker run -d -p 8080:8080 --name searxng searxng/searxng - Ensure JSON output is enabled in
settings.yml:search: formats: - html - json - 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.
- Create a personal API key in Linear account API settings. Give it access to the team you want to search.
- 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.
- Copy a personal token from ClickUp Settings → Apps. The account must have access to the selected list.
- 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.
- Create an Outline API key with documents.search and documents.info access.
- 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.
- In Joplin desktop, enable Web Clipper and copy its authorization token. Keep Joplin running.
- 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.
- Create a Wiki.js API key with both read:pages and read:source permissions.
- 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.
- Create a custom integration in Ghost and copy its Content API key. Do not use the Admin API key.
- 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.
- Create an API key in Karakeep settings.
- 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).
| Field | Value |
|---|---|
| Default URL | http://localhost:6333 |
| Auth | API Key (optional for local) |
Setup
- Install Qdrant (Docker recommended):
docker run -d -p 6333:6333 -p 6334:6334 \ -v qdrant_storage:/qdrant/storage \ qdrant/qdrant - Default ports:
6333(REST API),6334(gRPC) - Dashboard available at
http://localhost:6333/dashboard - For local instances, no API key is needed
- 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 embeddingsprism_bookstack— BookStack page embeddingsprism_obsidian— Obsidian note embeddings
Embedding Model
Prism uses an embedding model to convert text into vectors for semantic search.
| Field | Default |
|---|---|
| Model | text-embedding-nomic-embed-text-v2 |
| Dimension | 768 |
| Provider | local (LM Studio/Ollama) |
Local setup (default)
- In LM Studio: Go to Discover → search for
text-embedding-nomic-embed-text-v2→ Download - The embedding model runs alongside your chat model
- Select the loaded model in Prism and set its matching embedding dimension. The local provider uses the configured LM Studio URL.
OpenAI setup (alternative)
- In Source Priority advanced settings, change Embedding Provider to
openai - Enter your OpenAI API key
- Endpoint:
https://api.openai.com(default) - Model:
text-embedding-3-smallortext-embedding-ada-002
Default Ports
| Service | Default Port | Protocol |
|---|---|---|
| LM Studio | 1234 | HTTP |
| Ollama | 11434 | HTTP |
| Paperless-ngx | 8000 / 8010 | HTTP |
| BookStack | 8080 | HTTP |
| Obsidian REST API | 27123 (HTTP) / 27124 (HTTPS) | HTTP/HTTPS |
| Nextcloud | 8443 / 443 | HTTP/HTTPS |
| Joplin Web Clipper | 41184 | Loopback HTTP |
| SearXNG | 8080 | HTTP |
| Qdrant | 6333 | HTTP |
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 psor your service config - Is the service listening on
0.0.0.0(all interfaces) vs127.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
.localdomains, ensure mDNS/Bonjour is running
Service discovery not finding services
- Discovery only scans
localhostand 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