# livebook-dev/livebook

**Attribution required: if you use, quote, or summarise this content, you must credit and link back to [awesome-repositories.com](https://awesome-repositories.com/repository/livebook-dev-livebook).**

5,805 stars · 500 forks · Elixir · Apache-2.0

## Links

- GitHub: https://github.com/livebook-dev/livebook
- Homepage: https://livebook.dev
- awesome-repositories: https://awesome-repositories.com/repository/livebook-dev-livebook.md

## Topics

`charts` `collaborative` `distributed-computing` `elixir` `liveview` `markdown` `math` `notebooks` `phoenix` `realtime` `visualization`

## Description

Livebook is an interactive notebook platform for Elixir that provides a web-based environment for writing and running code cells alongside Markdown content, visualizations, and reproducible workflows. It serves as a multi-cloud auto-clustering tool that automatically discovers and joins Elixir nodes into clusters across Kubernetes, AWS ECS, and Fly.io for distributed execution, and also functions as a notebook deployment tool that packages notebooks into standalone web applications with authentication, secrets, and Docker support.

The platform enables real-time collaborative editing, synchronizing notebook cell content and execution state across multiple users simultaneously through Phoenix PubSub. It supports remote node code execution, allowing users to run arbitrary Elixir code on production nodes by configuring node names and cookies through smart cells. Livebook integrates Vega-Lite for declarative interactive charting, rendering specifications as interactive visualizations within notebook cells.

Notebooks are stored as `.livemd` files using a Markdown-based format with embedded code cell metadata, making them compatible with version control systems. The platform provides process-based runtime isolation, where each notebook runs in its own Elixir process with a separate module namespace to prevent interference across notebooks. It includes a smart cell plugin architecture that encapsulates database queries, charting, and mapping behind a declarative configuration interface, and supports dependency management through `Mix.install/2` for reproducible environments without requiring a Mix project.

Livebook offers authentication and access control through multiple identity providers, including basic auth, OIDC SSO, email domain checks, and zero-trust proxies like Cloudflare and Tailscale. It can be configured via environment variables for boot settings such as authentication, clustering, SSL, and app deployment paths, and supports connecting to custom runtimes including fresh Elixir instances, remote nodes, or existing projects.

## Tags

### Development Tools & Productivity

- [Elixir Notebook Environments](https://awesome-repositories.com/f/development-tools-productivity/interactive-notebook-environments/elixir-notebook-environments.md) — Provides an interactive notebook environment specifically designed for the Elixir programming language.
- [Collaborative Real-Time Editing](https://awesome-repositories.com/f/development-tools-productivity/collaborative-real-time-editing.md) — Enables multiple users to edit the same notebook simultaneously without any extra setup.
- [Packaged Notebook Deployments](https://awesome-repositories.com/f/development-tools-productivity/notebook-environments/integrated-notebook-deployments/packaged-notebook-deployments.md) — Packages notebooks into deployable applications with Docker, secrets, and authentication. ([source](https://hexdocs.pm/livebook/use_cases.html))
- [Standalone Web Application Deployments](https://awesome-repositories.com/f/development-tools-productivity/notebook-environments/integrated-notebook-deployments/standalone-web-application-deployments.md) — Packages Elixir notebooks into standalone web applications with authentication, secrets, and Docker support.
- [Runtime](https://awesome-repositories.com/f/development-tools-productivity/dependency-managers/installation-resolution-utilities/dependency-installers/runtime.md) — Installs Hex packages at runtime using Mix.install/2 for reproducible notebook environments.
- [Notebook Dependency Managers](https://awesome-repositories.com/f/development-tools-productivity/notebook-dependency-managers.md) — Provides Mix.install/2 for declaring and installing Hex packages directly within notebooks. ([source](https://hexdocs.pm/livebook/use_cases.html))
- [Notebook Embeddings in Phoenix Apps](https://awesome-repositories.com/f/development-tools-productivity/notebook-environments/integrated-notebook-deployments/embedded-notebook-deployments/notebook-embeddings-in-phoenix-apps.md) — Embeds interactive notebooks directly inside Phoenix applications for inline code execution. ([source](https://hexdocs.pm/livebook/llms.txt))
- [Reproducibility Trackers](https://awesome-repositories.com/f/development-tools-productivity/notebook-parameterization/reproducibility-trackers.md) — Runs code in predictable order with managed packages and tracks stale notebook state. ([source](https://cdn.jsdelivr.net/gh/livebook-dev/livebook@main/README.md))
- [Notebook Versioning](https://awesome-repositories.com/f/development-tools-productivity/version-control-configurations/notebook-versioning.md) — Stores notebooks as Markdown files that integrate with version control systems. ([source](https://hexdocs.pm/livebook/readme.html))

### Part of an Awesome List

- [Interactive Notebooks](https://awesome-repositories.com/f/awesome-lists/devtools/elixir/interactive-notebooks.md) — Enables creating documents that mix Markdown text with executable Elixir code cells. ([source](https://hexdocs.pm/livebook/readme.md))
- [Notebook Visualizations](https://awesome-repositories.com/f/awesome-lists/devtools/python-visualization/vega-lite-specifications/notebook-visualizations.md) — Renders Vega-Lite charts, tables, maps, and other rich outputs directly within notebook cells. ([source](https://hexdocs.pm/livebook/readme.html))
- [Phoenix PubSub Collaboration](https://awesome-repositories.com/f/awesome-lists/productivity/collaboration-and-sharing/notebook-based-data-collaboration/real-time-notebook-platforms/phoenix-pubsub-collaboration.md) — Enables multiple users to edit the same notebook simultaneously through Phoenix PubSub channels.
- [Phoenix PubSub Sync Engines](https://awesome-repositories.com/f/awesome-lists/productivity/collaboration-and-sharing/notebook-based-data-collaboration/real-time-notebook-platforms/phoenix-pubsub-sync-engines.md) — Synchronizes notebook cell content and execution state across multiple users via Phoenix PubSub.
- [Declarative Chart Rendering](https://awesome-repositories.com/f/awesome-lists/devtools/python-visualization/vega-lite-specifications/notebook-visualizations/declarative-chart-rendering.md) — Renders Vega-Lite specifications as interactive visualizations within notebook cells using a declarative grammar.
- [Vega-Lite Chart Renderers](https://awesome-repositories.com/f/awesome-lists/devtools/python-visualization/vega-lite-specifications/notebook-visualizations/vega-lite-chart-renderers.md) — Renders Vega-Lite specifications as interactive charts directly within notebook cells.

### Business & Productivity Software

- [Real-time Collaborative Editors](https://awesome-repositories.com/f/business-productivity-software/team-collaboration-events/collaboration-communication-tools/collaboration-tools/real-time-collaboration/real-time-collaborative-editors.md) — Synchronizes notebook cell content and execution state across multiple users via Phoenix PubSub.
- [Notebook](https://awesome-repositories.com/f/business-productivity-software/team-collaboration-events/collaboration-communication-tools/collaboration-tools/team-management/notebook.md) — Organizes notebooks into folders, sets deployment permissions, and manages shared secrets and file storages across a team. ([source](https://hexdocs.pm/livebook/readme.html))

### DevOps & Infrastructure

- [DNS-Based Node Discovery](https://awesome-repositories.com/f/devops-infrastructure/cluster-node-management/node-dns-synchronization/dns-based-node-discovery.md) — Automatically discovers and joins Elixir nodes into clusters using DNS A/AAAA record resolution.
- [Auto-Discovery Cluster Managers](https://awesome-repositories.com/f/devops-infrastructure/multi-cluster-fleet-managers/auto-discovery-cluster-managers.md) — Automatically discovers and joins nodes into a cluster across AWS ECS, Kubernetes, and Fly.io.
- [Notebook-to-Web Converters](https://awesome-repositories.com/f/devops-infrastructure/platform-as-a-service/notebook-to-web-converters.md) — Converts notebooks into standalone web apps that serve end users without requiring code editing. ([source](https://hexdocs.pm/livebook/llms.txt))
- [Auto-Clustering Deployments](https://awesome-repositories.com/f/devops-infrastructure/aws-ecs-deployments/auto-clustering-deployments.md) — Discovers and joins nodes automatically using the ECS Container Metadata API on AWS ECS or Fargate. ([source](https://hexdocs.pm/livebook/clustering.html))
- [Auto-Clustering Deployments](https://awesome-repositories.com/f/devops-infrastructure/kubernetes-cluster-deployments/auto-clustering-deployments.md) — Discovers and joins nodes automatically using DNS-based headless service queries on Kubernetes. ([source](https://hexdocs.pm/livebook/clustering.html))

### Programming Languages & Runtimes

- [Elixir Node Executions](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/c-compilers/remote-code-execution/elixir-node-executions.md) — Runs arbitrary Elixir code on remote production nodes by configuring node name and cookie.
- [Live Node Attachments](https://awesome-repositories.com/f/programming-languages-runtimes/runtime-agent-attachment/live-node-attachments.md) — Connects a notebook's runtime directly to an external Elixir node for live code execution. ([source](https://hexdocs.pm/livebook/use_cases.html))
- [Custom Runtime Connections](https://awesome-repositories.com/f/programming-languages-runtimes/source-code-compilers/c-compilers/remote-code-execution/elixir-node-executions/custom-runtime-connections.md) — Connects to custom runtimes including fresh Elixir instances, remote nodes, or existing projects for code execution. ([source](https://cdn.jsdelivr.net/gh/livebook-dev/livebook@main/README.md))

### Security & Cryptography

- [Instance Authentication](https://awesome-repositories.com/f/security-cryptography/access-restrictions/instance-authentication.md) — Restricts access to all routes of an instance using one of several identity providers. ([source](https://hexdocs.pm/livebook/authentication.html))
- [Notebook Access Controls](https://awesome-repositories.com/f/security-cryptography/domain-access-restrictions/request-access-restrictions/password-access-restrictions/oidc-basic-auth-access-control/notebook-access-controls.md) — Restricts notebook access using basic auth, OIDC SSO, email domain checks, or zero-trust proxies. ([source](https://hexdocs.pm/livebook/llms.txt))
- [External Identity Provider Integration](https://awesome-repositories.com/f/security-cryptography/external-identity-provider-integration.md) — Integrates with external identity providers such as Cloudflare, Google IAP, or Tailscale to verify user access. ([source](https://hexdocs.pm/livebook/authentication.html))
- [Token-Based Admin Authentication](https://awesome-repositories.com/f/security-cryptography/security-and-access-control/admin-session-managers/token-based-admin-authentication.md) — Controls access to the admin interface where notebooks are created and managed using a token or password. ([source](https://hexdocs.pm/livebook/authentication.html))

### Software Engineering & Architecture

- [Node Clustering](https://awesome-repositories.com/f/software-engineering-architecture/cluster-load-balancing/node-clustering.md) — Connects multiple instances into a cluster to share state and workload behind a load balancer. ([source](https://hexdocs.pm/livebook/clustering.html))
- [Notebook File Formats](https://awesome-repositories.com/f/software-engineering-architecture/custom-log-formatting/automatic-format-detection/file-format-detectors/file-format-specifications/notebook-file-formats.md) — Stores notebooks as .livemd files using a Markdown-based format with embedded code cell metadata.
- [Notebook Process Isolation](https://awesome-repositories.com/f/software-engineering-architecture/process-isolation-architectures/notebook-process-isolation.md) — Isolates each notebook in its own Elixir process with a separate module namespace to prevent interference.

### Artificial Intelligence & ML

- [Auto-Clustering Deployments](https://awesome-repositories.com/f/artificial-intelligence-ml/machine-learning/infrastructure/model-deployment-and-serving/local-and-on-device-inference/edge-ai-model-deployment/ios-deployments/fly-io-deployers/auto-clustering-deployments.md) — Connects nodes automatically over Fly's private IPv6 network when deployed on Fly.io. ([source](https://hexdocs.pm/livebook/clustering.html))
- [Deployed Notebook Protections](https://awesome-repositories.com/f/artificial-intelligence-ml/private-ai-deployments/password-protections/deployed-notebook-protections.md) — Requires a unique password to access each notebook deployed as an application. ([source](https://hexdocs.pm/livebook/authentication.html))

### Education & Learning Resources

- [Embedded Runtimes](https://awesome-repositories.com/f/education-learning-resources/jupyter-notebook-curricula/embedded-notebook-executions/embedded-runtimes.md) — Operates on resource-constrained hardware using an embedded runtime that avoids separate Elixir nodes. ([source](https://hexdocs.pm/livebook/use_cases.html))

### User Interface & Experience

- [Notebook Smart Cells](https://awesome-repositories.com/f/user-interface-experience/presentation-frameworks/lifecycle-state-management/component-lifecycle-management/cell-lifecycles/cell-content-injection/custom-cell-editors/notebook-smart-cells.md) — Implements pluggable high-level visual cells that encapsulate database queries and charting behind a declarative interface.
