diff --git a/IPython/frontend/html/notebook/notebookapp.py b/IPython/frontend/html/notebook/notebookapp.py
index 056469f..2228962 100644
--- a/IPython/frontend/html/notebook/notebookapp.py
+++ b/IPython/frontend/html/notebook/notebookapp.py
@@ -22,6 +22,7 @@ import os
import signal
import socket
import sys
+import webbrowser
import zmq
@@ -51,7 +52,7 @@ from IPython.zmq.ipkernel import (
aliases as ipkernel_aliases,
IPKernelApp
)
-from IPython.utils.traitlets import Dict, Unicode, Int, List, Enum
+from IPython.utils.traitlets import Dict, Unicode, Int, List, Enum, Bool
#-----------------------------------------------------------------------------
# Module globals
@@ -111,11 +112,15 @@ class NotebookWebApplication(web.Application):
#-----------------------------------------------------------------------------
flags = dict(ipkernel_flags)
+flags['no-browser']=(
+ {'IPythonNotebookApp' : {'open_browser' : False}},
+ "Don't open the notebook in a browser after startup."
+)
# the flags that are specific to the frontend
# these must be scrubbed before being passed to the kernel,
# or it will raise an error on unrecognized flags
-notebook_flags = []
+notebook_flags = ['no-browser']
aliases = dict(ipkernel_aliases)
@@ -195,6 +200,9 @@ class IPythonNotebookApp(BaseIPythonApplication):
password = Unicode(u'', config=True,
help="""Password to use for web authentication"""
)
+
+ open_browser = Bool(True, config=True,
+ help="Whether to open in a browser after starting.")
def get_ws_url(self):
"""Return the WebSocket URL for this server."""
@@ -291,6 +299,9 @@ class IPythonNotebookApp(BaseIPythonApplication):
self.log.info("The IPython Notebook is running at: %s://%s:%i" % (proto,
ip,
self.port))
+ if self.open_browser:
+ ip = self.ip or '127.0.0.1'
+ webbrowser.open("%s://%s:%i" % (proto, ip, self.port), new=2)
ioloop.IOLoop.instance().start()
#-----------------------------------------------------------------------------