mljar/mercury

Impress your boss and turn a Jupyter notebook into a beautiful, shareable web app — no callbacks, no frontend, no rewrite.

What it solves

Mercury allows users to turn Jupyter notebooks into interactive web applications without needing to rewrite their code into a separate Python script or manage complex UI callbacks. It enables data scientists and AI developers to share their analysis, dashboards, and AI agents with non-technical users while keeping the notebook as the single source of truth.

How it works

Mercury transforms .ipynb files into reactive web apps. Instead of using event handlers or callbacks, Mercury uses a reactive execution model: when a user interacts with a widget, the framework automatically re-executes the notebook cells below that widget. It includes a collection of predefined widgets (such as chat interfaces and text inputs) and a standalone server to host these notebooks as web apps.

Who it’s for

It is designed for developers and data scientists who already have a Jupyter notebook and want to provide a professional, interactive interface for non-programmers to run their code, change parameters, or interact with AI agents.

Highlights

  • Reactive Notebooks: Eliminates the need for callbacks; widget changes simply trigger cell re-execution.
  • Direct Notebook Serving: Serves .ipynb files directly, so there is no need to maintain a separate app.py file.
  • Built-in AI UI: Includes specialized widgets like Chat and ChatInput for building AI agent interfaces.
  • Development Tools: Provides a JupyterLab extension for live app previews during development.
  • Easy Deployment: Supports deployment via Docker or a managed cloud service, with optional password protection.

Related

  • Project
  • Project
  • Project
  • Project
  • Project