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.
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file wildedge_sdk-0.2.0.tar.gz.
File metadata
- Download URL: wildedge_sdk-0.2.0.tar.gz
- Upload date:
- Size: 178.5 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
8175c079666f45798075910266975374c1e8b672e391283d591b87653cb382e4
|
|
| MD5 |
1c93941a163574708262292d74694940
|
|
| BLAKE2b-256 |
d331e58413ef33a982b995d0073f02823aab4668044d785eb1e268a7ff8f8f47
|
Provenance
The following attestation bundles were made for wildedge_sdk-0.2.0.tar.gz:
Publisher:
release.yml on wild-edge/wildedge-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wildedge_sdk-0.2.0.tar.gz -
Subject digest:
8175c079666f45798075910266975374c1e8b672e391283d591b87653cb382e4 - Sigstore transparency entry: 2218056214
- Sigstore integration time:
-
Permalink:
wild-edge/wildedge-python@c98ca2f043ca59e1dafde97223f6d074ba770f3c -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/wild-edge
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c98ca2f043ca59e1dafde97223f6d074ba770f3c -
Trigger Event:
push
-
Statement type:
File details
Details for the file wildedge_sdk-0.2.0-py3-none-any.whl.
File metadata
- Download URL: wildedge_sdk-0.2.0-py3-none-any.whl
- Upload date:
- Size: 128.8 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via:
twine/6.1.0 CPython/3.13.14
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
fd0de91eed184f08f6bf23b3611d4ec2fee9570b510a00073094bd40ecf07a5e
|
|
| MD5 |
4915f624722d511f2a948150f184d07d
|
|
| BLAKE2b-256 |
4666a7acfcf2fe6a96be85814fa4355098d15284eb10fc23465bd7fda1966f91
|
Provenance
The following attestation bundles were made for wildedge_sdk-0.2.0-py3-none-any.whl:
Publisher:
release.yml on wild-edge/wildedge-python
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
wildedge_sdk-0.2.0-py3-none-any.whl -
Subject digest:
fd0de91eed184f08f6bf23b3611d4ec2fee9570b510a00073094bd40ecf07a5e - Sigstore transparency entry: 2218056243
- Sigstore integration time:
-
Permalink:
wild-edge/wildedge-python@c98ca2f043ca59e1dafde97223f6d074ba770f3c -
Branch / Tag:
refs/tags/v0.2.0 - Owner: https://github.com/wild-edge
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@c98ca2f043ca59e1dafde97223f6d074ba770f3c -
Trigger Event:
push
-
Statement type: