Add shell execution

- Runs on a different thread so it doesn't interrupt receiving