explaingit

open-webui/oikb

12PythonAudience · ops devopsComplexity · 3/5Setup · moderate

TLDR

A sync tool that watches 44 document sources like GitHub, Google Drive, Notion, and Slack and automatically pushes only new or changed files into Open WebUI AI Knowledge Bases.

Mindmap

mindmap
  root((oikb))
    What it does
      Detects changes
      SHA-256 checksums
      Pushes to Open WebUI
      Skip unchanged files
    Supported sources
      GitHub GitLab Bitbucket
      Google Drive Dropbox S3
      Notion Confluence
      Slack Discord Jira
    Run modes
      One-off CLI sync
      Daemon with cron
      Webhook triggers
    Ops features
      Prometheus metrics
      Health endpoints
      Slack alerts
Click or tap to explore — scroll the page freely

Code map

Detail Auto

An interactive map of this repo's files and how they connect — its source is parsed live in your browser. Click Visualize to build it.

filefunction / class

Things people build with this

USE CASE 1

Auto-sync your Notion workspace to an Open WebUI Knowledge Base so the AI always has current docs without manual uploads.

USE CASE 2

Trigger an instant sync from a GitHub repo to Open WebUI whenever code is pushed using the webhook mode.

USE CASE 3

Schedule nightly syncs from Google Drive or Confluence into Open WebUI using the daemon mode and a YAML config.

USE CASE 4

Monitor sync health with Prometheus metrics and receive Slack alerts if a sync job fails.

Tech stack

PythonpipDockerYAMLGitHub ActionsPrometheus

Getting it running

Difficulty · moderate Time to first run · 30min

Requires an Open WebUI instance running with an API key and at least one configured Knowledge Base.

In plain English

Open WebUI is a self-hosted interface for running AI chat tools locally or on your own server. Its Knowledge Bases feature lets you feed documents into the AI so it can answer questions about your own content. The problem is keeping those documents current whenever your source files change. That is what oikb solves: it watches a data source, detects what is new or changed, and pushes only those files to Open WebUI, skipping anything already up to date. The tool supports 44 different places where your documents might live. Code repositories on GitHub, GitLab, and Bitbucket are covered, as are cloud storage services like Amazon S3, Google Drive, Dropbox, and Azure Blob. Wiki and knowledge base platforms like Confluence, Notion, GitBook, and Outline are included. There is also support for ticketing systems like Jira and Linear, messaging apps like Slack and Discord, and CRM tools like Salesforce and HubSpot. The way oikb decides what to upload is based on SHA-256 checksums: it computes a fingerprint for each file, sends the list to Open WebUI, and uploads only the files whose fingerprints do not match what is already stored. For one-off use, the command-line is straightforward: install with pip, set two environment variables for your Open WebUI address and API key, then run a single sync command pointing at your source. A dry-run option lets you preview what would change before anything is uploaded. For ongoing use, oikb has a daemon mode. You define sources and schedules in a YAML config file, start the daemon, and it runs continuously. It supports standard cron schedules, webhook triggers so a GitHub push instantly kicks off a sync, health check endpoints for container orchestration, Prometheus metrics for monitoring, and failure notifications to Slack or similar services. Filtering is available so you can include or exclude files by path pattern or size, and you can split one source across multiple Knowledge Bases if needed. The tool can also run inside Docker or GitHub Actions.

Copy-paste prompts

Prompt 1
Help me set up oikb to sync a GitHub repository to my Open WebUI Knowledge Base. Write the YAML daemon config with a webhook trigger on push events.
Prompt 2
I want oikb to sync my Notion workspace to Open WebUI every night at 2am. Write the config YAML and show me the pip install and environment variable setup.
Prompt 3
Set up oikb in Docker with a health check endpoint and Slack failure notifications. Give me a docker-compose.yml that covers this setup.
Prompt 4
I only want oikb to sync Markdown files under docs/ and skip any file over 5MB. Show me how to configure path pattern and size filters in the YAML config.
Open on GitHub → Explain another repo

← open-webui on gitmyhub — every repo by this author, as a profile.

Verify against the repo before relying on details.