externalize capture command so it can be platform-custom