feat(shell): allow a different listen port