Port smoke command to core

This one needs to sync with compile, clean, diff, and eventually harness, but it's 90% done.