Sincroniza tu carpeta con ChatGPT: la historia detrás de `openai-folder-sync`

created: viernes, ago. 29, 2025
Representación de un directorio local siendo sincronizado a una burbuja de chat con el logo de openai

Hace un tiempo seguía encontrándome con el mismo problema: 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 por 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.

¿Por qué un vector store?

La búsqueda de archivos de OpenAI se basa en un vector store. Añades archivos a un store, se procesan en embeddings, y los asistentes (o ChatGPT a través de 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 de la que ya te ocupas—está más cerca de cómo trabajamos día a día.

Qué hace la herramienta

openai-folder-sync escanea un directorio en tu máquina, filtra archivos por extensión y los envía 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 incrustar metadatos de git (rama y commit) en el contenido subido, de modo que cuando ChatGPT cite algo, sepas exactamente de qué versión proviene.

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

Instalación

Está escrito en Rust y se instala mediante Cargo:

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

Cargo construirá y colocará el binario openai-folder-sync en tu PATH.

Uso

Necesitarás una clave de la API de OpenAI y un ID de vector store existente (parece 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 mediante Cargo durante el desarrollo?

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

La mayoría de las banderas también pueden establecerse mediante 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

Opciones comunes
  --vector-store / VECTOR_STORE – ID del store de destino
  --local-dir / LOCAL_DIR – carpeta a sincronizar
  --extensions / EXTENSIONS – lista separada por comas
  --git-info / GIT_INFO – incluir metadatos de git (true|false)
  --help – mostrar todas las opciones

Cómo encaja esto con ChatGPT

Una vez que los archivos están en un vector store, ChatGPT (o tus aplicaciones con la API de Assistants) 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 obtendrá el contexto relevante de tus documentos sincronizados—no se requiere copiar y pegar. Tu carpeta se convierte efectivamente en una base de conocimiento viva.

Consejos y precauciones

Flujo de trabajo de ejemplo

  1. Create un vector store por dominio de conocimiento (p. ej., “Company Wiki”, “Research Notes”).
  2. Point openai-folder-sync al folder local correspondiente.
  3. Runéalo como parte de tu rutina de escritura (para mí: después de hacer push a main).
  4. Pregunta a ChatGPT y deja que la recuperación haga el trabajo pesado.

Hoja de ruta

Actualmente no tengo más planes para esta herramienta. Si crees que falta algo, simplemente abre un issue o PR.

Si quieres probarlo, el repositorio incluye detalles de instalación y uso además de la salida de ayuda. Lo construí para simplificar mi propio flujo de trabajo; si te ahorra unas cuantas maratones de copiar-pegar y ayuda a que ChatGPT responda a partir de tus documentos reales, eso ya es una victoria. ¡Feliz sincronización!