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.7.0.tar.gz (415.5 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.7.0-cp311-abi3-win_amd64.whl (823.8 kB view details)

Uploaded CPython 3.11+Windows x86-64

shadow_diff-2.7.0-cp311-abi3-manylinux_2_34_x86_64.whl (955.2 kB view details)

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

shadow_diff-2.7.0-cp311-abi3-macosx_11_0_arm64.whl (888.8 kB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: shadow_diff-2.7.0.tar.gz
  • Upload date:
  • Size: 415.5 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.7.0.tar.gz
Algorithm Hash digest
SHA256 86a3ae2d7e862fb6c70f155f195136d21053104404c7e5c196f62618b223e2d6
MD5 b9d3d0bfc0cda5317cb6607dca39bd94
BLAKE2b-256 5f8829d37c01313231d6460b804c3be9ecb78ecee900537bdf168f7ce5cf1262

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: shadow_diff-2.7.0-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 823.8 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.7.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 b251c6bf96c450700fc2a0ce40c9292721b7e426686373465f370980dd485742
MD5 12decd74138e60d294ba7b10e2674010
BLAKE2b-256 83fc50a6b2b6874a8f2d4461c9728b5c738f9eedb2026dee72a2c6499b461731

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for shadow_diff-2.7.0-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 31fe553d3b4db2ff9301263f64f620b8aa17e4a082e281094fabf30719709fe0
MD5 3fd741f5ba3383418483682c19e153b1
BLAKE2b-256 6d2e6c40a34cd2e329c33f605802ad3e5fc708776761c4904f43713f14388eea

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for shadow_diff-2.7.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 5cb6086c887c097f797c5b4d18ebb7551b12079da07d88a374f97ca45cc1a484
MD5 4d3a3f28b6026fb7cf7e4784c2eb5e79
BLAKE2b-256 3aa62b4033d3a5eb5a087ebce26597b6a0e578e6187af306e8fcb14b87dcf00f

See more details on using hashes here.

Provenance

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