`sbxm status`
sbxm status [<project-id>]sbxm status --globalIn an interactive terminal, omitting the project ID opens a selection prompt. The first choice is global, followed by registered project IDs. In a non-interactive terminal, specify exactly one scope. --global checks the supported macOS platform, required commands, Docker Engine, Docker Sandboxes login and network policy, daemon state, and Remote SSH setup. A project ID checks its registry entry, host artifacts, image, sandbox, secret, repository, and worktrees.
Status is read-only and is the first command to run when another lifecycle command refuses to continue.
Project checks report each major stage to stderr before it starts: reading host files, waiting for Docker and Docker Sandboxes, inspecting the running sandbox, checking declared files and disk usage, and determining the next step. The status tables go to stdout after the checks finish. A stopped sandbox is not started to inspect its contents or disk usage.
When the observation points to exactly one thing to do next, status ends with that single command and the reason for it. It never offers two competing commands: a project whose first provisioning was interrupted or left incomplete is sent to open even when its Dockerfile also changed, and running status again after the recovery reports whether a generation change is still needed. An unfinished first provisioning or an unfinished generation change ends with a non-zero exit status because the project has not reached its target configuration; a changed Dockerfile alone is not damage, so it is named while status still succeeds. When the safe action cannot be determined — an identity mismatch, an artifact that could not be observed, or a stopped sandbox that has no first-provisioning intent — status reports what it observed and offers no command.
See Status values for the meaning and next action for each
state value.
The project DECLARED FILES table compares every declared file with what sbxm placed there last: HOST says whether the host file changed or was never placed, and SANDBOX says whether the sandbox copy was edited, is missing, or differs without a record. When a host file changed, status shows the sbxm apply <project-id> --files command that places it. See Declared files for each value.
In the project WORKTREES table, STATE describes the worktree itself and
REMOTE separately describes whether the current commit is pushed, reachable
from an origin ref, unreachable, or unobservable(reason). A commit saved into
the host repository under refs/sbx/<sandbox>/ counts as reachable, as it does
for rebuild and destroy. Status does not fetch; when its local refs or objects
are insufficient, it keeps the result unknown and explains the recovery action.