github Python re-analysis due deep scan · partial (178/2,236 files)

OpenHCSDev/openhcs

github

Typed, reproducible high-content microscopy workflows across GUI, Python, CellProfiler, Napari/Fiji, GPU, and local MCP agents.

maintainer
OpenHCSDev
licence
MIT
first seen
2026-08-01
last seen
2026-09-17
releases · 30d
9
short id

Drift inferred · capture-to-capture

  1. HIGH code analysis flagged dynamic code execution ×5 in OpenHCSDev/openhcs
capabilities 2 tools
transport stdio · streamable-http · http verified reported listed in the official MCP registry counts 2 tools · 0 res · 0 prompts permission surface via code analysis

tools

  • openhcs_bootstrap_failure
  • openhcs_health_check
skills & danger signals github-tarball
prompt-surface shipped agent-instruction files + hidden-content / dangerous-code findings — quoted from the analyzed source

analyzed commit e867013 · analyzer v33 · 1w ago

skills & prompt files 1

danger signals40

code evidence vv0.8.5 · github-tarball
evidence-backed findings quoted directly from the published source artifact — not inferred

code files: 1329

filesystem 375

  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/adapters/cellprofiler.py :8 import shutil
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/adapters/cellprofiler_installation.py :6 import shutil
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/adapters/cppipe_source.py :7 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/adapters/openhcs.py :17 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/bioformats_hcs_validation.py :10 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/cellprofiler_benchmark_cli.py :10 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/cellprofiler_comparison.py :8 import shutil
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/cellprofiler_export_equivalence.py :7 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/contracts/comparison_manifest.py :9 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/contracts/dataset.py :5 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/contracts/manifest_acquisition.py :6 import shutil
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/contracts/tool_adapter.py :7 from pathlib import Path
show 28 more
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/contracts/values.py :6 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/converter/compatibility_matrix.py :8 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/converter/convert.py :9 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/converter/cppipe_corpus.py :9 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/datasets/acquire.py :6 import shutil
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/datasets/cache.py :7 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/datasets/manifest.py :7 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/datasets/registry.py :7 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/datasets/visible_source.py :7 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/demos/official30_lab_meeting.py :13 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/progress.py :9 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/reports/cppipe_figures.py :12 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/reports/cppipe_scaling_figures.py :9 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/runner.py :6 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/throughput_scaling.py :8 import shutil
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/timing.py :12 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/benchmark/well_throughput_scaling.py :16 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/docs/source/_ext/openhcs_gallery.py :6 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/docs/source/conf.py :17 from pathlib import Path
  • fs (weak) OpenHCSDev-openhcs-e867013/examples/benchmark_example.py :3 from pathlib import Path
  • fs OpenHCSDev-openhcs-e867013/openhcs/_source_dependencies.py :8 from pathlib import Path
  • fs OpenHCSDev-openhcs-e867013/openhcs/agent/knowledge_manifest.py :7 from pathlib import Path
  • fs OpenHCSDev-openhcs-e867013/openhcs/agent/knowledge_manifest_schema.py :6 from pathlib import Path
  • fs OpenHCSDev-openhcs-e867013/openhcs/agent/path_policy.py :7 from pathlib import Path
  • fs OpenHCSDev-openhcs-e867013/openhcs/agent/runtime_platform.py :11 from pathlib import Path
  • fs OpenHCSDev-openhcs-e867013/openhcs/agent/services/architecture_projection_service.py :10 from pathlib import Path
  • fs OpenHCSDev-openhcs-e867013/openhcs/agent/services/config_service.py :13 from pathlib import Path
  • fs OpenHCSDev-openhcs-e867013/openhcs/agent/services/execution_session_service.py :13 from pathlib import Path

335 more not shown — this panel samples each group; the count above is the real total.

shell / exec 63

  • shell (weak) OpenHCSDev-openhcs-e867013/benchmark/adapters/cellprofiler.py :9 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/benchmark/contracts/manifest_acquisition.py :7 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/benchmark/datasets/acquire.py :5 import subprocess
  • shell OpenHCSDev-openhcs-e867013/openhcs/build_utils/zeroc_ice_installer.py :20 import subprocess
  • shell OpenHCSDev-openhcs-e867013/openhcs/desktop_deployment.py :13 import subprocess
  • shell OpenHCSDev-openhcs-e867013/openhcs/gui_startup.py :14 import subprocess
  • shell OpenHCSDev-openhcs-e867013/openhcs/mcp/client_registration.py :14 import subprocess
  • shell OpenHCSDev-openhcs-e867013/openhcs/omero/plugin/omero_openhcs/views.py :281 import subprocess
  • shell OpenHCSDev-openhcs-e867013/openhcs/processing/backends/lib_registry/registry_service.py :10 import subprocess
  • shell OpenHCSDev-openhcs-e867013/openhcs/pyqt_gui/services/desktop_restart.py :8 import subprocess
  • shell OpenHCSDev-openhcs-e867013/openhcs/pyqt_gui/services/desktop_restart_worker.py :8 import subprocess
  • shell OpenHCSDev-openhcs-e867013/openhcs/pyqt_gui/services/desktop_update.py :10 import subprocess
