Skip to main content

Behavior contracts for AI agents — tested in your PR, enforced at runtime.

Project description

shadow-diff

Find the exact change that broke your AI agent.

Shadow is a CI-native regression-forensics tool for LLM agents. One command on the PR — shadow diagnose-pr — answers:

  1. Did agent behavior change?
  2. How many traces are affected?
  3. Which exact prompt / model / tool / config change caused it?
  4. With what confidence (ATE + bootstrap CI + E-value when run with --backend live)?
  5. What fix should verify-fix confirm before merge?

The PyPI distribution is shadow-diff. The Python import path is shadow. The CLI is shadow.

Install

pip install shadow-diff

Requires Python 3.11+. Pre-built wheels ship for Linux x86_64, macOS arm64, and Windows x86_64; other platforms build from source (Rust required).

Optional extras:

pip install 'shadow-diff[anthropic]'   # if your agent uses Claude
pip install 'shadow-diff[openai]'      # if your agent uses GPT
pip install 'shadow-diff[embeddings]'  # paraphrase-robust semantic diff
pip install 'shadow-diff[all]'         # everything

60-second tour

shadow demo                  # nine-axis diff on bundled fixtures, no API key
shadow quickstart            # writable copy of a runnable scenario

Then run diff against the writable scenario:

cd shadow-quickstart
shadow diff fixtures/baseline.agentlog fixtures/candidate.agentlog

For the full diagnose-pr flow against your own agent, see docs/features/causal-pr-diagnosis.md and the runnable refund-causal-diagnosis demo.

Record your own agent

from shadow.sdk import Session

with Session(output_path="trace.agentlog"):
    # Your existing Anthropic / OpenAI code, unchanged.
    client.messages.create(model="claude-sonnet-4-6", messages=[...])

Shadow auto-instruments the Anthropic and OpenAI SDKs and writes content-addressed .agentlog files. Secrets are redacted by default. Or skip the code change entirely:

shadow record -o trace.agentlog -- python your_agent.py

Daily workflow — Shadow as pytest for agent behavior

shadow inspect trace.agentlog                  # debug a single trace
shadow scan baseline_traces/                   # block secret leaks
shadow baseline create baseline_traces/        # pin the gold standard
shadow gate-pr ...                             # gate every PR

Full docs

The canonical README, the .agentlog spec, runnable examples, and the comparison against adjacent agent-eval and runtime-governance tools all live at https://github.com/manav8498/Shadow.

License

Apache-2.0. See LICENSE-APACHE in this distribution. The .agentlog spec is independently published under Apache-2.0.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

shadow_diff-3.1.1.tar.gz (566.1 kB view details)

Uploaded Source

Built Distributions

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

shadow_diff-3.1.1-cp311-abi3-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.11+Windows x86-64

shadow_diff-3.1.1-cp311-abi3-manylinux_2_34_x86_64.whl (1.1 MB view details)

Uploaded CPython 3.11+manylinux: glibc 2.34+ x86-64

shadow_diff-3.1.1-cp311-abi3-macosx_11_0_arm64.whl (1.1 MB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

Details for the file shadow_diff-3.1.1.tar.gz.

File metadata

  • Download URL: shadow_diff-3.1.1.tar.gz
  • Upload date:
  • Size: 566.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for shadow_diff-3.1.1.tar.gz
Algorithm Hash digest
SHA256 a2abbdf36e0fceeda84203fae0da2811a0d5f1d9eb52ed0bd365acf9703dbcf8
MD5 22535a7d48e63e16ce88dd04fa89f8ed
BLAKE2b-256 77a0579a46f75a65c68c040407b8f38ed484c0182588c2f4ef84db43366cc8b1

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.1.1.tar.gz:

Publisher: release.yml on manav8498/Shadow

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

File details

Details for the file shadow_diff-3.1.1-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: shadow_diff-3.1.1-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 1.0 MB
  • Tags: CPython 3.11+, Windows x86-64
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.12

File hashes

Hashes for shadow_diff-3.1.1-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 4fc6d711da08bb7934840b37739575c6e267dd59e0fa4a87eddbb86d55939612
MD5 496b92d2277a9c74c1b305331c8866ca
BLAKE2b-256 2df0d7643d403e53df84ca25c597d708436fe9e0aa4192b24e3bad69939b5e6d

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.1.1-cp311-abi3-win_amd64.whl:

Publisher: release.yml on manav8498/Shadow

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

File details

Details for the file shadow_diff-3.1.1-cp311-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for shadow_diff-3.1.1-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 d5a2a0816fa2d9a20ce6f0a87bdfcc524071e36421586c42256483a8a04ce233
MD5 6c04090a5e0893869d8a9e6eb9477272
BLAKE2b-256 6f7847cef1248acd4ac170ab5019ca914c33ee6960f503b1ca8a20f256b54831

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.1.1-cp311-abi3-manylinux_2_34_x86_64.whl:

Publisher: release.yml on manav8498/Shadow

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

File details

Details for the file shadow_diff-3.1.1-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shadow_diff-3.1.1-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 74233afc5eb0b6a92e23ed1a6cf3c3e70e307b34813f1ae7cccd68207e191a22
MD5 c4337adafd891781e678b2859af46c0c
BLAKE2b-256 bde10d768b357bebaf6815e6f3463ba69a87977c18057242f299ac4b411a3c9c

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.1.1-cp311-abi3-macosx_11_0_arm64.whl:

Publisher: release.yml on manav8498/Shadow

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

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page