Vor einiger Zeit bin ich immer wieder auf dasselbe Problem gestoßen: Ich hatte viele 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 existierten. Dateien per Copy-Paste zu übertragen war mühsam; sie manuell einzeln 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 durchsuchbarer Kontext für ChatGPT werden.
OpenAI’s Dateisuche basiert auf einem Vector Store. Du fügst Dateien zu einem Store hinzu, sie werden in Embeddings umgewandelt, und Assistenten (oder ChatGPT über verbundene Tools) können über diese Dateien Antworten abrufen und belegen. Das ist ein klares Modell, aber es setzt voraus, dass du daran denkst, deine Dateien hochzuladen und zu pflegen. Ein Synchronisations-Schritt – der ein Verzeichnis spiegelt, das du sowieso pflegst – kommt unserem täglichen Arbeiten näher.
openai-folder-sync scannt ein Verzeichnis auf deinem Rechner, filtert Dateien nach Endung und lädt sie in einen bestehenden Vector Store hoch. Du kannst es einmalig ausführen, um einen Store zu befüllen, oder als Teil deines Workflows (z.B. über einen Cron-Job), um deine Wissensbasis aktuell zu halten. Es gibt auch einen Schalter, um Git-Metadaten (Branch und Commit) in die hochgeladenen Inhalte einzubetten, sodass du genau weißt, aus welcher Version ChatGPT zitiert.
md,txt,pdf)--git-info)Repo: https://github.com/JensWalter/openai-folder-sync
Das Tool ist in Rust geschrieben und wird über Cargo installiert:
cargo install --git https://github.com/JensWalter/openai-folder-sync.git
Cargo baut und platziert die openai-folder-sync-Binärdatei im PATH.
Usage
Du benötigst einen OpenAI API-Schlüssel und eine vorhandene Vector Store ID (beginnt mit vs_…). Dann zeigst du das CLI auf dein Verzeichnis:
openai-folder-sync \
--vector-store 'vs_ABCDEFGHIJK' \
--local-dir '/Users/jens/tmp/wiki/content' \
--extensions md
Möchtest du das während der Entwicklung lieber via Cargo ausführen?
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 – Ziel-Store-ID
--local-dir / LOCAL_DIR – zu synchronisierender Ordner
--extensions / EXTENSIONS – kommaseparierte Liste
--git-info / GIT_INFO – Git-Metadaten einfügen (true|false)
--help – alle Optionen anzeigen
Sobald die Dateien im Vector Store sind, können ChatGPT (oder deine Assistants API Apps) passende Auszüge 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 zieht den relevanten Kontext aus deinen synchronisierten Dokumenten – Copy-Paste entfällt. Dein Ordner wird effektiv zu einer lebenden Wissensbasis.
Im Moment habe ich keine weiteren Pläne für dieses Tool. Wenn du denkst, es fehlt noch etwas, öffne einfach ein Issue oder PR.
⸻
Wenn du es ausprobieren möchtest: Das Repository enthält Installations- und Nutzungsdetails sowie Hilfe-Ausgaben. Ich habe es gebaut, um meinen eigenen Workflow zu vereinfachen; wenn es dir einige Copy-Paste-Marathons erspart und ChatGPT hilft, aus deinen echten Dokumenten zu antworten, ist das ein Gewinn. Viel Spaß beim Synchronisieren!