From a28cc97aed552ea1301d29badbeeebcfe47769c9 Mon Sep 17 00:00:00 2001 From: Konstantin Fickel Date: Fri, 20 Feb 2026 16:55:53 +0100 Subject: [PATCH] docs: add archive_folder and OpenAI provider to README --- README.md | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/README.md b/README.md index f525751..3cac101 100644 --- a/README.md +++ b/README.md @@ -2,7 +2,7 @@ A build tool for AI-generated artifacts. Define image and text targets in a YAML config, and bulkgen handles dependency resolution, incremental builds, and parallel execution. -Uses [Mistral](https://mistral.ai) for text generation and [BlackForestLabs](https://blackforestlabs.ai) (FLUX) for image generation. +Uses [Mistral](https://mistral.ai) and [OpenAI](https://openai.com) for text generation, and [BlackForestLabs](https://blackforestlabs.ai) (FLUX) and [OpenAI](https://openai.com) for image generation. ## Installation @@ -25,6 +25,7 @@ uv sync ```bash export MISTRAL_API_KEY="your-key" export BFL_API_KEY="your-key" +export OPENAI_API_KEY="your-key" ``` 2. Create a config file (e.g. `my-project.bulkgen.yaml`): @@ -62,6 +63,7 @@ The config file must be named `.bulkgen.yaml` and placed in your proje | Field | Description | |---|---| | `defaults` | Default model names (optional) | +| `archive_folder` | Directory to move previous outputs into before rebuilding (optional) | | `targets` | Map of output filenames to their configuration | ### Defaults @@ -127,6 +129,20 @@ targets: bulkgen resolves dependencies automatically. If you build a single target, its transitive dependencies are included. +### Archiving previous outputs + +Set `archive_folder` at the top level to preserve previous versions of generated files. When a target is rebuilt, the existing output is moved to the archive folder with an incrementing numeric suffix: + +```yaml +archive_folder: archive + +targets: + hero.png: + prompt: "A dramatic sunset over mountains" +``` + +On each rebuild of `hero.png`, the previous file is archived as `archive/hero.01.png`, `archive/hero.02.png`, etc. The archive directory is created automatically if it doesn't exist. + ## CLI ### `bulkgen build [target]` @@ -201,5 +217,6 @@ The flake also exposes: | Variable | Required for | |---|---| -| `MISTRAL_API_KEY` | Text targets (`.md`, `.txt`) | -| `BFL_API_KEY` | Image targets (`.png`, `.jpg`, `.jpeg`, `.webp`) | +| `MISTRAL_API_KEY` | Text targets via Mistral models | +| `BFL_API_KEY` | Image targets via FLUX models | +| `OPENAI_API_KEY` | Text and image targets via OpenAI models |