Vor einiger Zeit bin ich ständig auf dasselbe Problem gestoßen: 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; manuell Stück für Stück hochzuladen war auch keine große Verbesserung. Also habe ich ein kleines CLI gebaut, das mir die langweilige 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 werden.
OpenAIs Dateisuche basiert auf einem Vector Store. Du fügst Dateien zu einem Store hinzu, sie werden in Embeddings verarbeitet, und Assistenten (oder ChatGPT über verbundene Tools) können relevante Informationen abrufen und Antworten anhand dieser Dateien fundieren. Das ist ein sauberes Modell, aber es setzt voraus, dass du daran denkst, deine Dateimensammlung hochzuladen und zu pflegen. Ein Sync-Schritt — der ein Verzeichnis spiegelt, das du bereits pflegst — entspricht eher unserer täglichen Arbeitsweise.
openai-folder-sync durchsucht ein Verzeichnis auf deinem Rechner, filtert Dateien nach Erweiterung und schiebt sie in einen vorhandenen Vector Store. Du kannst es einmal ausführen, um einen Store zu befüllen, oder es in deine Routine einbauen (z. B. als Cron-Job), um deine Wissensbasis aktuell zu halten. Es gibt auch eine Option, Git-Metadaten (Branch und Commit) in den hochgeladenen Inhalt einzubetten, sodass du, wenn ChatGPT etwas zitiert, genau weißt, aus welcher Version es stammt.
md,txt,pdf)--git-info)Repo: https://github.com/JensWalter/openai-folder-sync
Es ist in Rust geschrieben und lässt sich über Cargo installieren:
cargo install --git https://github.com/JensWalter/openai-folder-sync.git
Cargo baut das Tool und legt das openai-folder-sync-Binary in deinem PATH ab.
Usage
Du brauchst einen OpenAI-API-Schlüssel und eine vorhandene Vector-Store-ID (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
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 – target store ID
--local-dir / LOCAL_DIR – folder to sync
--extensions / EXTENSIONS – comma-separated list
--git-info / GIT_INFO – include git metadata (true|false)
--help – show all options
Sobald die Dateien in einem Vector Store sind, kann ChatGPT (oder deine Assistants-API-Anwendungen) beim Beantworten deiner Fragen relevante Ausschnitte aus diesen Dateien abrufen. Das bedeutet, du kannst Dinge fragen wie „Was hat der Vorschlag zur Migrationszeit gesagt?“ und das Modell zieht den relevanten Kontext aus deinen synchronisierten Dokumenten — kein Copy-Paste nötig. Dein Ordner wird effektiv zu einer lebenden Wissensbasis.
Ich habe derzeit keine weiteren Pläne für dieses Tool. Wenn du denkst, dass etwas fehlt, öffne einfach ein Issue oder einen PR.
⸻
Wenn du es ausprobieren möchtest, enthält das Repository Installations- und Nutzungsdetails sowie die Hilfeausgabe. Ich habe es gebaut, um meinen eigenen Workflow zu vereinfachen; wenn es dich von ein paar Copy-Paste-Marathons befreit und ChatGPT hilft, aus deinen echten Dokumenten zu antworten, ist das ein Gewinn. Viel Erfolg beim Synchronisieren!