Skip to main content

Embedl Hub Python library

embedl-hub is the official Python client for Embedl Hub — a platform for compiling, profiling, and tracking machine learning models for edge devices.

The embedl-hub command-line tool takes a model from your machine to a real device and records every step along the way:

  • Compile a model for on-device execution through the TFLite, ONNX Runtime, or TensorRT toolchains.
  • Profile latency and memory on a real device — in a device cloud, or on your own hardware over SSH.
  • Invoke a compiled model on a device to run inference on real input data.
  • Track every run, with its parameters, metrics, tags, and artifacts, in your Embedl Hub project — from the shell, or from your own Python code.

Each command records a run on Embedl Hub, so the artifact produced by one step feeds straight into the next and your results stay comparable and reproducible later.

Requirements

Python 3.10 or newer.

Installation

pip install embedl-hub

The base install covers the tracking API and the whole run-control CLI — auth, init, show, use, run, log, batch, and list-devices — and pulls in no backend execution toolchain.

compile, profile, and invoke wrap external toolchains, so each one lives behind an extra:

Toolchain Install command
TFLite pip install 'embedl-hub[tflite]'
ONNX Runtime pip install 'embedl-hub[onnxruntime]'
TensorRT pip install 'embedl-hub[tensorrt]'
Everything pip install 'embedl-hub[all]'

Run a command whose extra is not installed and the CLI prints the pip install line you need, instead of an import traceback.

On Linux aarch64, [tflite] skips the onnx2tf-based local conversion path and the ai-edge-* quantization dependencies, because the upstream TensorFlow package publishes no Linux aarch64 wheels. The Qualcomm AI Hub TFLite provider still works on that platform.

Getting started

Create an API key under Personal API keys on your Embedl Hub profile page, then store it:

embedl-hub auth --api-key <your-key>

The key can also be supplied through the EMBEDL_HUB_API_KEY environment variable.

Choose the project your runs are recorded in, and check the active context:

embedl-hub init --project my-project
embedl-hub show

Track a run from the shell

run start creates a run and prints its ID to stdout, so a shell script can capture it and log against it:

run=$(embedl-hub run start --type eval --name "Evaluate baseline")

embedl-hub log param    --run "$run" model resnet18
embedl-hub log metric   --run "$run" accuracy 0.923 --step 1
embedl-hub log artifact --run "$run" results/predictions.json

embedl-hub run finish "$run"

Or bind the run to the current directory with --use, and drop --run everywhere after that:

embedl-hub run start --type eval --use
embedl-hub log metric accuracy 0.923 --step 1
embedl-hub log tag stage baseline
embedl-hub run finish

embedl-hub use prints the defaults in effect and where each one came from; use run, use project, and use batch set them, and use clear removes them. EMBEDL_HUB_RUN, EMBEDL_HUB_PROJECT, and EMBEDL_HUB_BATCH override the directory defaults, which makes the same scripts work unchanged in CI.

Read runs back without leaving the terminal:

embedl-hub run list                # the project's runs, newest first
embedl-hub run show "$run"         # one run with everything logged on it
embedl-hub run url "$run"          # its address on the hub

run list --failed, --all, and -n/--limit narrow the listing, and both run list and run show take --json for scripting.

Batch logging

When a job logs a lot, or runs somewhere without reliable network, queue the entries locally and send them in one request afterwards:

embedl-hub batch start --name "epoch metrics" --use
embedl-hub log metric accuracy 0.91 --step 1
embedl-hub log metric accuracy 0.93 --step 2
embedl-hub batch send

batch show inspects a queue before sending, batch list shows the queues on this machine, and batch discard drops one. A single log command can bypass an active batch with --no-batch.

Take a model to a device

List the devices you can target:

embedl-hub list-devices

Compile a model, then profile what you just compiled. --from-run latest picks up the artifact from the previous run, so there are no files to move by hand:

pip install 'embedl-hub[tflite]'

embedl-hub compile tflite qai-hub -m model.onnx -s 1,3,224,224 -d "Samsung Galaxy S24"
embedl-hub profile tflite qai-hub --from-run latest -d "Samsung Galaxy S24"

Commands

