...It can automatically call JSON-RPC service when the user types a command. Alternatively, you can provide an object with methods; each method will be invoked on the user's command (the python command can create python interpreter). An object can have nested objects which will create a nested interpreter (you can create an interactive menu of adventure games with this). You can also use a function in which you can parse user commands by yourself (you have full control of what users type into the terminal). It's ideal if you want to provide additional functionality for power users.