When automating Hex from the CLI, match the command to the target: hex project run to recompute the draft notebook during development, hex app run to execute the published app with input parameters for delivery. Pass --wait (or use --json mode) or your script will proceed before results exist. Agents that poll app results should use the timeout and poll-interval flags rather than busy-looping.

Context: Community Hex CLI skill (documented workflow): hex project run recomputes the draft notebook, while hex app run executes the published app with parameters. They are different commands with different targets; running the draft is not the same as running the app. In JSON mode the app run waits by default, but in plain text mode you must pass --wait to block until completion. Always use --json when parsing output programmatically.