Skip to main content

Requests race in. The shad0w table answers most of them in microseconds; the hard ones still go to your LLM.

shad0w

Your app asks an LLM the same kinds of small questions all day.
shad0w learns its answers and serves them in microseconds, with a written guarantee on how often it disagrees.

PyPI npm CI Python 3.10–3.13 Apache-2.0

Website · Try it in your browser · Docs


Quick start

pip install "shad0wllm[compile]"

1. Already calling the OpenAI Decisions API, or a decision model such as Jev, Kev or Laya? Change one URL.

shad0w proxy --upstream https://api.openai.com/v1        # or any /v1/systemone server; dashboard at http://localhost:8010
client = OpenAI(base_url="http://localhost:8010/v1")     # the only change
client.decisions.create(model="gpt-6-luna", input=text, questions=[...])   # unchanged

Decision requests already name each question and list its answers, so nothing needs marking. Questions the table is certified on come back from it in the same JSON shape; the rest go upstream and are logged so the table keeps learning. Details: Decisions API & System One.

2. Asking a chat model to pick one option? One line of Python.

import shad0w

intent = shad0w.decision(
    "intent",                 # the decision's name: its log, table, dashboard label (optional; default "decision")
    options={"refund": "wants money back", "lost_card": "card lost or stolen", "balance": "asks about balance",
             "other": "anything else"},   # always give it an "other": off-topic messages land there, not in a real intent
    llm="openai/gpt-6-luna",   # or anthropic/…, gemini/…, groq/…, ollama/llama3.1, systemone/kev, any OpenAI-compatible server
)

intent("my card was stolen")    # day one: your LLM answers and shad0w writes the answer down
intent.train()                  # after ~1,000 answers: builds and certifies a small table, in about a minute or less
intent("my card was stolen")    # from then on: answered locally when certified
# Decision(answer='lost_card', source='table', confidence=0.99, certified=True, flag=None, latency_us=..., question='intent', ...)

Anything the table is unsure about still goes to your LLM and gets logged, so the table keeps learning. Have a function already? @shad0w.decide() on def route(text) -> Literal["billing", "tech"] does the same.

3. Chat completions with no code change. Run the same proxy and mark which calls are decisions:

client = OpenAI(base_url="http://localhost:8010/v1")      # the only change
client.chat.completions.create(model="gpt-6-luna", messages=msgs,
                               extra_headers={"X-Shad0w-Question": "intent"})   # or a forced tool with one enum parameter

Unmarked calls (chat, embeddings, streaming) pass straight through.

Is it for me?

Yes, if your app calls an LLM to pick one answer from a fixed list. For example:

You ask the LLM… shad0w answers it from a table
Which intent is this support message? refund, lost_card, balance, …
Which team gets this ticket? billing, tech, sales
Is this message spam / abusive / off-topic? yes / no
Which tool should the agent call next? search, calculator, none
What topic is this article? sports, business, tech, …

What changes when you add it:

Before After
Typical decision an LLM call: hundreds of ms microseconds for the share the table is certified on (Numbers)
Share answered without the LLM 0% most of it on intent and topic tasks once enough answers are logged (about 1,000 for a handful of options, 5,000 or more for dozens), and it grows with traffic (Numbers)
Agreement with your LLM — disagrees on at most α = 5% of the answers it serves, with 90% confidence, certified before it serves anything
Runs on someone's GPU your CPU, in-process; also in the browser and on edge workers
Your code ask_llm(text) intent(text)

Not a fit: open-ended generation, questions that need reasoning or world knowledge, and labels that depend on tone or sarcasm (on sentiment the table certifies almost nothing and passes everything to your LLM, which is the correct behaviour).

How it works

  1. Watch. Your LLM keeps answering. Each (text, answer) pair is written to a log.
  2. Train. The log becomes a hashed word/character table with 8-bit weights. There is no GPU, no tokenizer and no human labels, and it takes seconds to a minute on a laptop.
  3. Certify. On answers the table never trained on, a Learn-then-Test procedure picks a confidence threshold. Above it, the table disagrees with your LLM at most α of the time, with 90% confidence.
  4. Serve. Above the threshold the table answers in microseconds. Below it, your LLM answers and the answer is logged. 1% of decisions are spot-checked against the LLM, so you can see live agreement, not only the certificate, and retraining certifies on a uniform sample of real traffic.

watch, train, certify, serve

