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:mainMake sure the tmp and wljs directories are writable.
brew install --cask wljs-notebooksee also
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
Using .deb Package (Recommended)
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-essentialUsing .AppImage Package (Recommended)
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 libfuse2t64Using .rpm Package
If you use openSUSE, download the RPM binary, then run:
sudo zypper install ./wljs-notebook-*-gnulinux.rpmUsing .zip Archive
Extract and run the wljs-notebook executable.
macOS
Using .dmg Installer
- Apple Silicon users: Download the
-arm64.dmgversion. - Intel Mac users: Use
-amd64.dmgversion.
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:mainThis 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
Animateto a GIF file Rasterize- expressions rasterizationSystemOpen- open files/folders using OS system callsSystemInputDialog- 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-notebookStep 2: start it
wolframscript -f Scripts/start.wls20560, 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-wmDebian-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
libxkbcommon0OpenSUSE 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
libxkbcommon0Tunneling 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.