use open_channel so we can pass require_pty