show 28 more
  • shell OpenHCSDev-openhcs-e867013/openhcs/pyqt_gui/services/desktop_update_worker.py :12 import subprocess
  • shell OpenHCSDev-openhcs-e867013/openhcs/pyqt_gui/widgets/image_browser.py :9 import subprocess
  • shell OpenHCSDev-openhcs-e867013/openhcs/runtime/omero_instance_manager.py :4 import subprocess
  • shell OpenHCSDev-openhcs-e867013/openhcs/runtime/viewer_protocol.py :9 import subprocess
  • shell OpenHCSDev-openhcs-e867013/openhcs/runtime/zmq_execution_client.py :7 import subprocess
  • shell OpenHCSDev-openhcs-e867013/paper/build_docx_from_markdown.py :6 import subprocess
  • shell OpenHCSDev-openhcs-e867013/paper/figures/render_diagrams.py :5 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/scripts/capture_media_gallery.py :18 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/scripts/dev_install.py :18 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/scripts/figures/orthogonal_projections/io_handler.py :338 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/scripts/install_ci_candidate.py :7 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/scripts/mcp_thesis_demo_live.py :15 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/scripts/release.py :6 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/scripts/release_readiness.py :11 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/scripts/resolve_successful_job_baseline.py :8 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/scripts/smoke_installed_desktop.py :10 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/scripts/validate_local_release_floors.py :18 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/tests/installer/test_installed_desktop_smoke.py :7 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/tests/installer/test_macos_dmg_lifecycle.py :9 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/tests/installer/test_macos_simple_installer.py :8 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/tests/unit/agent/test_mcp_client_registration.py :5 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/tests/unit/agent/test_mcp_distribution_runtime.py :5 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/tests/unit/agent/test_mcp_stdio_transport.py :3 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/tests/unit/pyqt_gui/test_application_cleanup.py :5 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/tests/unit/pyqt_gui/test_desktop_restart.py :5 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/tests/unit/pyqt_gui/test_desktop_restart_worker.py :5 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/tests/unit/pyqt_gui/test_desktop_update.py :3 import subprocess
  • shell (weak) OpenHCSDev-openhcs-e867013/tests/unit/pyqt_gui/test_desktop_update_worker.py :8 import subprocess

23 more not shown — this panel samples each group; the count above is the real total.

network 23

  • net (weak) OpenHCSDev-openhcs-e867013/benchmark/adapters/cellprofiler.py :17 from urllib.parse import quote
  • net (weak) OpenHCSDev-openhcs-e867013/benchmark/adapters/cppipe_source.py :9 from urllib.parse import urlparse
  • net (weak) OpenHCSDev-openhcs-e867013/benchmark/datasets/acquire.py :11 from urllib.parse import unquote, urlparse
  • net OpenHCSDev-openhcs-e867013/openhcs/build_utils/zeroc_ice_installer.py :18 import urllib.request
  • net OpenHCSDev-openhcs-e867013/openhcs/core/source_bindings.py :9 import urllib.request
  • net OpenHCSDev-openhcs-e867013/openhcs/core/source_projection.py :12 from urllib.parse import quote
  • net OpenHCSDev-openhcs-e867013/openhcs/desktop_installation.py :10 from urllib.parse import urlparse
  • net OpenHCSDev-openhcs-e867013/openhcs/mcp/http_auth.py :11 from urllib.parse import urlparse
  • net OpenHCSDev-openhcs-e867013/openhcs/processing/backends/cellprofiler/save_images.py :9 from urllib.parse import quote
  • net OpenHCSDev-openhcs-e867013/openhcs/pyqt_gui/services/desktop_update.py :18 from urllib.parse import urlparse
  • net OpenHCSDev-openhcs-e867013/openhcs/runtime/omero_instance_manager.py :189 import urllib.error
  • net OpenHCSDev-openhcs-e867013/openhcs/ui/shared/plate_scope_identity.py :8 from urllib.parse import quote, unquote