Tune it

Nothing needs configuring. When you want to, every setting can come from code, a SHAD0W_* environment variable or a shad0w.toml, in that order of precedence:

# shad0w.toml
alpha = 0.05             # the most the table may disagree with your LLM on what it serves
audit_rate = 0.02        # share of decisions spot-checked against your LLM
mode = "shadow"          # watch first: the table decides but your LLM's answer is returned; then "serve"
canary = 0.1             # when serving, let the table answer 10% of what it is certified on
never_serve = ["fraud"]  # labels that always go to your LLM

[questions.refund_check]
alpha = 0.01             # stricter for one question
shad0w config            # every effective value and where it came from
shad0w doctor            # checks the C core, training deps, keys, upstream and your bundle

min_confidence raises the bar on top of the certificate. force_threshold lowers it, and every answer it lets through is marked certified=False. Rollout guide: shadow → canary → serve. All settings: Configuration.

Change, scale, or no LLM at all

  • Your options will change. That is safe. Add an option and the table steps back, sending every decision to your LLM until it has relearned. Remove one and the table never answers with it. Rename one with rename={"lost_card": "card_lost"} and nothing needs retraining. Changing your options
  • Up to 1,024 options per question, still microseconds per decision. max_mb=1 caps the table's size; training keeps the most informative patterns and the certificate is computed on the capped table. Scale
  • No LLM? Train on human labels, rules or an existing classifier, and serve with fallback="needs_review" (or a function) for what the table is unsure about. Running without an LLM

Use it from anywhere

Install Three lines
Python pip install shad0wllm sh = shad0w.decision("intent", llm="openai/gpt-6-luna", options=[...]) → sh(text).answer
OpenAI Decisions API / System One (zero code) shad0w proxy --upstream <url> OpenAI(base_url="http://localhost:8010/v1"); nothing to mark
Any OpenAI chat client (zero code) shad0w proxy --upstream <url> OpenAI(base_url="http://localhost:8010/v1") plus the header X-Shad0w-Question
JavaScript / TypeScript (Node, browser, Workers, Deno, Bun) npm i shad0wllm const intent = await decision("intent", {options, llm: "openai/gpt-6-luna", bundle: "bundle/"}) → await intent.decide(text)
HTTP (any language) shad0w serve --bundle bundle/ POST /v1/decide {"state": "my card was stolen"}, or /v1/decisions / /v1/systemone
C / C++ / FFI copy shad0w.h + reflex.c s0_load("intent.s0") → s0_decide(m, text, len, probs, &r)
LangChain, LiteLLM, Vercel AI SDK — shad0w_runnable(sh, llm), shad0w.integrations.litellm.completion(sh, ...), shad0wMiddleware(sh)
Your own function — @shad0w.decide() on def route(text) -> Literal[...], or shad0w.Shadow("bundle/", teacher=my_classify, log="log.jsonl")

Providers built in: openai, anthropic, gemini, groq, together, openrouter, mistral, deepseek, fireworks, xai, ollama, vllm and lmstudio, plus openai-decisions and systemone for decision models. Keys come from the usual environment variables (OPENAI_API_KEY, …). Any other OpenAI-compatible server works with base_url=. Recipes for each are in the docs.

See what it is doing

shad0w try --bundle shad0w/intent/bundle "my card was stolen" "is it raining?"
#   ✓ table     lost_card  (confidence 1.000, needs 0.911)  14.1 µs
#   → your LLM  balance    (confidence 0.717, needs 0.911)  table not sure enough: asked your model
shad0w stats --log shad0w/intent/log.jsonl     # what has been logged, and whether it is ready to train
shad0w watch                                   # live counters from a running proxy or server
  • Dashboard. shad0w proxy and shad0w serve serve a live page at /. It shows the share answered by the table, LLM calls and time saved (and money, with --cost-per-call), table vs LLM latency, why the table deferred, and the live spot-check bound against α.
  • Prometheus at /metrics. JSON at /v1/stats.
  • Logs: SHAD0W_LOG=debug prints one line per decision.
  • Hooks: on_decision=fn for Langfuse, Datadog or your own analytics; trace="decisions.jsonl" records every decision; SHAD0W_OTEL=1 emits OpenTelemetry spans.

Numbers

