First run

What happens when you open Hopper, and what to do if no engine answers.

On launch Hopper picks an engine, points itself at it, and starts polling. The status footer in the sidebar tells you where it got to.

If Apple Containers is not installed

You get an offer rather than an error:

Run containers natively on this Mac Apple Containers is not installed yet. Hopper can download Apple's signed installer for you; macOS will ask you to approve it.

Clicking Install Apple Containers resolves Apple's current release, downloads the signed .pkg, and opens it. macOS takes over from there and asks for your administrator password — Hopper never asks for it and never elevates.

Once the package is in, Hopper starts the services itself. That first start fetches a kernel image, so give it a moment.

If you already run Docker

Nothing to do. Hopper finds the socket and connects, and the footer says which daemon answered — Connected to Docker 29.7.2. or similar.

You can still switch to Apple Containers later, and Import from Docker will bring your images across when you do.

The states you might see

StateWhat it means
connectedAn engine answered. Everything works.
startingHopper is bringing the engine up, or the first probe is in flight.
stoppedThe engine is installed but not running. There is a Start button.
not installedNo engine here, and one can be offered or installed.
needs permissionThe socket exists but Hopper is not allowed to open it. On Linux, usually the docker group.
unreachableSomething is listening but not answering properly.
unsupportedThis engine cannot run on this machine — for example Apple Containers on an Intel Mac or before macOS 26.

Only the states Hopper can actually act on offer a button. A stopped engine that Hopper manages gets Start; a missing Docker does not, because starting it is not Hopper's to do.

Autostart

On by default: if the selected engine is one Hopper manages and it is not running, Hopper starts it in the background. Turn it off under Settings → Engine.