Skip to main content
KiwiFS versions every write so you never lose data. Choose the strategy that fits your use case.

Strategies

Configure via CLI flag or .kiwi/config.toml:

git (default)

Every write creates a real git commit. You get full git log, git blame, git diff, and git revert for free. The X-Actor header becomes the commit author.
Best for: production, audit trails, multi-agent environments.

cow (copy-on-write)

Lighter-weight versioning that stores snapshots without a real git repo. Useful when you want rollback capability but don’t need the full git workflow.
Best for: high-write environments, embedded use cases.

none

No versioning at all. Writes overwrite files in place. Use this for ephemeral or scratch knowledge bases. Best for: development, temporary data, CI pipelines.

Async batching

To reduce git overhead under high write volume, KiwiFS batches commits:
Multiple writes within the batch window are combined into a single git commit. This dramatically improves throughput while preserving atomicity per batch.

Optimistic locking

The versioning system powers optimistic concurrency control via ETags. When you read a file, the response includes an ETag header containing the git blob SHA.
If the file was modified between your read and write, you get a 409 Conflict response.

API endpoints

See the Versioning API reference for detailed endpoint documentation.
Last modified on May 8, 2026