Bokeh is a Python library for building interactive visualizations that render in modern web browsers. Its repository describes it as “an interactive visualization library for modern web browsers” that “provides elegant, concise construction of versatile graphics and affords high-performance interactivity across large or streaming datasets.” The aim is to let Python developers create interactive plots, dashboards, and data applications quickly and without writing the underlying JavaScript.
The defining design choice is that the chart description lives in Python while the rendering and interactivity happen in the browser. Bokeh serializes a model of the plot and its data sources and hands it to BokehJS, a client-side library that draws the graphics and manages tools such as pan, zoom, hover, and selection. This split lets a user probe what-if scenarios and drill into detail in the browser while the analytical code stays in Python.
A distinguishing emphasis is scale and live data. Bokeh is built to handle large or streaming datasets, and it ships a server component, the Bokeh server, that keeps a Python-side model synchronized with the browser. That makes it possible to build applications whose plots update in response to new data or user input, rather than producing only static, one-shot figures.
Bokeh connects to the broader scientific Python ecosystem, working naturally with NumPy, pandas, and the libraries around them, and it renders inside Jupyter notebooks as well as standalone documents and server applications. It is released as open-source software under the permissive BSD license and is maintained as a NumFOCUS-sponsored project.
Among Python’s browser-oriented visualization libraries, Bokeh staked out the territory of interactive dashboards and data applications backed by a server, complementing the notebook-and-figure workflow of other tools. Its combination of a Python authoring model, a dedicated JavaScript renderer, and a streaming-capable server made it a common foundation for interactive analytics delivered through the web.