Measured on public datasets with the certificate at α = 5% (full tables, sources and hardware: benchmarks):

  • 61–86% of the traffic answered without the LLM on 3 intent and topic tasks, teacher gpt-4.1-mini (OpenAI). Realised disagreement with the teacher on those answers: 3.0–6.0%; CLINC150 went above α because its test traffic has far more off-topic messages than the logged traffic (the drift guard flags this; see benchmarks, "Where shad0w loses"). End-to-end accuracy stayed within a point of the teacher alone.
  • 2.4 µs per decision in Python (C core inside), 1.0 µs in C, 10 µs in JavaScript, 0.53 ms end to end through the proxy at the openai SDK client. A hosted LLM call: 1416 ms.
  • The share grows with traffic: 0% → 60% as logged answers went from 250 to 10,000 (BANKING77).
  • With Kev-0.8B (local, MLX) as the teacher, mean latency fell from 382 ms to 115 ms (measured end to end) and accuracy moved +1.0 points.
  • Reproduce it on a laptop with a free teacher model: python examples/shadow_demo.py gives 63.3% answered locally on BANKING77, 3.3% realised disagreement (teacher: bge-small, 68% accurate).
  • Where it loses: sentiment (SST-2) certifies 0% and defers everything; legal clauses (LEDGAR) 13%.

Every number above has a source file, hardware, teacher and date in shad0w-studio/numbers.json (generated by the benchmark kit).

How it compares

method answered without the LLM @ α = 5% disagreement with the LLM p50 per decision cost / 1k decisions needs guarantee
shad0w table 61% 3.0% 4.0 µs $0.204 your LLM's logged answers certified ≤ α vs your LLM
semantic cache (bge-small, nearest logged answer) 0% — 7.5 ms $0.520 embedding model + logged answers same certifier applied
embedding kNN router (bge-small, k=10) 69% 2.9% 7.6 ms $0.161 embedding model + logged answers same certifier applied
small fine-tuned head (LR on bge-small) 75% 3.4% 7.2 ms $0.129 embedding model + logged answers same certifier applied
exact-match cache 0% — 1.2 µs $0.520 logged answers exact repeats only
keep calling the LLM 0% 0.0% — $0.520 API or GPU it is the reference
Kev-0.8B decision model (local) 100% (it replaces your LLM) 23% vs gpt-4.1-mini 271 ms $0 (your hardware) a GPU/MLX machine, ~1-3 GB calibrated probabilities, no bound
Julia-1 decision model (local) 100% (it replaces your LLM) 41% vs gpt-4.1-mini 11.9 ms $0 (your hardware) llama.cpp, a laptop calibrated probabilities, no bound
Laya 421M decision model (local) 100% (it replaces your LLM) 58% vs gpt-4.1-mini 91.6 ms $0 (your hardware) a GPU or fast CPU, 0.8 GB calibrated probabilities, no bound
hosted decision model (OpenAI Decisions API, gpt-6-luna) 100% (it replaces your LLM) not measured (no API key) ~150 ms claimed $0.030 per 1k API key none (probabilities only)
hosted decision model (TypeSafe Jev 1.13) 100% (it replaces your LLM) not measured (no credits) 70–500 ms claimed $0.0126 per 1k API key none (probabilities only)

Accuracy against the true labels on the same test set: Kev-0.8B 80.0%, gpt-4.1-mini 76.3%, shad0w's cascade 76.5%. A good open decision model makes a good teacher: with Kev-0.8B (local, MLX) as the teacher, shad0w answered 70% of the traffic itself and mean latency fell from 382 ms to 115 ms.

Works with decision models. Jev, Kev, Laya and the OpenAI Decisions API can be shad0w's teacher (llm="systemone/kev", llm="openai-decisions/gpt-6-luna") or sit behind its proxy. shad0w takes the repeat traffic it is certified on; the model keeps the rest.

Good to know

  • The guarantee is against your LLM, not the truth. If your LLM is wrong, the table is wrong the same way. For a bound against the truth, calibrate on ~300 human labels (shad0w calibrate).
  • It holds for traffic like the traffic it was certified on. Re-train when your traffic changes. The drift guard and live spot checks show you when that is.
  • Runtime installs only numpy; the C core is inside the wheel. Training ([compile]) adds scipy and scikit-learn. [torch] adds torch for faster training on large logs; without it, training uses scipy.
  • Nothing leaves your machine except the LLM calls you already make.

Learn more

