Skip to main content
Change of provenance

The repository or configuration that created this release differ from a previous release. View details.

Pre-release

This release is a pre-release and may not be stable for production use.

Menlo

asimov-protocol

The wire contract of the Asimov robot, as generated Python protobuf bindings: the RobotCommand a controller sends, the RobotState the robot reports, and the messages around them. Every Menlo component that talks to the robot imports this package, so one process holds one set of descriptors.

pip install asimov-protocol
from asimov_protocol.v1 import asimov_command_pb2, asimov_common_pb2, asimov_state_pb2

cmd = asimov_command_pb2.RobotCommand()
cmd.mode = asimov_common_pb2.CONTROL_MODE_MOVE
payload = cmd.SerializeToString()

state = asimov_state_pb2.RobotState()
state.ParseFromString(payload_from_the_robot)

Use generated symbolic IDs when producing alerts. Look up display text without copying or rewriting the protobuf alert received from Firmware:

from typing import cast

from asimov_protocol import AlertId, get_alert_definition

assert AlertId.BMS_LOW_SOC == 27

alert = robot_state.active_alerts[0]
print(alert.severity, get_alert_definition(cast(AlertId, alert.id)))

Decode the firmware's critical-only sticky safety-fault word separately:

from asimov_protocol import get_error_report

report = get_error_report(robot_state.error_flags)
for fault in report.faults:
    print(fault.alert_id, fault.description)

SafetyFault.alert_id is None only when an unexpected or future error_flags bit has no critical alert mapping. Warning and info alerts are reported through active_alerts, not through the sticky safety word.

Ships .pyi stubs + py.typed (mypy/pyright work out of the box). The protobuf dependency floor tracks the generator version pinned in buf.gen.yaml (repo root) — bump both together.

Versioning

  • MAJOR follows the wire directory: 1.x is asimov_protocol.v1. A breaking wire change is a new v2/ and a 2.0, never an edit to v1/.
  • MINOR is an additive schema change (a new field, message or enum value); PATCH is regenerated code or packaging with no schema change.
  • Pin asimov-protocol>=1.2,<2 and you get every compatible release of the wire you speak.

Pre-releases use PEP 440 spelling (1.3.0rc1) and install only with pip install --pre or an explicit pin.

Modules

Module What is in it
asimov_common_pb2 ControlMode and the other shared enums
asimov_command_pb2 RobotCommand: mode, policy velocity, joint setpoints
asimov_state_pb2 RobotState: mode, joints, IMU, alerts, battery, protocol_version
asimov_diagnostics_pb2 diagnostics frames
edge_pb2 the edge's controller-facing observation lane (EdgeMessage, EdgeState)
edge_cloud_pb2, edge_eol_pb2 edge to cloud, and end-of-line test

Source

Generated from the .proto files in menloresearch/asimov-protocol by that repository's toolchain; do not edit the installed modules. Higher-level Python clients: menlo-sdk drives the robot, menlo-robot-sdk talks to the Robot Control Service.

MIT.

Metadata

Release files for asimov-protocol 1.3.0rc2

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

Change of provenance

The repository or configuration that created these release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Source distribution (sdist)

Source distribution for asimov-protocol 1.3.0rc2
File Size Uploaded Provenance Actions
asimov_protocol-1.3.0rc2.tar.gz 23.0 kB With provenance Details for asimov_protocol-1.3.0rc2.tar.gz

Built distribution (wheel)

Table of built distributions (wheels) for asimov-protocol 1.3.0rc2
File Interpreter ABI Platform Actions
asimov_protocol-1.3.0rc2-py3-none-any.whl Python 3 none any Details for asimov_protocol-1.3.0rc2-py3-none-any.whl

Total release size: 55.5 kB

Release files / asimov_protocol-1.3.0rc2.tar.gz

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL asimov_protocol-1.3.0rc2.tar.gz
Size 23.0 kB
Tags Source
SHA-256 checksum
How to use checksums
2f3eafb62f2ecb0012d94a2afc936172efd55d328e9cbc96c611473bc4a8f4e8
BLAKE2b-256 checksum
How to use checksums
5c1a30469448509c386733bdb57edf78b5c48a90c8eec7b5492d3d5fbeddd68e
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 29, 2026.

Transparency log

Release files / asimov_protocol-1.3.0rc2-py3-none-any.whl

Change of provenance

This file belongs to a release with changed provenance: the repository or configuration that created the release files differ from that of a previous release.

We recommend inspecting the repository and configuration before proceeding. View details.

Download URL asimov_protocol-1.3.0rc2-py3-none-any.whl
Size 32.6 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0d626d3251296364bef15c446c47984f4894f21bf1ce745849e5862c5722e45e
BLAKE2b-256 checksum
How to use checksums
bd2515d4575ba55f8d3c7047c47cbf322dcf3aabb8d17eeb66cf995ba698e556
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 29, 2026.

Transparency log

Security for asimov-protocol 1.3.0rc2

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.

Change of provenance

The repository and configuration that created this release differ from a previous release.

While this could reflect a routine change by the project maintainers, it may also indicate that the release files have been compromised.

Select from 2 files

Attestation for asimov_protocol-1.3.0rc2.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 29, 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.

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