Install
openclaw skills install prompt-gitGit for your prompts. Track every change, diff versions, rollback mistakes, never lose a good prompt again. All local, zero dependencies, works offline.
openclaw skills install prompt-gitGit for your prompts. Track every change, diff versions, rollback mistakes, never lose a good prompt again. All local, zero dependencies, works offline.
Git for your prompts. Track every change, diff versions, rollback mistakes, never lose a good prompt again.
PromptGit gives you version control for AI prompts � system prompts, task prompts, templates, snippets. Save versions with notes, compare changes, tag your best ones, rollback bad edits, and search your entire prompt library. All local, zero dependencies, works offline.
You're refining an AI prompt. You change a few words. Suddenly it doesn't work as well. What did you change? Can you get the old version back? You have no idea because you just overwrote it.
Or you have 47 variations of "good system prompt" scattered across text files, Google Docs, and Notion. Which one actually works? When was it last updated? Who knows.
# Save your first prompt
echo "You are a helpful assistant..." | python3 prompt_git.py save assistant-v1 --note "First version"
# Make changes and save a new version
echo "You are a helpful and friendly assistant..." | python3 prompt_git.py save assistant-v1 --note "Added 'friendly'"
# See version history
python3 prompt_git.py versions assistant-v1
# Compare versions
python3 prompt_git.py diff assistant-v1 abc123 def456
# Rollback to a previous version
python3 prompt_git.py rollback assistant-v1 abc123
# From stdin
echo "Your prompt here" | python3 prompt_git.py save my-prompt --note "Initial version"
# From file
python3 prompt_git.py save my-prompt --file prompt.txt --note "v2 with examples"
# With category and tags
python3 prompt_git.py save system-prompt \
--category system \
--tag best \
--tag production \
--note "Production system prompt"
# List all prompts
python3 prompt_git.py list
# Filter by category
python3 prompt_git.py list --category system
# Filter by tag
python3 prompt_git.py list --tag best
# Get current version
python3 prompt_git.py get my-prompt
# Get specific version
python3 prompt_git.py get my-prompt --version abc123
# See all versions
python3 prompt_git.py versions my-prompt
# Output:
? def456 � 2026-02-21T15:30:00 � Added examples [production]
abc123 � 2026-02-21T10:00:00 � Initial version []
# The arrow (?) marks the current version
# Compare two versions
python3 prompt_git.py diff my-prompt abc123 def456
# Output shows unified diff:
--- my-prompt (abc123)
+++ my-prompt (def456)
@@ -1,2 +1,3 @@
You are a helpful assistant.
+Please provide examples.
# Rollback to a previous version
python3 prompt_git.py rollback my-prompt abc123
# This makes abc123 the current version
# The newer version (def456) is not deleted, just not current
# Tag a version
python3 prompt_git.py tag my-prompt abc123 best
# Tag meanings are up to you:
# - best: Best-performing version
# - testing: Under testing
# - production: Currently in production
# - deprecated: Don't use this
# - experimental: Risky/untested
# Search content by keyword
python3 prompt_search.py search "helpful assistant"
# Search by tag
python3 prompt_search.py tag best
# Search by date range
python3 prompt_search.py date --start 2026-02-01 --end 2026-02-21
# Regex search
python3 prompt_search.py regex "assistant|helper"
# Find recent prompts
python3 prompt_search.py recent --limit 10
# Find similar prompts
python3 prompt_search.py similar my-prompt --threshold 0.6
# Repository stats
python3 prompt_search.py stats
# Export a prompt (current version only)
python3 prompt_export.py export my-prompt output.json
# Export with full history
python3 prompt_export.py export my-prompt output.json --history
# Export as markdown
python3 prompt_export.py export my-prompt output.md --markdown
# Export multiple prompts
python3 prompt_export.py export-multi bundle.json --names prompt1 prompt2 prompt3 --history
# Import a prompt
python3 prompt_export.py import shared-prompt.json
# Import and overwrite existing
python3 prompt_export.py import shared-prompt.json --overwrite
Save every version as you refine your prompt. See what changed. Rollback if something breaks. Never lose a good version.
Save version A, save version B, tag with results. Compare diffs to see exactly what changed between the winner and loser.
Export your best prompts. Share the JSON file. Team imports it. Everyone has the same version, with full history if you want.
Organize all your system prompts by category. Tag the ones that work best. Search across all of them when you need inspiration.
See when a prompt was changed, what changed, and what note was left. Perfect for compliance or debugging "when did this break?"
Save reusable templates (e.g., "email writer", "code reviewer"). Pull them when needed. Never rewrite from scratch.
~/.promptgit/
index.json # Prompt metadata (names, categories, tags, current versions)
prompts/
my-prompt/
versions.json # Version history for this prompt
abc123.txt # Content for version abc123
def456.txt # Content for version def456
another-prompt/
versions.json
xyz789.txt
All human-readable, grep-friendly JSON and text files. No binary blobs.
See config_example.json for reference constants and example values
# Change storage location
STORAGE_DIR = '/path/to/your/prompts'
# Define your own categories
DEFAULT_CATEGORIES = ['system', 'task', 'template', 'snippet', 'general']
# Suggested tags
SUGGESTED_TAGS = ['best', 'testing', 'production', 'deprecated']
# Similarity threshold for "find similar" search
SIMILARITY_THRESHOLD = 0.5
See config_example.json for all options.
# Initial version
echo "You are a helpful assistant." | \
python3 prompt_git.py save assistant --category system --note "v1"
# After testing, add more detail
echo "You are a helpful assistant. Provide concise answers." | \
python3 prompt_git.py save assistant --note "v2: added conciseness"
# Hmm, too concise. Rollback
python3 prompt_git.py rollback assistant <v1-version-id>
# Try a different approach
echo "You are a helpful assistant. Provide detailed, thoughtful answers." | \
python3 prompt_git.py save assistant --note "v3: detailed instead" --tag testing
# This one works! Tag it
python3 prompt_git.py tag assistant <v3-version-id> best
python3 prompt_git.py tag assistant <v3-version-id> production
# Export your best system prompt
python3 prompt_export.py export my-system-prompt team-prompt.json --history
# Teammate imports it
python3 prompt_export.py import team-prompt.json
# Now they have the full history and can see how it evolved
python3 prompt_git.py versions my-system-prompt
# Prompt stopped working. When?
python3 prompt_git.py versions my-prompt
# Output shows versions with timestamps
# Pick two versions: one that worked, one that didn't
python3 prompt_git.py diff my-prompt <good-version> <broken-version>
# Diff shows exactly what changed
# Fix it and save a new version
| File | Purpose |
|---|---|
prompt_git.py | Main version control (save, get, diff, rollback, tag) |
prompt_search.py | Search and browse (keyword, tag, date, regex, similar) |
prompt_export.py | Export/import (JSON, markdown, bundles) |
config_example.json | Configuration template |
README.md | This file |
LIMITATIONS.md | What it doesn't do |
LICENSE | MIT License |
Use PromptGit in your own scripts:
from prompt_git import PromptRepository
# Initialize repo
repo = PromptRepository(storage_dir='~/.promptgit')
# Save a prompt
version_id = repo.save(
'my-prompt',
'You are a helpful assistant.',
note='Initial version',
category='system',
tags=['testing']
)
# Get current version
version = repo.get_version('my-prompt')
print(version.content)
# List all prompts
prompts = repo.list_prompts(category='system')
# Diff two versions
diff = repo.diff('my-prompt', version_a_id, version_b_id)
print(diff)
Q: Does it sync across devices?
A: No. It's local-only. But you can export/import to share manually, or put ~/.promptgit in a synced folder (Dropbox, Git, etc.).
Q: Can I use it with Git?
A: Yes! The storage directory is just JSON and text files. You can version the whole thing with Git if you want meta-version-control.
Q: What about collaborative editing?
A: Not built-in. Export/import is the collaboration model. For real-time collab, use a shared folder or Git.
Q: Does it work with images or multimodal prompts?
A: Text only. If your multimodal prompt has a text component, you can save that.
Q: How do I delete a prompt?
A: Currently, no delete command (by design � version control shouldn't delete easily). You can manually delete the folder in ~/.promptgit/prompts/.
MIT � See LICENSE file.
Shadow Rose
Built for AI users who are tired of losing good prompts to accidental overwrites and bad edits.
This software is provided "AS IS", without warranty of any kind, express or implied.
USE AT YOUR OWN RISK.
By downloading, installing, or using this software, you acknowledge that you have read this disclaimer and agree to use the software entirely at your own risk.
DATA DISCLAIMER: This software processes and stores data locally on your system. The author(s) are not responsible for data loss, corruption, or unauthorized access resulting from software bugs, system failures, or user error. Always maintain independent backups of important data. This software does not transmit data externally unless explicitly configured by the user.
| ?? Bug Reports | TheShadowyRose@proton.me |
| ? Ko-fi | ko-fi.com/theshadowrose |
| ?? Gumroad | shadowyrose.gumroad.com |
| @TheShadowyRose | |
| ?? GitHub | github.com/TheShadowRose |
| ?? PromptBase | promptbase.com/profile/shadowrose |
Built with OpenClaw � thank you for making this possible.
??? Need something custom? Custom OpenClaw agents & skills starting at $500. If you can describe it, I can build it. ? Hire me on Fiverr