--- title: Providers description: Configure sync providers (WebDAV, Dropbox, Google Drive, iCloud, S3, local Ollama) and LLM providers for TabMind's extraction pipeline. sidebar_position: 2 ---

Providers

TabMind is provider-agnostic for both sync and entity extraction. You can mix and match: store your index in WebDAV but extract entities with a local Ollama model, or sync via Google Drive and let OpenAI handle extraction. Nothing in this page is required reading — pick the section that matches what you want to enable.

> TL;DR. Providers you enable see only the data their docs page > describes. A sync provider never sees your LLM prompts, and an LLM > provider never sees your raw sync blobs. See > [Security](./security#data-flow) for the full boundary diagram.

Sync providers

Pick one. Two or more at once leads to write amplification.

WebDAV

Works with Nextcloud, ownCloud, Apache (mod_dav), Nginx (nginx-dav), and most commercial NAS appliances (Synology, QNAP). No third party in the loop.

1. In TabMind: Settings → Sync → Add provider → WebDAV. 2. Fill in: - Endpoint — e.g. https://cloud.example.com/remote.php/dav/files/alice/ - Username — usually your Nextcloud/ownCloud username. - Password — for Nextcloud, generate an app password under Settings → Security. Don't reuse your real password. 3. Click Test connection — we run a PROPFIND against the root. 4. Pick a folder (/TabMind is a sane default) and hit Save.

Troubleshooting tips live in [Troubleshooting → WebDAV](./troubleshooting#webdav).

Dropbox

OAuth-based. TabMind requests the files.content.write scope only — we never see your account email or your file list.

1. Settings → Sync → Add provider → DropboxSign in. 2. Approve the OAuth dialog. 3. Pick /Apps/TabMind as the sync folder. 4. Hit Push now to seed the first snapshot.

To revoke, visit and remove TabMind. The next sync attempt will fail cleanly with an auth error — no orphaned tokens.

Google Drive

OAuth-based. Uses the drive.file scope, which means TabMind can only touch files it itself created in My Drive/TabMind/.

1. Settings → Sync → Add provider → Google DriveSign in. 2. TabMind shows a Google consent screen — review the scopes, then Allow. 3. Confirm the target folder and Save.

To revoke: .

iCloud Drive

Available on macOS only (Apple's iCloud-on-Windows doesn't expose the Drive API we need).

1. Sign in to iCloud on the Mac running TabMind. 2. Settings → Sync → Add provider → iCloud Drive. 3. Grant TabMind access to Mobile Documents/iCloud~seele~tabmind/.

iCloud syncs in the background; TabMind retries every 30 s until the upload lands.

Self-hosted S3-compatible

Works with AWS S3, Cloudflare R2, Backblaze B2, MinIO, Wasabi, and any provider speaking the S3 API.

1. Generate an access key + secret with s3:PutObject, s3:GetObject, and s3:ListBucket on the bucket of your choice. 2. In TabMind: Settings → Sync → Add provider → S3-compatible. 3. Fill in: - Endpoint URLhttps://s3.us-east-1.amazonaws.com or your R2/MinIO host. - Region — required for AWS, optional elsewhere. - Bucket — must already exist. - Access key ID / Secret access key — paste from step 1. - Path prefix — optional, defaults to tabmind/. 4. Test connection — we run ListObjectsV2 against the prefix. 5. Save.

> Encryption note. S3 server-side encryption (SSE-S3 or SSE-KMS) is > applied on top of TabMind's client-side encryption, so even a leaked > bucket credential can't decrypt your index. See > [Security → Encryption](./security#encryption).

LLM providers

These power entity extraction — turning "Read the Smith & Liu 2024 paper on chain-of-thought decoding" into `{paper: "Smith & Liu 2024", authors: ["Smith", "Liu"], topic: "CoT decoding"}` edges in your graph. TabMind itself doesn't need an LLM provider; without one, manual pinning still works.

OpenAI

1. Grab an API key from . 2. In TabMind: Settings → Providers → LLM → OpenAI. 3. Paste the key. TabMind stores it in the OS keychain (Keychain on macOS, Credential Manager on Windows, libsecret on Linux). 4. Pick a model — gpt-4o-mini is the default for cost; gpt-4o gives noticeably better extraction on long pages.

Cost: extraction is capped at 1 call per URL per 24 hours and uses the smallest prompt we can fit your context. Budget ~$0.10 / 1,000 pages on gpt-4o-mini.

Anthropic

Same flow as OpenAI, key from . Default model: claude-haiku-4-5. Extraction prompts are identical across providers, so output quality is comparable.

Local Ollama

For zero-data-leak setups.

1. Run Ollama on a host reachable from TabMind (often localhost:11434). 2. Pull a model: ollama pull llama3.1:8b. 3. In TabMind: Settings → Providers → LLM → Ollama. 4. Set Endpoint (http://localhost:11434) and Model (llama3.1:8b). 5. Test — we run POST /api/generate with prompt: "ping".

If Ollama is on another machine on your LAN, replace localhost with its IP and ensure the Ollama server binds to 0.0.0.0 (OLLAMA_HOST=0.0.0.0 ollama serve).

Custom OpenAI-compatible endpoint

Works with LM Studio, vLLM, llama.cpp's server, OpenRouter, etc.

1. Settings → Providers → LLM → Custom OpenAI-compatible. 2. Endpoint (e.g. http://localhost:1234/v1), model name, and (if required) an API key. 3. Test — we run a GET /models request.

Turning providers off

Disabling a provider is non-destructive:

  • Disabling an LLM provider stops new extractions but keeps existing
  • graph nodes. Re-enabling later resumes extraction from the last checkpoint.
  • Disabling a sync provider stops push/pull but keeps the local index
  • and any cached blobs on the provider. Use the provider's own UI to delete those.

    To wipe a provider's tokens from TabMind: *Settings → Privacy → Reset provider credentials*. This revokes the OAuth token locally and (where supported) calls the provider's revoke endpoint.

    Recommended pairings

    | Goal | Sync | LLM | | ------------------------------------ | -------------- | ------------------- | | Maximum privacy | Local only | Local Ollama | | Multi-device, no third-party storage | WebDAV | Local Ollama | | Easiest setup | Dropbox | OpenAI gpt-4o-mini| | Cross-platform team | Google Drive | Anthropic Haiku | | Power user / homelab | Self-hosted S3 | Local Ollama (GPU) |

    Next steps

  • [Sync architecture →](./sync/architecture) — how the CRDT merge keeps
  • multiple providers + multiple devices consistent.
  • [Troubleshooting →](./troubleshooting) — fixes for OAuth loops,
  • permission errors, and 401s.
  • [Security →](./security) — what each provider actually sees.