Apple Silicon macOS
First check uname -m, sw_vers -productVersion and any existing Cohesix
installation. Inspect Python, hf, max, app versions and developer tools only
when the selected workload uses them. Select a native ARM64 Python interpreter
for local AI workloads.
For Cohesix host tools, first discover the installation the user selected:
an extracted Mac .tar.gz with its own bin/, or .pkg tools in Application
Support. Reuse a compatible one. Set COH_BIN to that absolute directory;
the same operating commands work from either installation without changing
the current directory or relying on PATH. For a tarball, check VERSION.txt,
manifest and guide inside the extraction and retain its policies/Python.
For a .pkg, check its actual receipt and installed-file manifest even when
it is not on PATH. If both exist, retain the chosen installation throughout
the task and identify the current service owner before replacement.
Use a verified release .pkg when a normal Mac installation and
/Applications/SwarmUI.app are wanted. Verify its Developer
ID Installer signature, notarization and release manifest as the selected
Quickstart
specifies. Check the installed version and host tools under
/Library/Application Support/Cohesix/bin; the app should launch from Finder
without a Terminal environment. Use the package’s receipt-bound
cohesix-uninstall helper for removal. An archive is a valid alternative for
portable use and is still needed for a matching QEMU guest; do not assume the
.pkg contains guest files or installs QEMU.
Check that the selected executable launches before invoking coh doctor.
If macOS reports a missing FUSE library or a library-validation Team ID
mismatch, retain the exact loader error and inspect the installed receipt,
executable signature and selected FUSE runtime. This can block coh before
its optional mounting feature is used. Compare the installed tool’s digest
with a verified package payload before proposing reinstallation. If those
bytes already match, reinstalling the same package is not a repair; retain
the runtime/signature incompatibility for the publisher. Restore a supported matching
installation/runtime through the documented setup path; do not ad-hoc re-sign
release files or disable platform security to make a smoke pass. If choosing
a verified portable archive, select that entire matching tool installation
and record its separate identity. A CLI version string alone is not the
bundle’s 1.2.0 identity; use its manifest and VERSION.txt or native receipt.
For the corrected 1.2.0 Mac installer, use the current
release download and correction notice.
Its macos-installers.json and .pkg.sha256 identify the Mac package;
the release’s installers.json and detached signature describe Linux packages.
The Mac receipt remains 1.2.0, so compare the package and installed payload
hashes to distinguish the corrected installer from the original. The publisher
signs coh with Apple’s
library-validation exception
to load the separately signed macFUSE library while retaining hardened runtime.
This correction does not install macFUSE; verify that the selected native
FUSE3 runtime exists when checking this FUSE-linked CLI, and use the maintained
host setup if it is absent.
After publisher and payload checks, validate the selected tools themselves.
Use that installation’s policy explicitly, especially when the current directory
is a development checkout with different generated files. With COH_BIN already
set to the selected absolute native-package or tarball bin/ directory:
: "${COH_BIN:?Select the absolute Cohesix bin directory first}"
COH_INSTALL_ROOT="$(dirname "$COH_BIN")"
COH_POLICY="$COH_INSTALL_ROOT/configs/generated/coh_policy.toml"
if [ -f "$COH_INSTALL_ROOT/config/coh_policy.toml" ]; then
COH_POLICY="$COH_INSTALL_ROOT/config/coh_policy.toml"
fi
"$COH_BIN/coh" --policy "$COH_POLICY" --version
"$COH_BIN/cohsh" --help
"$COH_BIN/coh" --policy "$COH_POLICY" doctor --mock
For a .pkg, also check pkgutil --pkg-info com.cohesix.host and compare every
installed file with the verified package’s payload records. A receipt or a
self-reported checksum alone does not establish the installed bytes. The commands
above check native startup, matching policy and a mock diagnostic; they do not
exercise a real FUSE mount, Queen connection or GPU workload.
When Cohesix build tools are required, use
toolchain/setup_macos_arm64.sh
and its toolchain guide; do not add AI
packages to the seL4 or repository test dependency locks for convenience.
| Tool | Setup decision | Proof |
|---|---|---|
| Optional QEMU guest | Use the matching release archive’s ./scripts/setup_environment.sh --with-qemu and --check --with-qemu. Reuse a system QEMU only if the four-core Cortex-A57/GICv3 HVF startup probe passes. If it fails, the maintained setup builds pinned QEMU 10.1.0 with the verified HVF fix from upstream source into a user-owned prefix; do not copy a binary from another Mac or replace Homebrew’s QEMU. Host-only and Pi operation need no QEMU. |
Record the selected executable and SHA-256, successful startup probe, then boot the matching Mac guest and make an authenticated client request. Startup alone is diagnostic, not target acceptance. |
| Hugging Face Hub | Reuse a working hf CLI, or install it where the selected user or service can reach it; Homebrew’s formula is one Mac option. Keep Hub Python libraries inside the selected model runtime. Configure HF_HOME on a volume with room for the selected model. |
Resolve the executable in its launch context, run hf version, and make a public metadata/download check if needed; report authentication separately. |
| MLX / MLX-LM | Install compatible pinned mlx and, if serving/generation is selected, mlx-lm with the native Python used by the local workload. Verify model format, memory and Metal support before download. |
Force an MLX GPU array evaluation, then use a pinned small model for real inference/evaluation. Check actual selected device and output; a Python import alone is insufficient. |
| Modular MAX | If requested, install a pinned stable max package with only the extras the workload needs, following the official requirements and install guide. Its max CLI is distinct from MLX. Do not assume its installed version uses the Apple GPU for a selected model. |
max --version, then a supported pinned model operation and actual device/backend observation. Record unsupported model or device as unavailable. |
| vMLX | Install or retain the app from its upstream release; record app version and macOS signature assessment. Explicitly select a tool-capable model and the configured local endpoint. | Inspect the live model list, make a model response, then test its configured MCP tool discovery/call if claiming client compatibility. An empty model list is not a usable session. |
| Hugging Face PEFT | Select a PyTorch/MPS, Transformers, Accelerate and PEFT combination compatible with the Mac workload; pin them together. A PEFT import on the Mac does not substitute for an MLX adapter or a Jetson CUDA run. | pip check, real local adapter load and a bounded forward/backward or inference step on the selected backend; record base/model/adapter revisions. |
Before claiming vMLX MCP support, record its app/model/MCP SDK versions, transport, tool policy and original Cohesix operation identity. For A2A, name the actual A2A-capable peer using vMLX as its model endpoint; the app itself is not automatically an A2A peer. Follow the Test Plan for admitted work, denial and reconnect. Keep Apple signing certificates and Hub credentials outside this environment record.
The MLX project and PEFT install guide describe their current install surfaces. Check those and the selected versions before making changes; do not silently replace a working local runtime with a moving release.