Skip to main content

culprit

git bisect thinking for prompts: compare what changed in behavior, not only in text.

Not to be confused with the unrelated culprit package on PyPI or the Culprit Rust CLI — see How this compares.

PyPI version CI codecov License: MIT

Real culprit bisect run finding a seeded regression

Features

  • Semantic diff: an LLM summary backed by per-case eval evidence.
  • Behavioral bisect: binary-search prompt history to locate the first regression.
  • Semantic merge (experimental): conservatively combine compatible branch edits and verify the result before staging it.
  • 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 check warnings for common secret and PII patterns.

How this compares

Among these similarly named tools, culprit-ai is differentiated by verifying prompt diff, bisect, and automated merge decisions against real eval runs rather than relying on text similarity or an LLM's judgment alone.

Tool Primary focus Verification model
culprit on PyPI Local, read-only root-cause and change-risk analysis for PRs, branches, fixes, and traces Deterministic static analysis, with optional Git bisect confirmation when a repro command is available
Culprit Rust CLI A local-first, guided Git bisect workflow with optional AI explanation Runs the supplied test command at candidate commits and restores the checkout afterward
culprit-ai (this project) Prompt-behavior diff, behavioral bisect, and experimental semantic merge in one Git-native toolkit Runs the configured eval set; merge additionally rejects a candidate that loses behavior shared by both parents

Other prompt tools cover adjacent workflows and can complement culprit-ai:

Tool Best fit How this project's focus differs
Promptfoo Broad prompt/model evaluation and red teaming culprit-ai centers comparisons on Git revisions and commit history.
Confident AI / DeepEval Evaluation frameworks and hosted workflows culprit-ai is a local Git wrapper with no required hosted backend.
promptvc Prompt versioning workflows culprit-ai leaves version storage to Git and adds eval-backed behavioral operations.

Installation

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

Contributing

Semantic diff, behavioral bisect, and experimental semantic merge 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

culprit_ai-0.1.5.tar.gz (235.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

culprit_ai-0.1.5-py3-none-any.whl (28.3 kB view details)

Uploaded Python 3

File details

Details for the file culprit_ai-0.1.5.tar.gz.

File metadata

  • Download URL: culprit_ai-0.1.5.tar.gz
  • Upload date:
  • Size: 235.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for culprit_ai-0.1.5.tar.gz
Algorithm Hash digest
SHA256 1e7d695f48a0527befae92d8382b27dc24e00f40d5a81f7cbb4b4f4151b1b25d
MD5 d73d191f85e43a9d01d6bd7480942b3a
BLAKE2b-256 6bab0408e5cecfdffec43b4ac3690f63516e41f0350453237ea71840bb39f2ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for culprit_ai-0.1.5.tar.gz:

Publisher: release.yml on abi6374/culprit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file culprit_ai-0.1.5-py3-none-any.whl.

File metadata

  • Download URL: culprit_ai-0.1.5-py3-none-any.whl
  • Upload date:
  • Size: 28.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for culprit_ai-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 0dccc4de1c318db809cf14eccc2e6bc4344f0bee244cb43aff7db007378d2eba
MD5 8ffccc273bdc9bef50a4dec73d795c0a
BLAKE2b-256 040da2c92b21b28f02d506f160d36273c656e3dcc365aebbef5e73ce538cc5f8

See more details on using hashes here.

Provenance

The following attestation bundles were made for culprit_ai-0.1.5-py3-none-any.whl:

Publisher: release.yml on abi6374/culprit

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

This release

0.1.5 This release

2 files

0.1.4

2 files

0.1.3

2 files

0.1.2

2 files

0.1.1

2 files

0.1.0

2 files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page