Command Purpose Base install
embedl-hub auth Store your API key. yes
embedl-hub init Set the project and artifact directory. yes
embedl-hub show Print the active project and artifact directory. yes
embedl-hub use Bind default targets to the current directory. yes
embedl-hub run Start, finish, and inspect runs. yes
embedl-hub log Log metrics, params, tags, links, and artifacts. yes
embedl-hub batch Queue log entries locally and send them later. yes
embedl-hub list-devices List available target devices. embedl devices
embedl-hub compile Compile a model for on-device execution. needs an extra
embedl-hub profile Measure latency and memory on a device. needs an extra
embedl-hub invoke Run inference on a compiled model. needs an extra

run, log, batch, and use group their own subcommands:

Group Subcommands
run start, finish, list, show, set-parent, url
log metric, param, tag, link, artifact
batch start, send, show, list, discard
use run, project, batch, clear

compile, profile, and invoke each take a toolchain, then a provider:

Command TFLite ONNX Runtime TensorRT
compile local, qai-hub qai-hub, embedl-onnxruntime trtexec
profile qai-hub, aws qai-hub, embedl-onnxruntime trtexec
invoke qai-hub qai-hub, embedl-onnxruntime trtexec

The embedl-onnxruntime and trtexec providers run on your own hardware over SSH; the others use a device cloud. embedl-hub list-devices qai-hub lists the Qualcomm AI Hub catalogue and needs the [onnxruntime] extra.

Run embedl-hub --help, or --help on any command, for the full option list. The package installs two equivalent entry points: embedl-hub and ehub.

Tracking from Python

The tracking API is part of the base install and writes to the same projects and runs as the CLI, so you can log directly from your training or evaluation code:

from embedl_hub.tracking import Client

client = Client()
client.set_project("my-project")

with client.start_run("eval", name="Evaluate baseline"):
    client.log_param("model", "resnet18")
    client.log_param("dataset", "imagenet-val")

    client.log_metric("accuracy", 0.923, step=1)
    client.log_metric("latency_ms", 8.4, step=1)

    client.log_tag("stage", "baseline")
    client.log_artifact("results/predictions.json")

start_run is a context manager: the run is finished for you on the way out, marked failed if the block raises, and killed if you interrupt it. Parameters take string values, metrics take floats with an optional step, and log_artifact uploads a local file to the run. The run type is a string or a member of RunType, also exported from embedl_hub.tracking.

Open the project on Embedl Hub to see the run and everything logged to it.

The compile, profile, and invoke components are available as Python classes too, but each needs the extra for its toolchain installed. See the documentation for those.

Project status

embedl-hub is under active development. The public API may change between releases in the 0.0.x series, so pin an exact version if you need a reproducible build.

Support

For questions, bug reports, and feedback, contact support@embedl.com.

License

This software is subject to the Embedl Hub Software License Agreement.

Metadata

Release files for embedl-hub 0.0.4

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

Source distribution (sdist)

Source distribution for embedl-hub 0.0.4
File Size Uploaded Provenance
embedl_hub-0.0.4.tar.gz 199.2 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for embedl-hub 0.0.4
File Interpreter ABI Platform
embedl_hub-0.0.4-py3-none-any.whl Python 3 none any Details

Total release size: 440.9 kB

Release files / embedl_hub-0.0.4.tar.gz

Download URL embedl_hub-0.0.4.tar.gz
Size 199.2 kB
Tags Source
SHA-256 checksum
How to use checksums
7bb5258f2a3c9ee8fffbff23e95a85e00d8ab13bb8623d2c0bd4b03a4031ca0c
BLAKE2b-256 checksum
How to use checksums
8a2b806c6cb53208d893bd5a2cdbab4c9eece15c308e58208d9eaec4b3bb0c46
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 Sep 7, 2026.

Transparency log

Release files / embedl_hub-0.0.4-py3-none-any.whl

Download URL embedl_hub-0.0.4-py3-none-any.whl
Size 241.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
3ebaab7bdbbd132524864147a9195e7ce6c018f6b2a3af662144d35958fa64e3
BLAKE2b-256 checksum
How to use checksums
e9a986e091ffd55ca0869b53af0d269afc77b02a0be7e68b597b3290cada3c6c
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 Sep 7, 2026.

Transparency log

Security for embedl-hub 0.0.4

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.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for embedl_hub-0.0.4.tar.gz

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 Sep 7, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Release history Release notifications | RSS feed

This release

0.0.4 This release

2 release files Full provenance

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