Get started · Reference: every parameter · Tuning · The guarantee · Benchmarks · Blog: System Zero · Playground

Contributing

Try it on one of your decisions and share your numbers, failures included. That is the most useful contribution. For code, see CONTRIBUTING.md.

Cite
@software{chauhan2026shad0w,
  author = {Chauhan, Gaurav},
  title  = {shad0w: certified microsecond decisions compiled from the model you already run},
  year   = {2026},
  url    = {https://github.com/2796gaurav/shad0w}
}

Built by Gaurav Chauhan · Apache-2.0

Metadata

Release files for shad0wllm 0.3.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for shad0wllm 0.3.1
File Size Uploaded
shad0wllm-0.3.1.tar.gz 136.7 kB Details

Built distributions (wheels)

Table of built distributions (wheels) for shad0wllm 0.3.1
File
shad0wllm-0.3.1-cp313-cp313-win_amd64.whl CPython 3.13 CPython 3.13 Windows x86-64 Details
shad0wllm-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
shad0wllm-0.3.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.13 CPython 3.13 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
shad0wllm-0.3.1-cp313-cp313-macosx_11_0_arm64.whl CPython 3.13 CPython 3.13 macOS 11.0+ ARM64 Details
shad0wllm-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl CPython 3.13 CPython 3.13 macOS 10.13+ x86-64 Details
shad0wllm-0.3.1-cp312-cp312-win_amd64.whl CPython 3.12 CPython 3.12 Windows x86-64 Details
shad0wllm-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
shad0wllm-0.3.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.12 CPython 3.12 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
shad0wllm-0.3.1-cp312-cp312-macosx_11_0_arm64.whl CPython 3.12 CPython 3.12 macOS 11.0+ ARM64 Details
shad0wllm-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl CPython 3.12 CPython 3.12 macOS 10.13+ x86-64 Details
shad0wllm-0.3.1-cp311-cp311-win_amd64.whl CPython 3.11 CPython 3.11 Windows x86-64 Details
shad0wllm-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.11 CPython 3.11 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
shad0wllm-0.3.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.11 CPython 3.11 Linux glibc 2.28+ ARM64, Linux glibc 2.27+ ARM64 Details
shad0wllm-0.3.1-cp311-cp311-macosx_11_0_arm64.whl CPython 3.11 CPython 3.11 macOS 11.0+ ARM64 Details
shad0wllm-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl CPython 3.11 CPython 3.11 macOS 10.9+ x86-64 Details
shad0wllm-0.3.1-cp310-cp310-win_amd64.whl CPython 3.10 CPython 3.10 Windows x86-64 Details
shad0wllm-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ x86-64, Linux glibc 2.28+ x86-64 Details
shad0wllm-0.3.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl CPython 3.10 CPython 3.10 Linux glibc 2.27+ ARM64, Linux glibc 2.28+ ARM64 Details
shad0wllm-0.3.1-cp310-cp310-macosx_11_0_arm64.whl CPython 3.10 CPython 3.10 macOS 11.0+ ARM64 Details
shad0wllm-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl CPython 3.10 CPython 3.10 macOS 10.9+ x86-64 Details

Total release size: 2.6 MB

Release files / shad0wllm-0.3.1.tar.gz

Download URL shad0wllm-0.3.1.tar.gz
Size 136.7 kB
Tags Source
SHA-256 checksum
How to use checksums
b73552c7a79d9e2d098895dc22f8580d6a5c205577304af79c516c1af3968f4a
BLAKE2b-256 checksum
How to use checksums
8fc5c883ecfe10446a4c742621df469afbba9fafad8da536ba22193b3de683ca
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp313-cp313-win_amd64.whl

Download URL shad0wllm-0.3.1-cp313-cp313-win_amd64.whl
Size 117.3 kB
Tags CPython 3.13 Windows x86-64
SHA-256 checksum
How to use checksums
e4d1e8f960c3fbbb4973b8eaff8f9ad30952f1978d448636055e5f1f56fed113
BLAKE2b-256 checksum
How to use checksums
8e97d2287f14fce98357c7fa32e370830f45699c0050eeee4e47e39ecd86d10c
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL shad0wllm-0.3.1-cp313-cp313-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 130.2 kB
Tags CPython 3.13 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
d50421c7705eed0c03a534c07a6b087121b1c4895e16c3ee576a6e9797867625
BLAKE2b-256 checksum
How to use checksums
c519b4a81cca1ec3ac8b5814a32bef7577fa7dedcb92185f091def4dfea34d63
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL shad0wllm-0.3.1-cp313-cp313-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 131.6 kB
Tags CPython 3.13 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
9a3c81abb364bd19a61154ed17cd85cc562c5402b7d40183c2448caaa85a7b7b
BLAKE2b-256 checksum
How to use checksums
83c13448fb8a3224d522d86659c0fe78b497164b9093cbcc50342aad36485772
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp313-cp313-macosx_11_0_arm64.whl

Download URL shad0wllm-0.3.1-cp313-cp313-macosx_11_0_arm64.whl
Size 115.0 kB
Tags CPython 3.13 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
2761b9e121af4a6b1426e725c1390a1bd144a00c0091a99bb90dd145d578194e
BLAKE2b-256 checksum
How to use checksums
81b6604eaba04441f81df9c981a65fd765c1e5b7f2b6ec10a82c9d72efddb8a8
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl

Download URL shad0wllm-0.3.1-cp313-cp313-macosx_10_13_x86_64.whl
Size 114.7 kB
Tags CPython 3.13 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
d14bb1ddf31e1158973c9ff6eaab1e0b75a79fa5e64c46fabad7698de06d4a74
BLAKE2b-256 checksum
How to use checksums
cdb826521f9c72b1c6228232d6237234b401f52a70da66a25275fee30761b8dc
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp312-cp312-win_amd64.whl

Download URL shad0wllm-0.3.1-cp312-cp312-win_amd64.whl
Size 117.3 kB
Tags CPython 3.12 Windows x86-64
SHA-256 checksum
How to use checksums
af51629d3e658808981e7d834c894da911cc0986f68bf82c9567393e24d250d5
BLAKE2b-256 checksum
How to use checksums
9fe34717106d1f00636de72b0594288b00375b8282ea92ac0d636a432ce0fa31
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL shad0wllm-0.3.1-cp312-cp312-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 130.1 kB
Tags CPython 3.12 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
270c407a708f3f590d1653f5a7d6c11783bbcbd158098e1f0327cf03ace82e56
BLAKE2b-256 checksum
How to use checksums
2e3d422483aa1369dfb9e0e1667deae8ae823c1c3586939be70e081a2d2d2f37
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL shad0wllm-0.3.1-cp312-cp312-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 131.5 kB
Tags CPython 3.12 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
0f8ee34d276db0e83cbce64e45a10e44d6e526c4a278d4bc60df140f99815e5b
BLAKE2b-256 checksum
How to use checksums
1a86f188c20312ed5f6f4a1d2a98d9f4b7cdd5942a267e87de3db0f0bd98ba4a
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp312-cp312-macosx_11_0_arm64.whl

Download URL shad0wllm-0.3.1-cp312-cp312-macosx_11_0_arm64.whl
Size 115.0 kB
Tags CPython 3.12 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
5ada66fff252d447c7c21af7238a53183878719d6c97d470d74132479aeb485f
BLAKE2b-256 checksum
How to use checksums
314d3862e0bf710021eafd61e24d3b97cae9ef200ca86cae18ba0154271639c7
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl

Download URL shad0wllm-0.3.1-cp312-cp312-macosx_10_13_x86_64.whl
Size 114.7 kB
Tags CPython 3.12 macOS 10.13+ x86-64
SHA-256 checksum
How to use checksums
7569a242dfbbc3e772d9a46f2045d88718f2b832a725a08ce5928c76836c651b
BLAKE2b-256 checksum
How to use checksums
2535b090860e7ace012f8e4ad548c42cc531cdcd087ea31618640fd7efc5a420
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp311-cp311-win_amd64.whl

Download URL shad0wllm-0.3.1-cp311-cp311-win_amd64.whl
Size 117.3 kB
Tags CPython 3.11 Windows x86-64
SHA-256 checksum
How to use checksums
db8f0e2f0c54947b9388bf9637d9b5743b4d0b1e2672ef3cd4afe4ba1ce53c75
BLAKE2b-256 checksum
How to use checksums
cca27270cda7e6ee8ef4476b6537e1176c3af7322687dadb565e7f112cbf87a9
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL shad0wllm-0.3.1-cp311-cp311-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 130.0 kB
Tags CPython 3.11 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8fe9d075c54a01f4ced6c0a7feb82da4cae84198cb93bbe1f9433b8576b36452
BLAKE2b-256 checksum
How to use checksums
b48589b3e400c10fbb926bc8dd985d4e9f7985f2dfa3bb44797aeaed09ec8c79
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL shad0wllm-0.3.1-cp311-cp311-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 131.4 kB
Tags CPython 3.11 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
ec4c5b73a970feddff18437deea9120a6aee6de4e91eeac526f1819c737a13fc
BLAKE2b-256 checksum
How to use checksums
af410ad6cbe328214e1b4c4f2f446d774333f9e272018756561af97876b4f9e0
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp311-cp311-macosx_11_0_arm64.whl

Download URL shad0wllm-0.3.1-cp311-cp311-macosx_11_0_arm64.whl
Size 115.0 kB
Tags CPython 3.11 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
f5e6435a8a35d98e0e6cb771a5522a06b585ded4e0c71272b9c061609eb9debe
BLAKE2b-256 checksum
How to use checksums
ea16fa4183014dd52a5ddbcb115406678210295b32b5677f857000640fc9c900
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl

Download URL shad0wllm-0.3.1-cp311-cp311-macosx_10_9_x86_64.whl
Size 114.8 kB
Tags CPython 3.11 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
067780617165f0827654751247c0ffe5e5dd82878c20004811ddddc0e96d9a37
BLAKE2b-256 checksum
How to use checksums
8dd56ee39511f696cd2ee396880ad45117e239f9ceb2611ccfba7000ea96ecba
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp310-cp310-win_amd64.whl

Download URL shad0wllm-0.3.1-cp310-cp310-win_amd64.whl
Size 117.3 kB
Tags CPython 3.10 Windows x86-64
SHA-256 checksum
How to use checksums
2913de74b4c66ef25e3e2d2f22f9d5fe818258fb2ff085d54d7818cd4fa681ba
BLAKE2b-256 checksum
How to use checksums
fd6e113147ffd2cfaae0773d6e489e749e9d53746107cb0498677840f6554d9e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl

Download URL shad0wllm-0.3.1-cp310-cp310-manylinux_2_27_x86_64.manylinux_2_28_x86_64.whl
Size 129.9 kB
Tags CPython 3.10 Linux glibc 2.27+ x86-64 Linux glibc 2.28+ x86-64
SHA-256 checksum
How to use checksums
8a4f648ed9c7a52db80893cd7180f8b3f816ae3d42ed4e04ca0cf6837265d9a7
BLAKE2b-256 checksum
How to use checksums
9f3d43bad0ca80c859bac4f701efd18b9116ed654f4680dc8ac21c968a5f7a2f
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl

Download URL shad0wllm-0.3.1-cp310-cp310-manylinux_2_27_aarch64.manylinux_2_28_aarch64.whl
Size 131.4 kB
Tags CPython 3.10 Linux glibc 2.27+ ARM64 Linux glibc 2.28+ ARM64
SHA-256 checksum
How to use checksums
3cab79a1a806e93c8f9003361450a58ce2af97b0857d18e9e13134835740e995
BLAKE2b-256 checksum
How to use checksums
7d1343ecaa6c169b70073badaa45b0b608aaa17c17e45fd97c83c4d581dc3490
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp310-cp310-macosx_11_0_arm64.whl

Download URL shad0wllm-0.3.1-cp310-cp310-macosx_11_0_arm64.whl
Size 115.0 kB
Tags CPython 3.10 macOS 11.0+ ARM64
SHA-256 checksum
How to use checksums
8464cdcb8c4cd98032fbaeb420f7073437ce6ac730031dc517e1a4bb17d0a859
BLAKE2b-256 checksum
How to use checksums
be82d3cacba56edb70c16c8fb9cecda7b5c3b97d0fb9e9f4ba15c0a66f677a80
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release files / shad0wllm-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl

Download URL shad0wllm-0.3.1-cp310-cp310-macosx_10_9_x86_64.whl
Size 114.8 kB
Tags CPython 3.10 macOS 10.9+ x86-64
SHA-256 checksum
How to use checksums
fa96175d4ebdb83594f55514204d74baad8a72bad97148e8611f0e78ca3bbcca
BLAKE2b-256 checksum
How to use checksums
0790cf919ede7a5725a2ce90fd0188df9e19c771da029e308194f2ca7365fdfb
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Oct 8, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.3.1 This release

21 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page