show 11 more
  • net (weak) OpenHCSDev-openhcs-e867013/scripts/build_hosted_mcp_plugin.py :14 from urllib.parse import urlparse
  • net (weak) OpenHCSDev-openhcs-e867013/scripts/build_website.py :15 from urllib.parse import unquote, urlsplit
  • net (weak) OpenHCSDev-openhcs-e867013/scripts/release_readiness.py :17 from urllib.parse import urlparse
  • net (weak) OpenHCSDev-openhcs-e867013/scripts/wait_for_pypi_release.py :16 from urllib.error import HTTPError
  • net (weak) OpenHCSDev-openhcs-e867013/tests/unit/agent/test_mcp_http.py :7 import httpx
  • net (weak) OpenHCSDev-openhcs-e867013/tests/unit/agent/test_mcp_http_auth.py :5 import httpx
  • net (weak) OpenHCSDev-openhcs-e867013/tests/unit/test_debug_runtime.py :5 import socket
  • net (weak) OpenHCSDev-openhcs-e867013/tests/unit/test_library_registry_discovery.py :635 import socket
  • net (weak) OpenHCSDev-openhcs-e867013/tests/unit/test_source_bindings.py :244 monkeypatch.setattr(source_bindings_module.urllib.request, "urlopen", urlopen)
  • net (weak) OpenHCSDev-openhcs-e867013/tests/unit/test_wait_for_pypi_release.py :7 from urllib.error import HTTPError
  • net (weak) OpenHCSDev-openhcs-e867013/tests/unit/test_zmq_port_pair_authority.py :3 import socket

database 7

  • db (weak) OpenHCSDev-openhcs-e867013/benchmark/cellprofiler_export_equivalence.py :5 import sqlite3
  • db OpenHCSDev-openhcs-e867013/openhcs/interop/cellprofiler/analyst_export.py :18 import sqlite3
  • db (weak) OpenHCSDev-openhcs-e867013/tests/unit/test_cellprofiler_analyst_export.py :7 import sqlite3
  • db (weak) OpenHCSDev-openhcs-e867013/tests/unit/test_cellprofiler_export_equivalence.py :3 import sqlite3
  • db (weak) OpenHCSDev-openhcs-e867013/tests/unit/test_cellprofiler_export_measurement_outputs.py :5 import sqlite3
  • db (weak) OpenHCSDev-openhcs-e867013/tests/unit/test_cellprofiler_export_to_database.py :4 import sqlite3
  • db (weak) OpenHCSDev-openhcs-e867013/tests/unit/test_cellprofiler_module_execution.py :2 import sqlite3

tool registrations 2

  • openhcs_health_check OpenHCSDev-openhcs-e867013/openhcs/mcp/bootstrap.py :133
  • openhcs_bootstrap_failure OpenHCSDev-openhcs-e867013/openhcs/mcp/bootstrap.py :138

install hooks 1

  • setup.py OpenHCSDev-openhcs-e867013/setup.py :53 cmdclass={

declared dependencies 54

  • mcp@>=1.28,<2
  • numpy@>=1.26.4
  • scikit-image@>=0.25.2
  • scikit-learn@>=1.7.1
  • scipy@>=1.12.0
  • PyWavelets@>=1.6.0
  • pandas@>=2.3.1
  • openpyxl@>=3.1.0
  • xlsxwriter@>=3.2.0
  • numba@>=0.61.0,<0.63; platform_system ==
  • and@platform_machine ==
  • Darwin@*
show 28 more
  • x86_64@*
  • cryptography@>=48,<49; platform_system ==
  • pytest@>=7.4.0
  • pytest-cov@>=4.1.0
  • coverage@>=7.3.2
  • genbadge@*
  • pytest-asyncio@>=0.21.0
  • pytest-xdist@>=3.5.0
  • requests@>=2.31.0
  • pyzmq@>=26.0.0
  • pytest-qt@>=4.2.0
  • centrosome@>=1.3.3
  • mahotas@>=1.4.18
  • matplotlib@>=3.10.0
  • PyQt6@>=6.9.1
  • PyQt6-QScintilla@>=2.14.1
  • pyqtgraph@>=0.13.7
  • PyOpenGL@>=3.1.7
  • GPUtil@>=1.4.0
  • distinctipy@>=1.2.2
  • wcag-contrast-ratio@>=0.9
  • napari@>=0.7.1
  • napari-crop@>=0.1.12
  • polystore@*
  • httpx@>=0.28,<1
  • omero-py@>=5.19.0
  • sphinx@>=4.0.0
  • sphinx-rtd-theme@>=1.0.0

14 more not shown — this panel samples each group; the count above is the real total.