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.

If you run your own Embedl Hub, point the CLI and library at it. The address is the same URL you open in the browser:

embedl-hub auth --base-url http://192.168.1.10:3000

It is stored alongside the API key and used by every later command; embedl-hub auth --reset-base-url goes back to the public Embedl Hub. The address can also be supplied through the EMBEDL_HUB_API_BASE_URL environment variable, which takes precedence over the stored one.

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 log dashboard --run "$run" training-dashboard.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 and Hub address. yes
embedl-hub init Set the project and artifact directory. yes
embedl-hub show Print project, artifacts, Hub, and key state. 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, artifacts, and dashboards. 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, dashboard
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.6

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.6
File Size Uploaded Provenance
embedl_hub-0.0.6.tar.gz 217.7 kB With provenance Details

Built distribution (wheel)

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

Total release size: 480.1 kB

Release files / embedl_hub-0.0.6.tar.gz

Download URL embedl_hub-0.0.6.tar.gz
Size 217.7 kB
Tags Source
SHA-256 checksum
How to use checksums
1d25053a3c40b5d9eeee2f8787f4dc51c46762c89afa7e6ca210ae100224258e
BLAKE2b-256 checksum
How to use checksums
ebfa2e90e48724d6889abd388b0cfbde1aea555a97dd30536739c304ecb0714c
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 11, 2026.

Transparency log

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

Download URL embedl_hub-0.0.6-py3-none-any.whl
Size 262.5 kB
Tags Python 3
SHA-256 checksum
How to use checksums
b832bf11f663161f3d5ee4e4586ec3168de9de8e1467fd8c84d779eb31eac564
BLAKE2b-256 checksum
How to use checksums
399e6dc7e037f83faf968f69c3ec146e38b78b59a5260b7d7c19d41b0aab9a96
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 11, 2026.

Transparency log

Security for embedl-hub 0.0.6

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.6.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 11, 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.6 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