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.2.1.tar.gz (575.4 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.2.1-cp311-abi3-win_amd64.whl (1.0 MB view details)

Uploaded CPython 3.11+Windows x86-64

shadow_diff-3.2.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.2.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.2.1.tar.gz.

File metadata

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

File hashes

Hashes for shadow_diff-3.2.1.tar.gz
Algorithm Hash digest
SHA256 2605a409b65fadbc38f3e749e11fe8c9b4288b876b57a7dc7c09c8e92e4f4118
MD5 4486bba0120900cd2182b106cc1b52e5
BLAKE2b-256 b061fe02a6aa9b0beea3ef792840c2a6f87e53df3ee89526d4b56139619f3dd7

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.2.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.2.1-cp311-abi3-win_amd64.whl.

File metadata

  • Download URL: shadow_diff-3.2.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.13

File hashes

Hashes for shadow_diff-3.2.1-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 0f877969538a92c78e6c57dd0d96fac38e37f076592dcbe98a93ff69babae414
MD5 3fb0df20a4ebfb007b0859058be728b6
BLAKE2b-256 30535c8689fea698c8aaa6e08572004dfc6d57fb1bbbeb368b8bff345006ecc0

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.2.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.2.1-cp311-abi3-manylinux_2_34_x86_64.whl.

File metadata

File hashes

Hashes for shadow_diff-3.2.1-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 5588fc664046b1802f324104f7b4a1d87f254774d2e3090bc488126db65f29e8
MD5 e94ddc7a1c90da7321590b0a61231a75
BLAKE2b-256 32c771c15b094edd69bfc090d6c178e830ccc52088f39a7b17a7aaa4d548ad7c

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.2.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.2.1-cp311-abi3-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for shadow_diff-3.2.1-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 7231994a95ae436955e85b78ca9aec555f0a0c32d41300df688ccc13f623d4bf
MD5 20138808fb87dd6fb37b362e2b9b3dfd
BLAKE2b-256 8c646b21e08e9d6512ecc3cb1c1b077e6c5eff1be574b5452bc04e732bf21f03

See more details on using hashes here.

Provenance

The following attestation bundles were made for shadow_diff-3.2.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