Hace un tiempo me encontraba con el mismo problema constantemente: tenía un montón de notas, especificaciones y documentos markdown en mi portátil, pero cuando abría ChatGPT y hacía preguntas sobre ellos, el modelo obviamente no sabía que existían. Copiar y pegar archivos era tedioso; subirlos manualmente uno a uno no era mucho mejor. Así que construí una pequeña CLI que hace la parte aburrida por mí: openai-folder-sync, una herramienta de línea de comandos que sincroniza un directorio local con un OpenAI Vector Store, para que esos archivos se conviertan en contexto buscable para ChatGPT.
La búsqueda de archivos de OpenAI está construida alrededor de un vector store. Añades archivos a un store, se procesan en embeddings, y los asistentes (o ChatGPT vía herramientas conectadas) pueden recuperar y fundamentar respuestas usando esos archivos. Es un modelo limpio, pero asume que recordarás subir y mantener tu conjunto de archivos. Un paso de sincronización—que refleja una carpeta que ya te importa—está más cerca de cómo trabajamos día a día.
openai-folder-sync escanea un directorio en tu máquina, filtra archivos por extensión, y los sube a un vector store existente. Puedes ejecutarlo una vez para poblar un store, o añadirlo a tu rutina (por ejemplo, un trabajo cron) para mantener tu base de conocimiento actualizada. También hay una opción para incluir metadatos git (branch y commit) en el contenido subido, así cuando ChatGPT cita algo, sabes exactamente de qué versión viene.
md,txt,pdf)--git-info)Repo: https://github.com/JensWalter/openai-folder-sync
Está escrito en Rust y se instala vía Cargo:
cargo install --git https://github.com/JensWalter/openai-folder-sync.git
Cargo compilará y pondrá el binario openai-folder-sync en tu PATH.
Usage
Necesitarás una clave API de OpenAI y un ID de vector store existente (se ve como vs_…). Luego apunta la CLI a tu carpeta:
openai-folder-sync \
--vector-store 'vs_ABCDEFGHIJK' \
--local-dir '/Users/jens/tmp/wiki/content' \
--extensions md
¿Prefieres ejecutar con Cargo durante el desarrollo?
cargo run -- \
--vector-store 'vs_ABCDEFGHIJK' \
--local-dir '/Users/jens/tmp/wiki/content' \
--extensions md
La mayoría de flags también pueden establecerse vía variables de entorno:
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 – ID del store destino
--local-dir / LOCAL_DIR – carpeta a sincronizar
--extensions / EXTENSIONS – lista separada por comas
--git-info / GIT_INFO – incluir metadatos git (true|false)
--help – mostrar todas las opciones
Una vez que los archivos están en un vector store, ChatGPT (o tus apps de Assistants API) pueden recuperar fragmentos relevantes de esos archivos mientras responden a tus preguntas. Eso significa que puedes preguntar cosas como “¿Qué decía la propuesta sobre el calendario de migración?” y el modelo extraerá el contexto relevante de tus documentos sincronizados—sin necesidad de copiar y pegar. Tu carpeta se convierte efectivamente en una base de conocimiento viva.
Actualmente no tengo más planes para esta herramienta. Si crees que falta algo, simplemente abre un issue o PR.
⸻
Si quieres probarla, el repositorio incluye detalles de instalación, uso y la salida de ayuda. La construí para simplificar mi propio flujo de trabajo; si te ahorra unas cuantas maratones de copiar-pegar y ayuda a ChatGPT a responder desde tus documentos reales, eso es una victoria. ¡Feliz sincronización!