I would also list `user_ns` separately as a parameter, because I think that's the most common use case for programmatically starting IPython.