Skip to main content

OhhO OS

Python package ohho-os (import ohho), version 1.1.2. The ohho console script is installed by pip install -e ..

CI License

The badge reads .github/workflows/ci.yml on ohho-robotics/ohho-sdk. That workflow has not run for this tree yet.

Three commands

pip install -e .
ohho doctor
ohho sim --robot omnibot --seconds 2

pip install -e . installs the dependency-free base (stdlib only) and the ohho script. ohho doctor prints the interpreter, the runtimes and adapters it can import, and the built-in robot ids. ohho sim connects with transport sim:// and runtime native, then drives an in-process pattern for the given number of seconds.

On this machine (Python 3.12.3, Linux, base install) both commands exited 0. ohho doctor reported runtime native, adapter sim, and robots omnibot, sim, unitree-go2.

Tests

python -m unittest discover -s tests

Same environment as above:

Ran 197 tests in 22.971s
OK (skipped=18)

The 18 skips were: 4 hardware-in-the-loop tests (OHHO_HIL unset), 13 tests that need agent_engine and numpy, and 1 test that needs fastapi ([serve]). No failures.

CI runs that discover command, then ohho doctor and ohho sim --robot omnibot --seconds 2, on Ubuntu, macOS, and Windows for Python 3.10, 3.11, 3.12, and 3.13. This commit does not include a GitHub Actions result for those cells.

Needs hardware

ohho doctor, ohho sim --robot omnibot, and the default test run do not open a serial port, a camera, or a GPU. The simulator is in-process.

tests/hil/ talks to real robots. Every test in that package is skipped unless OHHO_HIL=1. The ports they use:

Test Device Environment variable Default
OmniBot base Yahboom serial OHHO_OMNIBOT_PORT /dev/ttyUSB0
OmniBot arm Feetech bus OHHO_OMNIBOT_ARM /dev/ttyACM0
OmniBot base + arm both of the above both both defaults
Unitree Go2 DDS interface OHHO_GO2_IFACE eth0

Those adapters are not installed by pip install -e .. The extras are serial (pyserial), arm (lerobot), and unitree (cyclonedds). The ros2 extra does not pip-install rclpy; that module comes from a ROS 2 distro. train needs torch. None of those were installed for the test run above.

TypeScript

ts/ is the previous TypeScript workspace (package.json, tsconfig.json, packages/), moved with the same file contents. It does not typecheck. tsc --noEmit -p ts/tsconfig.json (TypeScript 5.6.3) exits with 246 error TS diagnostics, including missing modules (react, vitest, @/lib/...) and files that are not in this tree (packages/schemas/src/types.ts, packages/schemas/src/robot-catalog.ts). See ts/AGENTS.md. Paths in that file still describe the old repository root.

Licence

Apache-2.0. The full text is LICENSE.

Releasing

git tag v1.1.2
git push origin v1.1.2

v1.1.2 matches version in pyproject.toml. .github/workflows/release.yml runs on tags matching v*. It fails the release when the tag version and that version differ, checks every classifier against trove-classifiers, builds the sdist and wheel with python -m build, runs twine check, and publishes to PyPI with trusted publishing (pypa/gh-action-pypi-publish, environment: pypi, no API token). A following job, in a fresh virtualenv on Ubuntu and macOS, retries pip install ohho-os==<tag version> until that version is installable, then runs ohho doctor.

Tag v1.1.1 already points at 286d408 and was not published. PyPI returned 400 because Topic :: Scientific/Engineering :: Robotics is not a trove classifier. That tag stays. v1.1.2 has not been pushed.

Metadata

Release files for ohho-os 1.1.2

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

Source distribution (sdist)

Source distribution for ohho-os 1.1.2
File Size Uploaded
ohho_os-1.1.2.tar.gz 84.3 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for ohho-os 1.1.2
File Interpreter ABI Platform
ohho_os-1.1.2-py3-none-any.whl Python 3 none any Details

Total release size: 164.2 kB

Release files / ohho_os-1.1.2.tar.gz

Download URL ohho_os-1.1.2.tar.gz
Size 84.3 kB
Tags Source
SHA-256 checksum
How to use checksums
4ebe7cf664933acfa334a4370a70bf235f9614e861604ef721d1f92c9bdcde58
BLAKE2b-256 checksum
How to use checksums
eccc63f80a00b1b5425b1cfba941c0b398f64ac8c4463ce6654e218241ba2f3c
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 Oct 1, 2026.

Transparency log

Release files / ohho_os-1.1.2-py3-none-any.whl

Download URL ohho_os-1.1.2-py3-none-any.whl
Size 79.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
8e0c2170f3442e8ad42c8da6468d7b67ab8c53a0fc56651c01aefe0e3be34518
BLAKE2b-256 checksum
How to use checksums
43a2d2409b9ce9f352b8bcdaeb1085edc1d1964ec40e00cd011388f7bdaa4cb4
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 Oct 1, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

1.1.2 This release

2 release files

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