--- 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 ---
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.
Pick one. Two or more at once leads to write amplification.
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).
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 → Dropbox → Sign 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
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 Drive → Sign in. 2. TabMind shows a Google consent screen — review the scopes, then Allow. 3. Confirm the target folder and Save.
To revoke:
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.
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 URL — https://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).
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.
1. Grab an API key from 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.
Same flow as OpenAI, key from claude-haiku-4-5. Extraction prompts are identical across
providers, so output quality is comparable.
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).
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.
Disabling a provider is non-destructive:
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.
| 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) |