CI Python Versions Tested on Linux Tested on macOS Tested on Windows Coverage
ML inference monitoring for Python: on-device and remote models. Tracks latency, tokens, errors, and model metadata with no code changes, plus traces for agent pipelines.
uv add wildedge-sdk
Without a DSN everything is a silent no-op, so dev and CI need no configuration.
Drop wildedge run in front of your existing command. WildEdge instruments the runtime before your code starts. No SDK calls required in user code.
WILDEDGE_DSN="https://<secret>@ingest.wildedge.dev/<key>" \
wildedge run --integrations timm -- python app.pyValidate your environment before deploying. --send-test-event proves the
whole pipeline end to end by sending one span event and reporting the ingest
response (exit codes: 0 pass, 1 config failure, 2 connectivity failure):
wildedge doctor --integrations all --send-test-event
Useful flags:
| Flag | Description |
|---|---|
--integrations |
Comma-separated list of integrations to activate (or all) |
--hubs |
Hub trackers to activate: huggingface, torchhub |
--print-startup-report |
Print per-integration status at startup |
--strict-integrations |
Exit (code 121) if a requested integration can't be instrumented |
--strict |
Exit (120 config, 122 internal) instead of running untracked when bootstrap fails |
--attachments |
Enable opt-in raw input/output attachment upload |
--no-propagate |
Don't pass WildEdge env vars to child processes |
Use the SDK when you can't wrap the process, or when you want traces and spans
around your own code. wildedge run covers everything else.
import wildedge from openai import OpenAI from transformers import pipeline wildedge.init(integrations=["transformers", "openai"]) # optional under `wildedge run` local = pipeline("text-generation", model="HuggingFaceTB/SmolLM2-360M-Instruct") remote = OpenAI() with wildedge.trace(run_id="run-1"): with wildedge.span(kind="agent_step", name="draft"): draft = local(prompt)[0]["generated_text"] with wildedge.span(kind="agent_step", name="refine"): remote.chat.completions.create( model="gpt-4o-mini", messages=[{"role": "user", "content": draft}], )
See Deployment for client lifecycle and the full contract.
On-device
| Integration | Example |
|---|---|
transformers |
transformers_example.py |
mlx |
mlx_example.py |
timm |
timm_example.py |
gguf |
gguf_example.py |
onnx |
onnx_example.py |
ultralytics |
- |
tensorflow |
tensorflow_example.py |
torch |
pytorch_example.py |
keras |
keras_example.py |
Remote models
| Integration | Example |
|---|---|
anthropic |
anthropic_example.py |
openai |
openai_example.py |
Fireworks, Together, Baseten, xAI, Mistral, Groq and other OpenAI-compatible hosts
work through the openai integration — pass their base_url. See
Providers
for every recognized endpoint.
Using httpx, requests or urllib directly instead of the openai / anthropic
client libraries? Wrap the call in
wildedge.llm_api()
to get the same events:
llm_api_example.py.
Hub tracking
Pass hubs= to track model download provenance. Hubs are framework-agnostic and can be combined with any integration.
| Hub | Tracks |
|---|---|
huggingface |
Downloads via huggingface_hub |
torchhub |
Downloads via torch.hub |
For unsupported frameworks, see Manual tracking.
| Parameter | Default | Description |
|---|---|---|
dsn |
- | https://<secret>@ingest.wildedge.dev/<key> (or WILDEDGE_DSN). If unset, the client is a no-op. |
app_version |
None |
Your app's version string |
app_identity |
<project_key> |
Namespace for offline persistence. Set per-app in multi-process workloads (or WILDEDGE_APP_IDENTITY) |
enable_offline_persistence |
true |
Persist unsent events to disk and replay on restart |
sampling_interval_s |
30.0 |
Seconds between background hardware snapshots. Set to 0 or None to disable (or WILDEDGE_SAMPLING_INTERVAL_S) |
attachments_enabled |
false |
Opt-in upload of raw inference inputs/outputs (or WILDEDGE_ATTACHMENTS_ENABLED). See Attachments |
For advanced options (batching, queue tuning, dead-letter storage, attachments), see Configuration.
| Name | Link |
|---|---|
| outfitstudio.app | https://outfitstudio.app/ |
| agntr | github.com/pmaciolek/agntr |
| demo-app | github.com/wild-edge/demo-app |
| (your project here) | - |
Using WildEdge in your project? Open a PR to add it to the list.
By default the SDK transmits only anonymized telemetry, never raw model inputs
or outputs. The one exception is opt-in attachments
(attachments_enabled), which upload raw bytes you explicitly pass in.
Report security and privacy issues to: support@wildedge.dev
Each GitHub release ships llms.txt and llms-full.txt: the full
documentation for that exact version in one file, built for AI assistants.