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.6.0.tar.gz (408.2 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.6.0-cp311-abi3-win_amd64.whl (820.1 kB view details)

Uploaded CPython 3.11+Windows x86-64

shadow_diff-2.6.0-cp311-abi3-manylinux_2_34_x86_64.whl (951.5 kB view details)

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

shadow_diff-2.6.0-cp311-abi3-macosx_11_0_arm64.whl (885.0 kB view details)

Uploaded CPython 3.11+macOS 11.0+ ARM64

File details

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

File metadata

  • Download URL: shadow_diff-2.6.0.tar.gz
  • Upload date:
  • Size: 408.2 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.6.0.tar.gz
Algorithm Hash digest
SHA256 438a2f3482ed810ecc350e358530fe5ec2df5d5d5fd4b44d07f0fb883a27ad7f
MD5 ef53538f3450d65f18951d345d6bfff8
BLAKE2b-256 d2a9c47e5b2ce1d61e3b8ea7047409dea4df2f14f46ef5cf9e9bdc3e5ab06c2f

See more details on using hashes here.

Provenance

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

File metadata

  • Download URL: shadow_diff-2.6.0-cp311-abi3-win_amd64.whl
  • Upload date:
  • Size: 820.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.6.0-cp311-abi3-win_amd64.whl
Algorithm Hash digest
SHA256 337ede9c33120ac74505eeb3015d2d3f950d21f09ba3a87b68d75827002e7af2
MD5 5f17eacdd7cd8d15dfab22d18e1af0ac
BLAKE2b-256 49cc703b5d90b6939d91a022b4af25475695782e065c7e7850211584b7ee1bb1

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for shadow_diff-2.6.0-cp311-abi3-manylinux_2_34_x86_64.whl
Algorithm Hash digest
SHA256 c722fb304f43e7ecabddac9092752bd81b95a21ac56a80cdbe144ffe317cd1c5
MD5 c4e28a086e5c26b3223065dc07968220
BLAKE2b-256 7ce375ccbbe0f4ef01baf8e5e6e2916acc91f58143fdbded19438c76b5e2d92e

See more details on using hashes here.

Provenance

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

File metadata

File hashes

Hashes for shadow_diff-2.6.0-cp311-abi3-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 8d17301468203a7600d1e4f652fa6fe6b2e07ea75d39638e2ac13e4f8f1d3236
MD5 8745b548ff8f4da9d61c52e523ed9182
BLAKE2b-256 ef6b13d7b1844018328c72ccd81422f19d247a1955cab85533d97231852c24f9

See more details on using hashes here.

Provenance

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