culprit
git bisectthinking for prompts: compare what changed in behavior, not only in text.
pip install culprit-ai
Quickstart
cp examples/quickstart/culprit.yaml .
cp -r examples/quickstart/evals .
export OPENAI_API_KEY="..."
culprit diff HEAD~1 HEAD --eval-set evals/summarizer.yaml
Features
-
Semantic diff: an LLM summary backed by per-case eval evidence.
-
Behavioral bisect: binary-search prompt history to locate the first regression.
-
Git-native architecture: prompt history stays in ordinary Git.
-
Provider adapters for OpenAI, Anthropic, and arbitrary OpenAI-compatible endpoints.
-
Content-addressed evaluation cache to avoid repeat API spend.
-
culprit checkwarnings for common secret and PII patterns. -
Semantic merge remains a documented roadmap phase, not an implemented command.
Why not just use X?
| Tool | Best fit | How culprit differs |
|---|---|---|
| Promptfoo | Broad prompt/model evaluation and red teaming | culprit centers comparisons on Git revisions and commit history. |
| Confident AI / DeepEval | Evaluation frameworks and hosted workflows | culprit is a local Git wrapper with zero required backend. |
| promptvc | Prompt versioning workflows | culprit leaves version storage entirely to Git and adds eval-backed diffs. |
These tools can complement culprit; the comparison is about workflow focus, not superiority.
Contributing
Phase 1 improvements are open for contribution. See CONTRIBUTING.md, including adapter guidance and suggested first issues.
Released under the MIT License.
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 culprit_ai-0.1.2.tar.gz.
File metadata
- Download URL: culprit_ai-0.1.2.tar.gz
- Upload date:
- Size: 224.8 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
b33cc3fec7535fc45097ba1cc8ce42fcef90cac60b8870a3319f96191a82e58a
|
|
| MD5 |
63cdcc5f038edabe74b3691a0238c86b
|
|
| BLAKE2b-256 |
a12360d22da355bc1d39ffa72db64cd8aff7df7cbc19219494019e4449250743
|
Provenance
The following attestation bundles were made for culprit_ai-0.1.2.tar.gz:
Publisher:
release.yml on abi6374/culprit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
culprit_ai-0.1.2.tar.gz -
Subject digest:
b33cc3fec7535fc45097ba1cc8ce42fcef90cac60b8870a3319f96191a82e58a - Sigstore transparency entry: 2721524375
- Sigstore integration time:
-
Permalink:
abi6374/culprit@f521e276df204aad64394de8e53dd2e63039a000 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/abi6374
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f521e276df204aad64394de8e53dd2e63039a000 -
Trigger Event:
push
-
Statement type:
File details
Details for the file culprit_ai-0.1.2-py3-none-any.whl.
File metadata
- Download URL: culprit_ai-0.1.2-py3-none-any.whl
- Upload date:
- Size: 23.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/7.0.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2557868a737491ca141a057898c0628f635d9b83472487eb5bf9b3c21c37fdb1
|
|
| MD5 |
2441634fa2c944c39f192ff0b5ff4311
|
|
| BLAKE2b-256 |
425e47a41058a8f0f98db573c113638987873e5eccfae7c3c0f43738d477b698
|
Provenance
The following attestation bundles were made for culprit_ai-0.1.2-py3-none-any.whl:
Publisher:
release.yml on abi6374/culprit
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
culprit_ai-0.1.2-py3-none-any.whl -
Subject digest:
2557868a737491ca141a057898c0628f635d9b83472487eb5bf9b3c21c37fdb1 - Sigstore transparency entry: 2721524465
- Sigstore integration time:
-
Permalink:
abi6374/culprit@f521e276df204aad64394de8e53dd2e63039a000 -
Branch / Tag:
refs/tags/v0.1.2 - Owner: https://github.com/abi6374
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f521e276df204aad64394de8e53dd2e63039a000 -
Trigger Event:
push
-
Statement type: