WLJS LogoWLJS Notebook

Installation

Install WLJS Notebook with Wolfram Engine on Windows, macOS, Linux, Docker, or Homebrew, and learn how to run it on a server.

Install in two steps

Step 1: Download and install the free Wolfram Engine 15.0 for developers. Wolfram requires a one-time registration and activation.

Step 2: Install WLJS from the GitHub binaries below or with Homebrew.

Want to see what people build before installing? Explore tutorials and interactive examples, or read the Mathematica migration guide.

For a server deployment, you can skip the desktop installer and use the complete Docker image described below.

docker run -it \
  -v ~/wljs:"/home/wljs/WLJS Notebooks" \
  -v ~/wljs/Licensing:/home/wljs/.WolframEngine/Licensing \
  -v ~/wljs/tmp:/tmp \
  -p 8000:3000 \
  --name wljs \
  ghcr.io/wljsteam/wljs-notebook:main

Make sure the tmp and wljs directories are writable.

brew install --cask wljs-notebook

see also

All releases

We carefully crafted our UI to match the look of all platforms as close as possible for a web-based application

Windows

Download and install the latest .exe. Only the x86-64 architecture is supported.

Linux

sudo apt install ./wljs-notebook.deb

Ubuntu 24.04 users: If you encounter AppArmor issues, one option is to disable the restriction temporarily:

sudo sysctl -w kernel.apparmor_restrict_unprivileged_userns=0

Ubuntu 25.xx users: If Wolfram Engine installation fails because of the Rust core library used for MD5, install the GNU version:

sudo apt install coreutils-from-gnu coreutils-from-uutils- --allow-remove-essential

Make the AppImage executable, then run it by double-clicking it.

Debian 13 users: If you encounter problems, install FUSE:

sudo apt install libfuse2

⚠ If you use Ubuntu:

sudo apt install libfuse2t64
Using .rpm Package

If you use openSUSE, download the RPM binary, then run:

sudo zypper install ./wljs-notebook-*-gnulinux.rpm
Using .zip Archive

Extract and run the wljs-notebook executable.

macOS

Using .dmg Installer
  • Apple Silicon users: Download the -arm64.dmg version.
  • Intel Mac users: Use -amd64.dmg version.
Using Homebrew
brew install --cask wljs-notebook

🚢 Running on a server

Some features, such as image or sound recording, may require an HTTPS connection when WLJS runs remotely. See how to set up a proxy in the container documentation, or use port forwarding over SSH.

For a remote machine:

Step 1: Register and get a developer license for the free Wolfram Engine at wolfram.com.

Step 2: Deploy WLJS Notebook.

docker run -it \
  -v ~/wljs:"/home/wljs/WLJS Notebooks" \
  -v ~/wljs/Licensing:/home/wljs/.WolframEngine/Licensing \
  -v ~/wljs/tmp:/tmp \
  -p 8000:3000 \
  --name wljs \
  ghcr.io/wljsteam/wljs-notebook:main

This mounts your local wljs directory into the container, where examples, configuration, and license-related files are stored. The tmp directory is mainly used for backups and quick notes.

Make sure tmp and the entire wljs directory are writable.

Then open http://127.0.0.1:8000, or forward port 8000 to your local machine before opening it.

Some features require the WLJS desktop app:

  • Export[_, _, "PDF"] - export to PDF
  • Rendering Animate to a GIF file
  • Rasterize - expressions rasterization
  • SystemOpen - open files/folders using OS system calls
  • SystemInputDialog - open system file dialog

Running from source

You can also start WLJS Notebook directly from the repository. Make sure Wolfram Engine is installed first:

Step 1: clone WLJS Notebook

git clone https://github.com/WLJSTeam/wljs-notebook.git
cd wljs-notebook

Step 2: start it

wolframscript -f Scripts/start.wls
WLJS Notebook uses one port for plain HTTP and two WebSocket ports for communication: 20560, 20559, and 20563. Use one-to-one port forwarding for the two WebSocket ports when connecting through a proxy or SSH tunnel.

Library dependencies (no Docker)

If you do not want to use Docker on your GNU/Linux-like server, you might need to install these dependencies for Wolfram Engine to function. This list was taken from the official WE documentation page:

RHEL, CentOS, AlmaLinux, Fedora...

fontconfig
freetype
libX11
libxcb
libXext
libxkbcommon
libxkbcommon-x11
xcb-util-image
xcb-util-keysyms
xcb-util-renderutil
xcb-util-wm

Debian-Based Distributions (Debian, Ubuntu)

libfontconfig1
libfreetype6
libx11-6
libxcb-icccm4
libxcb-image0
libxcb-keysyms1
libxcb-render-util0
libxcb-xfixes0
libxcb1
libxext6
libXinerama.so.1
libxkbcommon-x11-0
libxkbcommon0

OpenSUSE Leap or SUSE Linux Enterprise Server

fontconfig
libfreetype6
libX11-xcb1
libxcb-icccm4
libxcb-image0
libxcb-keysyms1
libxcb-render-util0
libxcb-xfixes0
libxcb1
libXext6
libxkbcommon-x11-0
libxkbcommon0

Tunneling through SSH

Example setup:

   ssh -f -N \
     -L 20560:localhost:20560 \
     -L 20559:localhost:20559 \
     -L 20563:localhost:20563 \
     <host name>@<host address> -p <host port, default=22>

🍓 Raspberry PI

Unix ARM64 binaries can work on Raspberry Pi models newer than the 3B when a 64-bit operating system is installed. You may also need to install the libuv or libuv-dev dependency from the terminal.

Wolfram Engine is available from the default APT repository and does not require authentication.

On this page