You can use jQuery Terminal Emulator backed with google.colab.kernel.invokeFunction
Here’s an example notebook.
The key part is here, where you back it with shell function.
def shell(command):
return JSON([getoutput(command)])
output.register_callback('shell', shell)
And here’s how you use invokeFunction:
try {
let res = await google.colab.kernel.invokeFunction('shell', [command])
let out = res.data['application/json'][0]
this.echo(new String(out))
} catch(e) {
this.error(new String(e));
}
Here’s a screenshot.

Update (7/2020)
I have taken @Anant’s answer and add it into my library. Now you can run console easily with just
!pip install kora
from kora import console
console.start() # and click link
Update (12/2020)
If you subscribe to Colab Pro, terminal is now available. Just click the ‘Terminal’ icon on the left pane.
