Skip to main content

Passive LLM endpoint identity and stability instrumentation

Project description

llmwho

Passive LLM endpoint identity and stability instrumentation for Python.

pip install llmwho
import llmwho

handle = llmwho.init()

Direct Anthropic Messages API calls need no LLMWho-specific wrapper:

import llmwho
from anthropic import Anthropic

llmwho.init()
client = Anthropic()
client.messages.create(
    model="claude-sonnet-4-20250514",
    max_tokens=64,
    messages=[{"role": "user", "content": "Hello"}],
)

One call instruments installed HTTPX (sync and async) and requests clients for recognized LLM routes. It writes content-free observations to ~/.llmwho/events.jsonl; it never sends active traffic. Calls are idempotent, streaming responses are not consumed, and handle.shutdown() safely restores only LLMWho-owned patches.

The CLI also accepts content-free Claude Code and Codex lifecycle events: llmwho hook claude-code|codex --event EVENT. Project configuration and privacy details are in the agent hook guide.

Run an explicit OpenAI-compatible compatibility canary:

report = llmwho.probe(
    base_url="https://api.openai.com/v1",
    api_key="…",
    model="gpt-4o-mini",
)

Compare explicitly supplied output corpora without network or persistence:

report = llmwho.science.output_affinity_matrix({
    "reference": ["reference answer"],
    "endpoint": ["endpoint answer"],
})
print(report["evidence"]["matrix"][0][1])

The symmetric character-trigram distance measures surface style only. It does not prove model identity, distillation, or capability transfer. Full method and limits: Output-affinity matrix.

Inspect local history:

llmwho summary
llmwho dashboard

Identity results are probabilistic evidence, not cryptographic attestation. Version 0.3 uses the response body's declared model field and ignores undocumented model response headers; its smoke suite measures capability and does not uniquely identify arbitrary model weights. Raw prompts, responses, headers, query strings, and credentials are never stored.

Full documentation, research review, and source: github.com/tcztzy/llmwho.

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

llmwho-0.3.0.tar.gz (24.6 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

llmwho-0.3.0-py3-none-any.whl (31.9 kB view details)

Uploaded Python 3

File details

Details for the file llmwho-0.3.0.tar.gz.

File metadata

  • Download URL: llmwho-0.3.0.tar.gz
  • Upload date:
  • Size: 24.6 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for llmwho-0.3.0.tar.gz
Algorithm Hash digest
SHA256 7be91fa1bcb439546f88862ca2355b722149e28ad934057c22af42632979d982
MD5 fc04ddac8f907863815b53a9af3c7190
BLAKE2b-256 285a4b31ae5d18a5dda356182bdd63fb4499c3218af64cdf8a1b8c01987a6c72

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmwho-0.3.0.tar.gz:

Publisher: release.yml on tcztzy/llmwho

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file llmwho-0.3.0-py3-none-any.whl.

File metadata

  • Download URL: llmwho-0.3.0-py3-none-any.whl
  • Upload date:
  • Size: 31.9 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.14

File hashes

Hashes for llmwho-0.3.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c9544b01eef2eb64d0d6efefa1ab72b7666344fea9c9bae96e439d60b21990c4
MD5 6c8c242ebb41bd26f9d1a879a5c473d7
BLAKE2b-256 052f9cdd3bf411a3551e6f43493af6e1290ab1656d5a20257e4a9b5838a4b15e

See more details on using hashes here.

Provenance

The following attestation bundles were made for llmwho-0.3.0-py3-none-any.whl:

Publisher: release.yml on tcztzy/llmwho

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