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-3.0.3.tar.gz (497.8 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.0.3-cp311-abi3-win_amd64.whl (926.3 kB view details)

Uploaded CPython 3.11+Windows x86-64

shadow_diff-3.0.3-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.0.3-cp311-abi3-macosx_11_0_arm64.whl (988.5 kB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: shadow_diff-3.0.3.tar.gz
  • Upload date:
  • Size: 497.8 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.0.3.tar.gz
Algorithm Hash digest
SHA256 80b727ab1c5aa328f5e0c66dbc4bda429f7a42ab06c88775314b03069c1b3366
MD5 544ec942e8d61c98537627b6b9909d5d
BLAKE2b-256 2fa58ca007e47acf9caae0da18fa4c5d4beeef0714218c4b659df944c54af0ef

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: shadow_diff-3.0.3-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 926.3 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-3.0.3-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 582c6ee62af95afb91f075f1770c8e92abdc7d8bf328d78bc161dbd427db2fb6
MD5 6e0f121b3d755a7b9cb82245ad112b80
BLAKE2b-256 1cc8949d001747002a9f482056d3540205b97e36ecf3e9d3bfe76ec3d8d10877

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for shadow_diff-3.0.3-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 6205b8ce2cc93fd7396e003ddbb0f60676aefb0f437ecc6487f841786ddbcb20
MD5 7f96a149dcbd9e600c04b1b3301dea6e
BLAKE2b-256 ec5d734abdfbb7cffbbb0ec04f80e4436b696935aa418c9bea4095f066569477

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for shadow_diff-3.0.3-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 e01bcc9bfd69930a6c6805481d77036baba1930fcbf4c0d2251fd465d81e7d65
MD5 fb928421b661ce0b085efb3ad50322a5
BLAKE2b-256 ac78e24b32013a7683654ca7631fec0f83dd08197a3862ee311531c22e366a92

See more details on using hashes here.

Provenance

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