{"id":28021,"library":"ostorlab","title":"Ostorlab OXO Scanner Orchestrator","description":"Ostorlab (oxo) is a security scanner orchestrator that manages and coordinates scanning agents across various assets (iOS, Android, HarmonyOS, web, network, etc.). It provides a CLI (`oxo scan`) to run, stop, and manage scans via a distributed architecture. The current stable version is 2.3.2, released in May 2025, with active development on GitHub. It requires Python >=3.9.","status":"active","version":"2.3.2","language":"python","source_language":"en","source_url":"https://github.com/Ostorlab/oxo","tags":["security","scanner","orchestrator","cli","docker","gRPC","agents"],"install":[{"cmd":"pip install ostorlab","lang":"bash","label":"Install via pip"}],"dependencies":[{"reason":"Required for running agents in Docker containers","package":"docker","optional":false},{"reason":"Required for inter-agent communication via gRPC","package":"grpcio","optional":false},{"reason":"Required for data serialization in agent messages","package":"protobuf","optional":false}],"imports":[{"note":"start_scan is a function inside the CLI module, not a top-level export.","wrong":"import ostorlab.start_scan","symbol":"start_scan","correct":"from ostorlab.cli import start_scan"},{"note":"Agent class is in the agent subpackage.","wrong":"import Agent from ostorlab","symbol":"Agent","correct":"from ostorlab.agent import Agent"}],"quickstart":{"code":"from ostorlab.cli import start_scan\n\n# Example: scan a domain (replace with your target)\nscan_id = start_scan(\n    agent_group_definition='path/to/agent_group.yaml',\n    assets=[{'type': 'DomainName', 'name': 'example.com'}],\n)\nprint(f'Scan started with ID: {scan_id}')","lang":"python","description":"Initialize and start a scan using an agent group definition YAML and a list of assets. The YAML file defines which agents to run."},"warnings":[{"fix":"Use Python 3.9 or later. Run `python --version` to check.","message":"In version 2.0.0, Python requirement was bumped to >=3.9 (from 3.14 in v2? Actually v2.0.0 release note says 'bump python version to 3.14' – this is likely a typo; the PyPI metadata requires >=3.9). Ensure your Python version is at least 3.9.","severity":"breaking","affected_versions":">=2.0.0"},{"fix":"Create a YAML file with the agent group definition and pass the file path as a string to `start_scan`.","message":"The `start_scan` function expects the path to an agent group definition YAML file. A common mistake is passing a raw dictionary instead of a file path. This will raise a TypeError.","severity":"gotcha","affected_versions":"all"}],"env_vars":null,"last_verified":"2026-05-09T00:00:00.000Z","next_check":"2026-08-07T00:00:00.000Z","problems":[{"fix":"Upgrade ostorlab: `pip install --upgrade ostorlab`. If using a virtual environment, ensure it's activated.","cause":"Ostorlab may not be installed, or an older version (<1.0) was used where the CLI was structured differently. Also, import path changed after v2.","error":"ModuleNotFoundError: No module named 'ostorlab.cli'"},{"fix":"Use `from ostorlab.agent import Agent`.","cause":"Trying to import `Agent` directly from `ostorlab` instead of the correct submodule.","error":"AttributeError: module 'ostorlab' has no attribute 'Agent'"}],"ecosystem":"pypi","meta_description":null,"install_score":null,"install_tag":null,"quickstart_score":null,"quickstart_tag":null}