Skip to main content

Git-native behavioral diff and shadow deployment for LLM agents.

Project description

shadow

Catch AI-agent regressions before they hit production.

Shadow is a PR-native diff tool for LLM agents, it records your agent's calls, replays them under a new config, and tells you what changed across nine behavioural dimensions.

Install

pip install shadow

# With Anthropic support:
pip install 'shadow[anthropic]'

# With OpenAI support:
pip install 'shadow[openai]'

# With both + embeddings:
pip install 'shadow[anthropic,openai,embeddings]'

Requires Python 3.11 or newer.

Quickstart

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 automatically patches the Anthropic and OpenAI SDKs to capture every request/response. Secrets are redacted by default.

Then in CI:

shadow replay new-config.yaml --baseline trace.agentlog
shadow diff trace.agentlog candidate.agentlog
shadow bisect old-config.yaml new-config.yaml --traces trace.agentlog

Full docs

The canonical README, examples, the .agentlog spec, and the project roadmap live at https://github.com/manav8498/Shadow.

License

Dual-licensed under MIT OR Apache-2.0. See LICENSE-MIT and LICENSE-APACHE in this distribution, or the project repository.

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-2.9.0.tar.gz (443.0 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-2.9.0-cp311-abi3-win_amd64.whl (864.6 kB view details)

Uploaded CPython 3.11+Windows x86-64

shadow_diff-2.9.0-cp311-abi3-manylinux_2_34_x86_64.whl (994.9 kB view details)

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

shadow_diff-2.9.0-cp311-abi3-macosx_11_0_arm64.whl (927.6 kB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

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

File metadata

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

File hashes

Hashes for shadow_diff-2.9.0.tar.gz
Algorithm Hash digest
SHA256 cd175f05a4b5a94c82c7ee3d311f80f0daf6bc59f593a9104fbf5025ef2f281a
MD5 d18ba123af6857d74d92158e7aa5c09e
BLAKE2b-256 9270fad7a4b92a35f9b7f97d789e3bfbd98263c3f06098294cccfae2d17415fb

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: shadow_diff-2.9.0-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 864.6 kB
  • 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-2.9.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 1b25e4ed0dcc9027b1950b103c4e053637b7d84c86ada980e8cd3a6e2e3e4a7d
MD5 566d264c9ddad6b63b30f7005904917b
BLAKE2b-256 be9e53bd7c0cd792758c107958e7588f898f22459848f1634b9a38f5f4ae89dc

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for shadow_diff-2.9.0-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 dff89d748e5b54b757b690514c51e2a45620ce3d215729f30e455349bb53989e
MD5 0d061606fadd685a6758c27e684ecb66
BLAKE2b-256 bbd31c52a2c24c5e749bd434fad2c8fd48014531da96e5cb7ae5a597ec40c63f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for shadow_diff-2.9.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 b1e520e058b60077163ab485b757ca3842faf672d366aba0f06be6af9c638bc4
MD5 50ac6cf0eaaff6054869e91e227206b8
BLAKE2b-256 f9bd044df927b1399369b48b1e95968937275b88e90cd868ab0bf2a6a01d2484

See more details on using hashes here.

Provenance

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