Sync anything to Open WebUI Knowledge Bases
Project description
📚 oikb
Keep your Open WebUI Knowledge Bases in sync. Point it at a local directory, a GitHub repo, a Confluence space, an S3 bucket, or any of 30+ supported sources. Only new and modified files are uploaded via incremental SHA-256 diffing.
[!IMPORTANT] Requires Open WebUI 0.9.6+
Quick Start
pip install oikb
export OPEN_WEBUI_URL=http://localhost:3000
export OPEN_WEBUI_API_KEY=sk-your-api-key
# Sync a directory to a Knowledge Base
oikb sync ./docs --kb-id your-kb-id
# Or watch for changes and auto-sync continuously
oikb watch ./docs --kb-id your-kb-id
Or with Docker:
docker run --rm \
-e OPEN_WEBUI_URL=http://host.docker.internal:3000 \
-e OPEN_WEBUI_API_KEY=sk-your-key \
-v ./docs:/data \
ghcr.io/open-webui/oikb watch /data --kb-id your-kb-id
Commands
| Command | Description |
|---|---|
oikb sync <source> |
Incremental sync to a Knowledge Base |
oikb watch <source> |
Watch for changes and auto-sync |
oikb diff <source> |
Preview what a sync would do |
oikb ls |
List files in a Knowledge Base |
oikb status |
Show KB info and file count |
oikb reset |
Delete all files in a Knowledge Base |
oikb config |
Manage saved URL and API key |
30+ Connectors
Beyond local directories, oikb can sync from remote sources using the same oikb sync <source> interface.
| Category | Sources |
|---|---|
| Code Repos | GitHub, GitLab, Bitbucket |
| Cloud Storage | S3, GCS, Azure Blob, Dropbox, R2, Google Drive, SharePoint |
| Wikis & KBs | Confluence, Notion, BookStack, Discourse, GitBook, Guru |
| Ticketing | Jira, Linear, Zendesk, Freshdesk, Asana, ClickUp, Airtable |
| Messaging | Slack, Discord, Microsoft Teams, Gmail |
| Sales & CRM | Salesforce, HubSpot |
| Web | Website / Sitemap crawler |
oikb sync github:owner/repo --kb-id your-kb-id
oikb sync confluence:ENG --kb-id your-kb-id
oikb sync s3://bucket/prefix --kb-id your-kb-id
oikb sync slack:C0123ABC --kb-id your-kb-id
Some connectors need an optional extra: pip install oikb[gdrive], pip install oikb[s3], or pip install oikb[all] for everything.
Configuration
Resolved in order (highest priority wins):
- CLI flags (
--url,--token) - Environment variables (
OPEN_WEBUI_URL,OPEN_WEBUI_API_KEY) - Config file (
~/.config/oikb/config.yaml)
Multi-source (.oikb.yaml)
Define multiple sources in a single config file:
sync:
- source: ./docs
kb-id: project-docs
- source: github:owner/wiki
kb-id: team-wiki
branch: main
- source: confluence:ENG
kb-id: eng-handbook
oikb sync # Sync all entries
oikb sync --name docs # Sync a specific entry
Docker Compose
Run as a sidecar alongside Open WebUI:
services:
open-webui:
image: ghcr.io/open-webui/open-webui:main
ports:
- "3000:8080"
oikb:
image: ghcr.io/open-webui/oikb:latest
environment:
- OPEN_WEBUI_URL=http://open-webui:8080
- OPEN_WEBUI_API_KEY=${OPEN_WEBUI_API_KEY}
volumes:
- ./docs:/data
command: watch /data --kb-id ${KB_ID}
depends_on:
- open-webui
restart: unless-stopped
GitHub Actions
- name: Sync docs to Open WebUI
uses: docker://ghcr.io/open-webui/oikb:latest
with:
args: sync /github/workspace/docs --kb-id ${{ secrets.KB_ID }}
env:
OPEN_WEBUI_URL: ${{ secrets.OPEN_WEBUI_URL }}
OPEN_WEBUI_API_KEY: ${{ secrets.OPEN_WEBUI_API_KEY }}
How It Works
- Scan source, compute checksums
- Send manifest to Open WebUI
/sync/diff - Delete stale files, create missing directories
- Upload only new and modified files
License
MIT. See LICENSE for details.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file oikb-0.1.3.tar.gz.
File metadata
- Download URL: oikb-0.1.3.tar.gz
- Upload date:
- Size: 35.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
03b15275a1d06d20b91df12c32e2518bd4895577cbca48433c86c4ab96e02797
|
|
| MD5 |
72607c650a6b075d348cdc7b75f2e925
|
|
| BLAKE2b-256 |
fa69ac253464e4febe3569900f84d2d4cff1a901be635fb74e3623fa9b54eab9
|
File details
Details for the file oikb-0.1.3-py3-none-any.whl.
File metadata
- Download URL: oikb-0.1.3-py3-none-any.whl
- Upload date:
- Size: 64.2 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: uv/0.8.0
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
bd7f05ff0b68fd7d9e5af9c453085dc4f864c9cc678eb1fe89dd8ded74cb77d8
|
|
| MD5 |
0659bc7c61e9b3f18347c81d53ab73f5
|
|
| BLAKE2b-256 |
45a62fb06fb2560697fd4e04b3ebb827403d754640fbc119a31ac2d82215e718
|