Use

codemesh status

codemesh status

#Syntax

codemesh status [project] [--base branch] [--json]

#Purpose

Report readiness for all registered projects or one project. Status includes canonical versus local-only source, canonical path presence, current-machine path presence, normalized remote, selected base branch, declared local-only paths, warnings, and blockers.

When --base is omitted, CodeMesh uses the project's policy base branch, which defaults to main when no project policy sets one.

Use --json to print the stable Command Result shape instead of human key lines. The JSON includes command, exit_class, command-level diagnostics, and payload.projects with each project's workspace_source (canonical or local-only), readiness state, selected base, compatibility path and path_present, canonical_path, canonical_path_present, machine_path, machine_path_present, local_only_paths, normalized remote, and readiness diagnostics. For valid status reports, exit_class is success, readiness-warning, or readiness-blocked.

#Safe Example

demo="$(mktemp -d)"
export CODEMESH_HOME="$demo/codemesh-home"
workspace="$demo/workspace"
seed="$demo/seed"
remote="$demo/demo.git"

mkdir -p "$workspace" "$seed"
git -C "$seed" init -b main
printf '# demo\n' > "$seed/README.md"
git -C "$seed" add README.md
git -C "$seed" -c user.name='CodeMesh Demo' -c user.email='demo@example.invalid' commit -m 'Initial demo'
git clone --bare "$seed" "$remote"
git clone "$remote" "$workspace/demo-project"

codemesh init "$workspace"
codemesh add "$workspace/demo-project" --alias demo-project
codemesh status demo-project --base main
codemesh status demo-project --base main --json

#Current Limitations

  • Reports readiness; it does not modify the project checkout.
  • Imported manifest Projects can be canonical and missing at their desired path; explicit codemesh hydrate is still required to clone content.
  • Local-only scanned Projects remain visible as workspace_source: local-only until a manifest imports matching canonical topology.
  • Dirty source checkouts warn but do not block agent handoff by themselves.
  • Env readiness checks names and paths only; secret values are not read or stored.
  • Local-only policy is reported from .codemesh.yml; status does not create, delete, sync, or materialize those paths.
  • Multi-machine freshness, automatic placeholders, lazy hydration, and remote manifest sync are not implemented. Explicit bootstrap placeholders report as metadata-only blockers until hydrated.

Back to Command Catalog.