PIT - Prompt Information Tracker: Semantic version control for LLM prompts
Project description
๐ณ๏ธ PIT (Prompt Information Tracker)
Git for Prompts โ Version control that actually understands your LLM prompts
๐ What is PIT?
PIT is a semantic version control system designed specifically for managing LLM prompts. Unlike traditional Git workflows, PIT understands the meaning of your promptsโtracking not just what changed, but why it matters for your AI's behavior.
Stop treating prompts like plain text files. Start versioning them like the critical assets they are.
โจ Features
๐ Core Version Control
| Feature | Description |
|---|---|
| Semantic Versioning | Track prompt changes with meaningful version numbers |
| Automatic Variable Detection | Extracts Jinja2 template variables ({{variable}}) on commit |
| Rich Diff Visualization | Compare versions with syntax highlighting |
| Tagging System | Mark important versions (production, stable, experimental) |
| Instant Checkout | Switch between prompt versions instantly |
| Query Language | Search: success_rate >= 0.9, content contains 'be concise' |
๐ค Collaboration & Sharing
| Feature | Description |
|---|---|
| Shareable Patches | Export/import prompt changes as .promptpatch files |
| Prompt Bundles | Package and share prompts with dependencies |
| Time-Travel Replay | Test same input across all versions |
| Git-Style Hooks | Validation and automation (pre-commit, post-checkout) |
| External Dependencies | Depend on prompts from GitHub, local paths, or URLs |
๐ Advanced Analytics
| Feature | Description |
|---|---|
| A/B Testing | Statistically significant comparisons with scipy-powered t-tests |
| Performance Tracking | Monitor tokens, latency, success rates, costs per version |
| Regression Testing | Automated test suites to catch prompt degradations |
| Analytics Dashboard | Rich terminal charts and HTML reports |
| Binary Search (Bisect) | Find which version broke behavior |
| Worktrees | Multiple prompt contexts without switching |
| Stash | Save WIP with full context |
๐ Security & Quality
| Feature | Description |
|---|---|
| Security Scanner | OWASP LLM Top 10 compliance checking |
| Prompt Injection Detection | Catch malicious input patterns |
| PII/API Key Detection | Prevent data leakage |
| Auto-Optimizer | AI-powered prompt improvement suggestions |
| Semantic Merge | Categorize changes and detect conflicts |
๐ธ Screenshots
๐ฏ Interactive Menu
๐ Version Control
๐ Rich Diff Visualization
๐ Analytics Dashboard
๐ Quick Start
Installation
pip install prompt-pit
Or with optional LLM provider support:
# With Anthropic Claude support
pip install prompt-pit[anthropic]
# With OpenAI support
pip install prompt-pit[openai]
# With everything
pip install prompt-pit[all]
Initialize a Project
# Create a new prompt repository
mkdir my-prompts
cd my-prompts
pit init
Add Your First Prompt
# Add a prompt file
pit add system-prompt.md --name "customer-support" \
--description "AI assistant for customer support"
Version Control
# Commit a new version
pit commit customer-support --message "Added empathy guidelines"
# View version history
pit log customer-support
# Compare versions
pit diff customer-support --v1 1 --v2 2
# Checkout a specific version
pit checkout customer-support --version 1
# Tag a version
pit tag customer-support --version 2 --tag production
๐ Command Reference
Core Commands
pit init # Initialize a new PIT project
pit add <file> # Add a prompt to track
pit list # List all tracked prompts
pit commit <prompt> # Save a new version
pit log <prompt> # View version history
pit diff <prompt> # Compare versions
pit checkout <prompt> # Switch to a version
pit tag <prompt> # Manage tags
Advanced Features
# Patches
pit patch create <prompt> v1 v2 --output fix.patch
pit patch apply fix.patch --to <prompt>
# Hooks
pit hooks install pre-commit
pit hooks run pre-commit --prompt <prompt>
# Bundles
pit bundle create my-bundle --prompts "p1,p2" --with-history
pit bundle install my-bundle.bundle
# Replay
pit replay run <prompt> --input "Hello" --versions 1-5
pit replay compare <prompt> --input "Hello" --versions 1,3,5
# Dependencies
pit deps add shared github org/repo/prompts --version v1.0
pit deps install
# Worktrees
pit worktree add ./feature-wt <prompt>@v2
# Stash
pit stash save "WIP: improving tone"
pit stash pop 0
# Bisect
pit bisect start --prompt <prompt> --failing-input "bad query"
pit bisect good v1
pit bisect bad v5
# Testing
pit test create-suite --name "support-tests"
pit test add-case support-tests --name "greeting"
pit test run <prompt> --suite support-tests
# A/B Testing
pit ab-test <prompt> --variant-a 2 --variant-b 3 --sample-size 100
# Security
pit scan <prompt>
pit validate <prompt> --fail-on high
# Optimization
pit optimize analyze <prompt>
pit optimize improve <prompt> --strategy detailed
# Analytics
pit stats show <prompt>
pit stats report <prompt> --output report.html
๐ Project Structure
my-prompts/
โโโ .pit/ # PIT database and config
โ โโโ config.yaml # Project configuration
โ โโโ pit.db # SQLite database
โโโ prompts/ # Your prompt files
โ โโโ customer-support.md
โโโ .pit.yaml # Optional: global config
โ๏ธ Configuration
Create .pit.yaml in your project root:
# LLM Provider Configuration
llm:
provider: anthropic # anthropic, openai, ollama
api_key: ${ANTHROPIC_API_KEY}
model: claude-3-sonnet-20240229
# Default settings
defaults:
auto_commit: false
require_tests: true
# Security policies
security:
max_severity: medium # fail on medium+ severity issues
# Performance thresholds
performance:
max_latency_ms: 2000
min_success_rate: 0.95
๐ PIT vs Git
| Feature | Git | PIT |
|---|---|---|
| Line-by-line diff | โ | โ |
| Semantic understanding | โ | โ |
| Variable tracking | โ | โ |
| Performance metrics | โ | โ |
| A/B testing | โ | โ |
| Security scanning | โ | โ |
| Prompt optimization | โ | โ |
| Shareable patches | โ | โ |
| Git-style hooks | โ | โ |
| Query language | โ | โ |
| Time-travel replay | โ | โ |
| Bundle packaging | โ | โ |
| External dependencies | โ | โ |
| LLM framework integration | โ | โ |
๐งช Testing
# Run all tests
pytest
# With coverage
pytest --cov=pit
# Run specific test file
pytest tests/test_core/test_security.py -v
๐ค Contributing
We welcome contributions! Please see our Contributing Guide for details.
๐ License
PIT is released under the MIT License. See LICENSE for details.
๐ Acknowledgments
- Built with Typer for CLI magic
- Powered by Rich for beautiful terminal output
- Inspired by the need for better prompt management in production LLM systems
๐ฌ Support
- ๐ง Issues: GitHub Issues
- ๐ฌ Discussions: GitHub Discussions
Made with โค๏ธ for the LLM community
Where prompts go to evolve ๐ฑ
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_pit-0.1.0.tar.gz.
File metadata
- Download URL: prompt_pit-0.1.0.tar.gz
- Upload date:
- Size: 235.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
13a84b0437871a9cb92f2213c80f02412e78cc229609a01be5abfd074e4cef99
|
|
| MD5 |
f378f5185b22e47563e5afe95596764c
|
|
| BLAKE2b-256 |
1e1dbb5131096571f894fd12f35854acd37898b1bcaa6147cc049364bf22b4e4
|
File details
Details for the file prompt_pit-0.1.0-py3-none-any.whl.
File metadata
- Download URL: prompt_pit-0.1.0-py3-none-any.whl
- Upload date:
- Size: 115.3 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.14.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
23fe91e78fac368f6053be3678930cd6827e0fe25b96f1588b79112e62356eec
|
|
| MD5 |
ad771bc6c2aea6f59559449de3a38751
|
|
| BLAKE2b-256 |
be10f3cc9db25c5581a9bd967f1d04aa38211628e70095f6df7d5dbd031b6f3e
|