Sync Your Folder to ChatGPT: the story behind `openai-folder-sync`

created: Freitag, Aug. 29, 2025
Depicting a local directory being synched into a chat-bubble with the openai logo

Vor einiger Zeit stieß ich immer wieder auf dasselbe Problem: Ich hatte eine Menge Notizen, Spezifikationen und Markdown-Dokumente auf meinem Laptop, aber wenn ich ChatGPT öffnete und Fragen dazu stellte, wusste das Modell natürlich nicht, dass sie existieren. Dateien per Copy-Paste zu übertragen war mühsam; manuelles Hochladen einzeln war auch nicht viel besser. Also habe ich ein kleines CLI-Tool gebaut, das mir die lästige Arbeit abnimmt: openai-folder-sync, ein Kommandozeilen-Tool, das ein lokales Verzeichnis mit einem OpenAI Vector Store synchronisiert, sodass diese Dateien als durchsuchbarer Kontext für ChatGPT verfügbar sind.

Why a vector store?

OpenAIs Dateisuche basiert auf einem Vector Store. Man fügt Dateien in einen Store ein, diese werden in Embeddings umgewandelt, und Assistenten (oder ChatGPT über verbundene Tools) können Antworten basierend auf diesen Dateien abrufen und untermauern. Das ist ein sauberes Modell, aber es setzt voraus, dass man daran denkt, seine Dateien hochzuladen und zu pflegen. Ein Synchronisierungsschritt – der einen Ordner spiegelt, der einem ohnehin wichtig ist – kommt dem im Alltag näher.

What the tool does

openai-folder-sync durchsucht ein Verzeichnis auf deinem Rechner, filtert Dateien nach Endungen und lädt sie in einen bestehenden Vector Store hoch. Du kannst es einmal ausführen, um einen Store zu füllen, oder regelmäßig (z. B. per Cron-Job), um deine Wissensbasis aktuell zu halten. Es gibt außerdem eine Option, Git-Metadaten (Branch und Commit) in die hochgeladenen Inhalte einzubetten, sodass du genau weißt, aus welcher Version ChatGPT etwas zitiert.

Repo: https://github.com/JensWalter/openai-folder-sync

Installation

Es ist in Rust geschrieben und wird über Cargo installiert:

cargo install --git https://github.com/JensWalter/openai-folder-sync.git

Cargo baut das Binary und legt es in deinem PATH ab.

Usage

Du benötigst einen OpenAI API-Schlüssel und eine bestehende Vector Store-ID (die sieht aus wie vs_…). Dann zeigst du das CLI auf deinen Ordner:

openai-folder-sync \
  --vector-store 'vs_ABCDEFGHIJK' \
  --local-dir '/Users/jens/tmp/wiki/content' \
  --extensions md

Möchtest du während der Entwicklung lieber über Cargo laufen lassen?

cargo run -- \
  --vector-store 'vs_ABCDEFGHIJK' \
  --local-dir '/Users/jens/tmp/wiki/content' \
  --extensions md

Die meisten Flags können auch über Umgebungsvariablen gesetzt werden:

export OPENAI_API_KEY=sk-...
export VECTOR_STORE=vs_ABCDEFGHIJK
export LOCAL_DIR=/Users/jens/tmp/wiki/content
export EXTENSIONS=md,txt,pdf
export GIT_INFO=true

openai-folder-sync

Common flags
  --vector-store / VECTOR_STORE – Zielstore-ID
  --local-dir / LOCAL_DIR – zu synchronisierender Ordner
  --extensions / EXTENSIONS – kommaseparierte Liste
  --git-info / GIT_INFO – Git-Metadaten einbeziehen (true|false)
  --help – alle Optionen anzeigen

How this fits with ChatGPT

Sobald die Dateien im Vector Store sind, können ChatGPT (oder deine Assistants API Apps) relevante Ausschnitte aus diesen Dateien abrufen, während sie deine Fragen beantworten. Das heißt, du kannst Fragen stellen wie „Was stand im Vorschlag zum Migrationszeitplan?“ und das Modell holt den passenden Kontext aus deinen synchronisierten Dokumenten – Copy-Paste ist nicht mehr nötig. Dein Ordner wird so effektiv zu einer lebendigen Wissensbasis.

Tips & gotchas

Example workflow

  1. Erstelle jeweils einen Vector Store pro Wissensdomäne (z.B. „Company Wiki“, „Research Notes“).
  2. Zeige openai-folder-sync auf den entsprechenden lokalen Ordner.
  3. Führe es regelmäßig als Teil deiner Arbeitsroutine aus (bei mir: nach dem Push auf main).
  4. Stelle ChatGPT Fragen und lass die Retrieval-Funktion die Hauptarbeit machen.

Roadmap

Ich habe aktuell keine weiteren Pläne für dieses Tool. Wenn dir etwas fehlt, öffne einfach ein Issue oder einen PR.

Wenn du es ausprobieren möchtest, enthält das Repository Installations- und Nutzungsdetails sowie die Hilfsausgabe. Ich habe es gebaut, um meinen eigenen Workflow zu vereinfachen; wenn es dir einige Copy-Paste-Marathons erspart und ChatGPT hilft, aus deinen realen Dokumenten zu antworten, ist das ein Gewinn. Viel Erfolg beim Synchronisieren!