EmbodiRun is the deployment and execution runtime for embodied AI. It connects robot and simulator observations, inference services, session and step coordination, action validation, and robot-specific motion execution.
It owns robot and simulator observations, HTTP/WirelessComm inference clients, session and step coordination, action validation, robot-specific motion execution, and deployment routing. It does not own model checkpoints, model inference, prompt construction, model frameworks, or model-output parsing.
Do not import runtime code from third_party/embodiinfer into src/embodirun.
Communication with EmbodiInfer must go through the versioned HTTP or
WirelessComm API.
src/embodirun/client: public Agent HTTP client and shared transport semanticssrc/embodirun/deployment: configuration, planning, state, environment/source preparation, and SSH/process lifecyclesrc/embodirun/application: jobs, authentication, execution coordination, policy proposals, and default runtime loopssrc/embodirun/devices: connection ownership, shared observations, execution arbitration, and recordingsrc/embodirun/model_services: inference contracts, protocol clients, providers, and launch descriptorssrc/embodirun/services: CLI/HTTP process entrypoints and compatibility imports for the former layoutsrc/embodirun/robots: robot interfaces and adapterssrc/embodirun/bindings: policy-to-robot bindingssrc/embodirun/simulators: simulator adapterstests: unit, boundary, and integration testsagents: optional upper-layer algorithm integrations and software examples, outside the installed core packageintegrations: separately installed model-service and hardware-owner packages; each package owns its optional SDK dependencies and process entrypointthird_party/embodiinfer: optional pinned source for the first-party inference engineconfigs: example deployment configurationsexamples: runnable demo manifests, the shared launcher, and scene implementationsbenchmarks: measurement programs and their experiment-specific supporting toolsdocs/en,docs/zh: parallel English and Simplified Chinese documentation; shared assets and the stylesheet stay underdocs/
Install the package for development:
uv sync --frozen
Run the full test suite:
uv run pytest
Run a specific test file:
uv run pytest tests/<test_file>.py
- License: Apache-2.0. See
LICENSE,NOTICE, andTHIRD_PARTY_NOTICES.md. - Support Python 3.10 and newer.
- Keep robot-specific dependencies optional.
- Declare dependencies in
pyproject.toml. - Preserve the separation between generic robot adapters and policy-specific bindings.
- Keep
src/embodirun/servicescompatibility imports working; new code targets the canonical domains (client,deployment,application,devices,model_services). - Do not modify
third_party/embodiinferunless the task explicitly targets the pinned upstream code. - Do not perform operations against physical robots unless the user explicitly requests them.