Toolchain
Install Sere
Downloads come from GitHub Releases. Run the Windows installer, or grab a portable zip and run install.ps1. Building from source is still how you work on the compiler itself.
From source
Clone the repo, bootstrap LLVM, configure with CMake, and build. Developer scripts, not end-user steps.
Build from sourceOther releases
Everything else on GitHub. Prefer the latest release unless you are chasing a specific tag.
0.2.0 · Sep 21, 2026 · 168 MB
pre-0.1.9 · Sep 18, 2026 · 168 MB
pre-0.1.8 · Sep 6, 2026 · 168 MB
pre-0.1.6-stable · Sep 5, 2026 · 167 MB
Portable zip
Unzip 0.2.1, then run the script. LLVM is reused from a previous bootstrap or downloaded, it is not stored in git. After install, a new terminal should run sere --version without this repository.
# after unzipping Sere-0.2.1-windows-x64-portable.zip
.\install.ps1
sere --versionOptions: -Prefix, -NoPath, -Associate, -Editor, -Msvc, -DownloadLlvm. Uninstall with uninstall.ps1. From a source checkout, .\releases\stage.ps1 refreshes the folder from the current build. Default prefix is %LOCALAPPDATA%\Programs\Sere.
Requirements
The Windows ClangCL presets expect these on the machine before you configure. LLVM is installed to %LOCALAPPDATA%\sere\toolchains\llvm-22.1.8 so it does not live inside OneDrive.
CMake
3.28 or newer. 4.3 is fine.
Ninja
1.11 or newer for the Windows presets.
MSVC
Visual Studio 2022 Build Tools, x64.
LLVM
22.1.8 official clang+llvm Windows MSVC archive.
Build from source
Work from the repository root in PowerShell. Dot-source env.ps1 so MSVC vcvars64 and SERE_LLVM_DIR stay in the current session.
Get the repository
git clone https://github.com/Sere-Language/sere.git
cd sereBootstrap and build
bootstrap.ps1 fetches the pinned LLVM. Then configure and compile the compiler itself.
.\scripts\bootstrap.ps1
. .\scripts\env.ps1
cmake --preset windows-clang-cl-relwithdebinfo
cmake --build --preset windows-clang-cl-relwithdebinfoRun the tests
ctest --preset windows-clang-cl-relwithdebinfo --output-on-failurePut sere on PATH
Session-only first. Add -Persistent when you want it in your user PATH.
.\bin\sere-path.ps1
.\bin\sere-path.ps1 -PersistentWindows installer
Download the setup.exe release asset and run it to follow the installation wizard. After installation, open a new terminal and run sere --version.
To build the installer from a source checkout:
.\scripts\bootstrap-innosetup.ps1
sere --build-installerWrites dist/Sere-<version>-setup.exe.
First project
sere build compiles src/main.sere.sere run builds and executes bin/<name>.exe . Dot-source activate.ps1 so this terminal stays put.
.\bin\sere.exe init myapp
cd myapp
. .\scripts\activate.ps1
sere build
sere run
deactivateactivate.ps1
Dot-source it. Running the script without the leading . starts a nested sere shell instead of staying in this terminal.
deactivate
Restores PATH and the prompt. It does not close the window.
Compile a file
Once sere is on PATH it finds the pinned LLVM clang / lld automatically. You only need scripts/env.ps1 when you are building the compiler itself.
sere examples\hello.sere -o hello.exe
.\hello.exe
sere --emit-llvm examples\hello.sere -o hello.ll
sere --emit-asm examples\hello.sere -o hello.sEditor
The workspace extension in editors/vscode talks to sere --lsp . You get highlighting, diagnostics, hover, completion, rename, and go-to-definition.
.\scripts\package-vsix.ps1That writes a .vsix under editors/vscode and dist/. In Cursor or VS Code: Extensions → … → Install from VSIX… then reload the window. Set sere.compilerPath if the compiler is not on PATH.
Command reference
The driver is one binary. These are the flags and verbs you will use most.
sere init <app>
Create a new project with src/main.sere.
sere init-lib <name>
Create a kind = "lib" project you can pack.
sere pack
Write dist/<name>.slib from a library project.
sere build
Compile src/main.sere, or pack a lib project.
sere run
Build, then execute the binary.
sere refresh-bin
Copy compiler, runtime, and stdlib into ./bin.
sere --analyze file.sere
Print JSON diagnostics.
sere --lsp
Language server on stdin/stdout.
sere --emit-llvm
Write LLVM IR instead of an executable.
sere --emit-asm
Write native assembly.
sere --build-installer
Package the Windows setup.exe.