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.5.0.tar.gz (384.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.5.0-cp311-abi3-win_amd64.whl (792.1 kB view details)

Uploaded CPython 3.11+Windows x86-64

shadow_diff-2.5.0-cp311-abi3-manylinux_2_34_x86_64.whl (923.6 kB view details)

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

shadow_diff-2.5.0-cp311-abi3-macosx_11_0_arm64.whl (857.3 kB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: shadow_diff-2.5.0.tar.gz
  • Upload date:
  • Size: 384.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.5.0.tar.gz
Algorithm Hash digest
SHA256 d71ca14f0cc6b9e9354edaa9bb5d818fcb6831ac9746eb3185bb0576b86b91e2
MD5 ae49af5e93e885dc666e816b326002ca
BLAKE2b-256 9f4cc99f4b19d8fa31bc470c16d556b4db24f5b70093aa271c2e062cc1e61cfb

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: shadow_diff-2.5.0-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 792.1 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.5.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 43546a54e5837102b8d26755efbbbed70c7cf23a15a51fa6c38db66aedcd2965
MD5 f204fcd411972f6f15d30d43e812b981
BLAKE2b-256 2c1360528dd9f8c237b3f0e1de306f41eeb70e8a158751b83c3f5270585dab7c

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for shadow_diff-2.5.0-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 904868632d81a10aac59b5d745c6a09300b6484fbb48eef0c0dccbbb17335a64
MD5 44e2bb5980fd1de8fce4afb1aa58fe43
BLAKE2b-256 7308c1ce9d56d1edfcf5293e4e74523286543b9643ad856372a16599fd24483f

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for shadow_diff-2.5.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 6195c5085d07075ee3ec35adfe7117f7e19352791be32f34a94fd1f1c3293081
MD5 6636c7382555d15a712852373ba839cf
BLAKE2b-256 8ac809c66253169075c452bcdfae3672cb7cec3820d99e6889033f592c4cbc5f

See more details on using hashes here.

Provenance

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