Bokeh
Interactive visualization library for web browsers. Bokeh targets large/streaming datasets and provides elegant web-based visualizations. Can generate standalone HTML files (no server needed) or use Bokeh Server for live streaming updates. Unlike Matplotlib (static) or Plotly (JS wrapper), Bokeh has a custom JavaScript rendering engine (BokehJS) that handles large datasets efficiently. Supports Python→JavaScript callbacks, real-time data streaming, and widgets without a Python server for simple cases.
Score Breakdown
⚙ Agent Friendliness
🔒 Security
BSD open source. NumFOCUS governance. No built-in auth — deployment security is developer responsibility. Standalone HTML files contain no server-side security surface.
⚡ Reliability
Best When
You need high-performance interactive browser visualizations with real-time streaming, fine-grained control over plot elements, or standalone HTML output.
Avoid When
You want easy dashboard building — use Panel or Streamlit which build on Bokeh. Avoid for static print output or 3D plots.
Use Cases
- • Create interactive charts with hover tooltips, zoom, pan, and linked brushing that run in pure HTML without a server backend
- • Stream real-time agent metrics data to live-updating browser plots using Bokeh Server and ColumnDataSource streaming
- • Build complex linked visualizations where selecting data in one chart highlights related data in other charts
- • Export agent-generated visualizations as standalone HTML files that include all JavaScript dependencies for sharing
- • Create geospatial visualizations with Bokeh's tile plot support for agent location and mapping data
Not For
- • Static publication-quality charts (PDFs, papers) — Matplotlib produces better print-ready figures
- • 3D visualizations — Bokeh is 2D only; use Plotly or PyVista for 3D
- • Teams wanting the easiest dashboard framework — Streamlit or Panel abstract Bokeh's complexity; use Panel on top of Bokeh for dashboards
Interface
Authentication
No auth for standalone HTML output or local Bokeh Server. Production Bokeh Server deployments require external auth layer. Session-based isolation for multi-user server deployments.
Pricing
Bokeh is BSD open source maintained by NumFOCUS. Free for all use. No commercial offering.
Agent Metadata
Known Gotchas
- ⚠ Bokeh's figure object model is complex — agents generating programmatic plots must understand glyphs, renderers, data sources, and axes as distinct objects
- ⚠ ColumnDataSource streaming (stream() method) uses append-only semantics — agents must manage data retention manually to prevent unbounded memory growth in long-running streams
- ⚠ Bokeh's JavaScript callbacks (CustomJS) require JavaScript strings embedded in Python — agents generating dynamic callback logic must write/template JavaScript code
- ⚠ Standalone HTML export includes all Bokeh dependencies by default (CDN or inline) — large inline exports for offline use can be 5+ MB per HTML file
- ⚠ Bokeh Server requires a persistent Python process — horizontal scaling requires load balancer configuration; simpler tools (Streamlit) handle this transparently
- ⚠ BokehJS renders in a canvas/WebGL context — complex plots with many glyphs (>100K points) may exceed browser memory; use WebGL renderer mode for large datasets
Alternatives
Full Evaluation Report
Detailed scoring breakdown, competitive positioning, security analysis, and improvement recommendations for Bokeh.
Scores are editorial opinions as of 2026-03-06.