Installation Guide
Download and install the latest laylight command-line tool on Linux, macOS or Windows.
laylight is the Laylight compiler on the command line: it checks, formats and compiles Laylight files to GDSII, writes netlists and turns GDSII back into Laylight source. It is a single executable without dependencies, built for Linux, macOS on Apple silicon and Windows.
Download the latest release
Linux x86-64
laylight-x86_64-unknown-linux-gnu.tar.gz
Linux ARM64
laylight-aarch64-unknown-linux-gnu.tar.gz
macOS (Apple silicon)
laylight-aarch64-apple-darwin.tar.gz
Windows x86-64
laylight-x86_64-pc-windows-msvc.zip
These links always point to the newest release. Each archive holds the executable alone; unpack it into a directory on your PATH:
mkdir -p ~/.local/bin
tar -xzf laylight-*.tar.gz -C ~/.local/binOn macOS, a file downloaded with a browser is quarantined and will not run until you clear the flag:
xattr -d com.apple.quarantine ~/.local/bin/laylightExtract laylight.exe from the zip file into a folder such as %LOCALAPPDATA%\Programs\laylight, then add that folder to the Path user variable under Edit environment variables for your account.
Install with a script
The install script downloads the latest release for your system, checks its SHA-256 checksum and puts it on your PATH:
curl -fsSL https://download.photonstack.io/laylight/install.sh | shIt installs laylight to ~/.local/bin and tells you if that directory is not on your PATH yet.
powershell -ExecutionPolicy ByPass -c "irm https://download.photonstack.io/laylight/install.ps1 | iex"It installs laylight.exe to %LOCALAPPDATA%\Programs\laylight and adds that directory to your PATH. Open a new terminal to use it.
Two environment variables change what the script installs:
LAYLIGHT_VERSIONinstalls a given version, such as0.1.0, instead of the latest.LAYLIGHT_INSTALL_DIRinstalls to another directory.
Install with pip
pip install laylight-cliThe laylight-cli package holds the same executables as the downloads above, one wheel per system, and pip puts laylight in the environment's bin directory (Scripts on Windows); it does not depend on the Python version. The Laylight Python library is released with the command line at the same version and depends on the laylight-cli of its version, so pip install laylight installs the command too. To have the command everywhere instead of in one environment, install it as a tool:
uv tool install laylight-cli # or: pipx install laylight-cliCheck the installation
laylight --version
laylight helpThen compile a first layout, as in the Overview, or follow the Tour to learn the language.
Telemetry
laylight sends anonymous usage statistics: the command, option names, file kinds and sizes, run time, version and system. It never sends file names, contents or anything that identifies you, and it sends nothing in CI. The first run prints a notice and sends nothing. Turn the statistics off with laylight telemetry disable, LAYLIGHT_TELEMETRY=0 or DO_NOT_TRACK=1. Telemetry lists everything that is sent and how it is kept.
Editor support
laylight lsp runs the language server on stdin and stdout. Point an editor's LSP client at it for .lyl files to get diagnostics while typing (evaluation errors included), completion, hover with evaluated values, go to definition, references, rename, formatting and an outline. Imports are read from disk, with the editor's unsaved buffers taking precedence.
For GDS imports, the server completes paths and original cell names, navigates to the import, and renames local aliases without modifying the binary library.
Neovim 0.11 or newer, in init.lua:
vim.filetype.add({ extension = { lyl = 'laylight' } })
vim.lsp.config('laylight', {
cmd = { 'laylight', 'lsp' },
filetypes = { 'laylight' },
root_markers = { '.git' },
})
vim.lsp.enable('laylight')Helix, in languages.toml:
[language-server.laylight]
command = "laylight"
args = ["lsp"]
[[language]]
name = "laylight"
scope = "source.laylight"
file-types = ["lyl"]
comment-token = "#"
language-servers = ["laylight"]Other versions and checksums
Every release stays available under its version, such as https://download.photonstack.io/laylight/v0.1.0/, with the same file names as the latest release; the Changelog lists what each one changed. Each release directory has a SHA256SUMS file; the latest one checks the downloads above:
curl -fsSLO https://download.photonstack.io/laylight/latest/SHA256SUMS
sha256sum --ignore-missing -c SHA256SUMS # macOS: shasum -a 256 --ignore-missing -c SHA256SUMSSystem requirements
- Linux: x86-64 or ARM64 with glibc 2.17 or later, such as RHEL / CentOS 7, Ubuntu 14.04 and any newer distribution. Distributions built on musl, such as Alpine, are not supported.
- macOS: macOS 11 or later on Apple silicon. Intel Macs are not supported.
- Windows: Windows 10 or later on x86-64. Windows on Arm runs the x86-64 build under emulation.
Update and uninstall
To update, run the install script again, download the latest archive over the old executable, or run pip install -U laylight-cli (uv tool upgrade laylight-cli). To uninstall, delete the executable: ~/.local/bin/laylight on Linux and macOS. On Windows, delete %LOCALAPPDATA%\Programs\laylight and remove it from the Path user variable. A pip installation goes with pip uninstall laylight-cli.