Git for your prompts. Version, diff, rollback, and ship prompts like code.
Project description
promptvc: Git for your prompts
Version, diff, rollback, and ship prompts like code.
Why?
LLM engineers change prompts constantly but track them nowhere. There is no git log for prompts, no git diff between versions, no git checkout to roll back a bad change. promptvc fixes this with zero infra and just a local SQLite file.
Install
pip install prompt-version-control
Optional extras:
pip install "prompt-version-control[yaml]" # YAML export support
pip install "prompt-version-control[s3]" # S3 remote sync
Quick Start
# Initialize in your project directory
promptvc init
# Stage a prompt (opens $EDITOR)
promptvc add summarizer
# Commit it
promptvc commit summarizer -m "initial version"
# Edit and commit again
promptvc add summarizer
promptvc commit summarizer -m "made it more concise"
# See what changed
promptvc diff summarizer
# Full history
promptvc log summarizer
# Show a specific version
promptvc show summarizer --version 1
# Roll back (non-destructive, creates a new version)
promptvc rollback summarizer --version 1
# Tag a stable version
promptvc tag summarizer 1 stable
# Search across all prompts
promptvc search "summarization assistant"
# Export to JSON
promptvc export summarizer --output summarizer.json
Team Sharing
Push your prompt store to a private GitHub Gist and share the ID with teammates:
# First push (creates the Gist, saves ID to config)
promptvc push --gist --token <your-github-pat>
# Teammates pull and merge into their local store
promptvc pull <gist-id>
# Subsequent pushes update the same Gist automatically
promptvc push --gist
Or use S3:
promptvc push --bucket my-team-bucket --key prompts/store.json
promptvc pull s3://my-team-bucket/prompts/store.json
Pull is always safe: it merges by content hash, so no duplicate versions are created.
Commands
| Command | Description |
|---|---|
promptvc init |
Initialize .promptvc/ store in current directory |
promptvc add <name> |
Stage a prompt (editor / --file / stdin) |
promptvc commit <name> -m "msg" |
Commit staged prompt |
promptvc log <name> |
Show version history |
promptvc show <name> |
Display prompt content at a version |
promptvc diff <name> |
Unified diff between versions |
promptvc rollback <name> --version N |
Non-destructive rollback |
promptvc list |
List all tracked prompts |
promptvc env [set dev|staging|prod] |
View or set active environment |
promptvc export <name> |
Export history to JSON/YAML |
promptvc tag <name> <version> <label> |
Tag a version |
promptvc search <query> |
Full-text search |
promptvc push |
Push store to GitHub Gist or S3 |
promptvc pull <remote> |
Pull and merge from a remote |
Features
- Zero infra: local SQLite (
.promptvc/store.db), nothing to deploy - Works alongside Git: version your prompts next to your code
- Multi-environment:
dev,staging,prodsupport per version - Token counting: via tiktoken, falls back to word estimate
- Full-text search: SQLite FTS5 across all content and commit messages
- Non-destructive: rollback and pull always create new versions, history is never deleted
- Team sharing: push/pull via GitHub Gist or S3
- Rich UI: colored diffs, tables, syntax highlighting
Roadmap
- Remote sync via GitHub Gist
- Remote sync via S3
- GitHub Actions integration
- VS Code extension
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file prompt_version_control-0.1.0.tar.gz.
File metadata
- Download URL: prompt_version_control-0.1.0.tar.gz
- Upload date:
- Size: 20.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
e27b64426c2d9b22761147309141b11403bd1e3019cd843770622838819d4fbb
|
|
| MD5 |
633614a1ab072d636cd4e2b293fc8c61
|
|
| BLAKE2b-256 |
37311eac46634a3234140e896b9a7dc81bfa8dcfda81d6c4cf08e3a56090c794
|
Provenance
The following attestation bundles were made for prompt_version_control-0.1.0.tar.gz:
Publisher:
release.yml on ANIMESHIOLOGY/prompt-version-control
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
prompt_version_control-0.1.0.tar.gz -
Subject digest:
e27b64426c2d9b22761147309141b11403bd1e3019cd843770622838819d4fbb - Sigstore transparency entry: 1454384212
- Sigstore integration time:
-
Permalink:
ANIMESHIOLOGY/prompt-version-control@0a2dc244c579b3fe85423550ff2455c98d834e01 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ANIMESHIOLOGY
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0a2dc244c579b3fe85423550ff2455c98d834e01 -
Trigger Event:
push
-
Statement type:
File details
Details for the file prompt_version_control-0.1.0-py3-none-any.whl.
File metadata
- Download URL: prompt_version_control-0.1.0-py3-none-any.whl
- Upload date:
- Size: 29.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
6dbbfc46673dd7e67658dd888ca275047de594a861c784692ad3fd985a76504e
|
|
| MD5 |
408fd1970b02ce3648ab5d1a5f6a3342
|
|
| BLAKE2b-256 |
1c84cbf6b5e3ef06ce5c1ad2a5fc22d81ae7ebed0c4097913d5835a93c3cd6ee
|
Provenance
The following attestation bundles were made for prompt_version_control-0.1.0-py3-none-any.whl:
Publisher:
release.yml on ANIMESHIOLOGY/prompt-version-control
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
prompt_version_control-0.1.0-py3-none-any.whl -
Subject digest:
6dbbfc46673dd7e67658dd888ca275047de594a861c784692ad3fd985a76504e - Sigstore transparency entry: 1454384432
- Sigstore integration time:
-
Permalink:
ANIMESHIOLOGY/prompt-version-control@0a2dc244c579b3fe85423550ff2455c98d834e01 -
Branch / Tag:
refs/tags/v0.1.0 - Owner: https://github.com/ANIMESHIOLOGY
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@0a2dc244c579b3fe85423550ff2455c98d834e01 -
Trigger Event:
push
-
Statement type: