Skip to main content

cyclo_manager CLI: pip-installable launcher for cyclo_manager server and UI containers. Run 'cyclo_manager up' to start Docker stack.

Project description

cyclo_manager CLI

PyPI package: cyclo-manager
Console command: cyclo_manager (underscore)

This package is a thin launcher: it runs docker compose against a bundled cyclo_manager_cli/docker/docker-compose.yml so you can start the cyclo_manager API and web UI without cloning the monorepo. Optional services (Zenoh, noVNC) are created but not started by default. It can also pip install -U itself and bring the stack back up.

Implementation: cyclo_manager_cli/cli.py.


Table of contents


Prerequisites

  • Docker with Compose v2 (docker compose — the legacy docker-compose binary alone is not enough)
  • Python 3.10+
  • For cyclo_manager update: pip or pip3 on PATH
  • On the host: agent sockets are expected under /var/run/robotis/agent_sockets and are mounted into the API container as /agents (see the bundled Compose file). Adjust only if you maintain a custom setup.

Install

Install from PyPI:

pip install cyclo-manager

If cyclo_manager is not on PATH, add the user script directory, e.g.:

export PATH="$HOME/.local/bin:$PATH"
cyclo_manager up

If the entry point is still missing:

python3 -m cyclo_manager_cli.cli --help
python3 -m cyclo_manager_cli.cli up

Commands

Command Behavior
cyclo_manager up docker compose up -d for cyclo_manager and ui, then docker compose create --no-recreate for rmw_zenoh and novnc-server so those containers exist but stay stopped. Sets CYCLO_MANAGER_CONFIG_FILE to the bundled cyclo_manager_cli/config/config.yml (no CLI flag to use another file).
cyclo_manager up --pull Runs docker compose pull first, then the same as up.
cyclo_manager down docker compose down using the packaged compose file. Stops and removes all services defined in that file for this Compose project (not only API + UI).
cyclo_manager update Runs cyclo_manager down, pip install -U cyclo-manager, then cyclo_manager up. Optional --pull is passed through to the final up. Requires cyclo_manager and pip on PATH.
cyclo_manager --help Subcommand overview

Compose: services and behavior

Compose service Container name (typical) cyclo_manager up
cyclo_manager cyclo_manager Started
ui cyclo_manager_ui Started
rmw_zenoh zenoh_daemon Created only (start e.g. from the Control UI or docker start zenoh_daemon)
novnc-server novnc-server Created only (start when needed, e.g. docker start novnc-server)

The bundled stack uses network_mode: host (see the Compose file). Image names and tags (e.g. robotis/cyclo-manager, robotis/cyclo-manager-ui) are defined in cyclo_manager_cli/docker/docker-compose.yml.


Config and environment

  • CYCLO_MANAGER_CONFIG_FILE: set automatically by the CLI to the absolute path of the bundled cyclo_manager_cli/config/config.yml on the host, and consumed by Compose as the mount for /app/config.yml in the API container. up and down both set this.
  • ROS_DOMAIN_ID: not set by the CLI. Set DDS domain in each container’s environment (e.g. ~/.bashrc inside the image) so it matches your robots, then restart as needed.
  • For a custom config file, different mounts, or local source builds, use the repository’s docker-compose.dev.yml at the project root instead of the pip-bundled workflow.

Bundled config.yml

Path: cyclo_manager_cli/config/config.yml

It only defines which containers cyclo_manager knows about and the agent Unix socket path (as seen from the API process, under /agents in the default Compose setup), for example:

  • ai_worker/agents/ai_worker/s6_agent.sock
  • physical_ai_server/agents/physical_ai_server/s6_agent.sock

s6 service names are not listed here; the agent in each container reports them at runtime.


URLs (packaged stack)

With network_mode: host and the defaults in Compose:

What URL
cyclo_manager API http://127.0.0.1:8081
OpenAPI (Swagger) http://127.0.0.1:8081/docs
Web UI http://127.0.0.1:3000

Dependencies

The cyclo-manager package declares no Python runtime dependencies in pyproject.toml. It invokes docker compose and, for update, pip.


License

SPDX: Apache-2.0 (see pyproject.toml and the repository LICENSE).

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

cyclo_manager-0.1.1.tar.gz (6.4 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

cyclo_manager-0.1.1-py3-none-any.whl (7.7 kB view details)

Uploaded Python 3

File details

Details for the file cyclo_manager-0.1.1.tar.gz.

File metadata

  • Download URL: cyclo_manager-0.1.1.tar.gz
  • Upload date:
  • Size: 6.4 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for cyclo_manager-0.1.1.tar.gz
Algorithm Hash digest
SHA256 0f0fff1565cdf837f28c2973e769d1bde7546b1f0477ee7bbb1fdf51f0ad7197
MD5 c7a72d9bec3125e559ebb3d203827c4f
BLAKE2b-256 b892c9f3c2836d7a369af0fc57b7194e9d0c6c7f9903002f9d678e6c51b80aab

See more details on using hashes here.

File details

Details for the file cyclo_manager-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: cyclo_manager-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 7.7 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for cyclo_manager-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 31ca43a40ce8d6079fe9901bf981543c0ce6e4f08d7d9ab6cae0aed252caa057
MD5 b6cd0caabf8bf4f68282eaf02e0f4948
BLAKE2b-256 938e5a249377be928d4faeb5d4bf0db78c8a9ff60dc30b5f7ae4c0d59be50c82

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page