Skip to content

Repository files navigation

WildEdge


CI Python Versions Tested on Linux Tested on macOS Tested on Windows Coverage

On-device ML inference monitoring for Python. Tracks latency, errors, and model metadata without any code modifications.

Pre-release: The API is unstable and may change between versions. Semantic versioning will apply from the first stable release.

Install

uv add wildedge-sdk

CLI

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.py

Validate 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

SDK

import wildedge

wildedge.init(integrations=["transformers"])  # optional under `wildedge run`

# models loaded after this point are tracked automatically; add traces,
# spans and LLM API calls anywhere, no client instance to pass around:
with wildedge.trace(run_id="run-1"):
    with wildedge.span(kind="agent_step", name="plan"):
        ...

with wildedge.llm_api(model="openai/gpt-4o-mini", provider="openrouter") as call:
    call.response(data)  # LLM calls made with plain HTTP clients

One client per process: wildedge run, init(), and the module-level calls all share it, and init() without dsn reuses whatever already exists. Without a DSN everything is a silent no-op, so dev and CI need no configuration. See Deployment for the full contract.

Supported integrations

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

Calling an LLM API with a plain HTTP client instead of these libraries? Use wildedge.llm_api(): 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.

Configuration

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.

Projects using this SDK

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.

Security & Privacy

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

Links

Each GitHub release ships llms.txt and llms-full.txt: the full documentation for that exact version in one file, built for AI assistants.