SpruceUp
A standalone Python system that keeps a vector database automatically and incrementally synced with a set of source files, watching for changes and re-embedding only what changed.
SpruceUp is a library, installed into an existing Python project, that automates keeping a vector database up to date with a set of source files. A developer writes a small entry-point file that defines sources such as local files or a Google Drive folder, a target vector store such as PgVector, Pinecone, or Weaviate, an embedder such as OpenAI, Cohere, Gemini, or Voyage AI, and a transform function that turns each changed file into a list of chunks to embed.
Running SpruceUp scans the configured sources, syncs any files not yet recorded in its manifest, and then enters a watch loop that picks up further changes incrementally, so re-indexing does not require reprocessing the entire source set on every run. The transform function is asynchronous, and file properties passed to it include the decoded text or raw bytes of each file depending on its format.