Skip to content
Early preview. Maxon is under active development — incomplete in places, with breaking changes expected before a 1.0 release.

Installation

Maxon ships as a single compiler and the standard library it reads. There is nothing else to install — no runtime, no toolchain, no SDK.

Terminal window
curl -fsSL https://maxon.dev/install.sh | sh

When ~/.local/bin or ~/bin is already on your PATH, the script links maxon there and it is ready at once. Otherwise it adds ~/.maxon/bin to your shell profile: open a new terminal, or run the export line the script prints.

The script downloads the release for your machine, checks it against the release’s published SHA-256 checksums, and installs it into ~/.maxon (%USERPROFILE%\.maxon on Windows): the compiler in bin, the standard library beside it. It puts maxon on your PATH. It needs no administrator rights, and there is no Gatekeeper or SmartScreen prompt, because neither applies to a download made from a terminal. Read install.sh or install.ps1 before you run it, if you like.

The macOS build is for Apple silicon; the Linux builds are x64 and arm64, static, and need no libc. Windows is x64.

Terminal window
maxon version

Then write and run your first program.

Maxon includes a built-in Model Context Protocol (MCP) server:

Terminal window
maxon mcp-server

Connect your AI coding assistant (Claude Desktop, Cursor, Antigravity, or VS Code) by adding Maxon to your project’s .mcp.json or client configuration:

{
"mcpServers": {
"maxon": {
"command": "maxon",
"args": ["mcp-server"]
}
}
}

This gives your AI assistant tools to build, run, test, format, and check Maxon projects, as well as look up compiler error codes. See the MCP Server Guide for full details.

The Maxon extension for VS Code brings syntax highlighting, diagnostics, completion, hover, go-to-definition, rename and formatting. Install it from the Visual Studio Marketplace or Open VSX. It runs the language server from the compiler you installed, and offers to install one if it finds none. Any other editor with a Language Server Protocol client can run maxon lsp-server. See Editor Support for details.

Terminal window
maxon upgrade

It runs the install script again, against the install it runs from, and says so when you already have the newest release. maxon upgrade --dry-run prints what it would run. A Homebrew install, the Docker image and a build from source each have their own way to update, and maxon upgrade names it rather than touching them.

Terminal window
curl -fsSL https://maxon.dev/install.sh | sh -s -- --version 0.3.1

Every release is listed on GitHub. --force (-Force) reinstalls a release you already have, and --no-modify-path (-NoPathUpdate) leaves your PATH alone.

Variable Meaning
MAXON_INSTALL Where Maxon is installed. Defaults to ~/.maxon, or %USERPROFILE%\.maxon on Windows.
MAXON_DOWNLOAD_BASE A mirror of the release assets, laid out as <base>/v<version>/<asset>. A mirror has no “latest”, so it needs a version.

Homebrew, on macOS and Linux: brew install maxon-lang/tap/maxon. The tap prefix is required and cannot be shortened: a bare brew install maxon resolves to Maxon Computer’s Cinema 4D installer, which is a different product that happens to share the name. brew upgrade keeps it current.

Docker: ghcr.io/maxon-lang/maxon is Debian slim with a shell, for CI jobs and devcontainers, and ghcr.io/maxon-lang/maxon:distroless is a few megabytes with no shell, running as an unprivileged user. Both are built for amd64 and arm64 and tagged by release (:0.3.1, :0.3.1-distroless). A newer image is how an image upgrades: docker pull.

Terminal window
docker run --rm -v "$PWD:/app" ghcr.io/maxon-lang/maxon maxon run hello.maxon

By hand: download the archive for your platform from release 0.3.1:

Platform Archive
macOS, Apple silicon maxon-0.3.1-arm64-macos.tar.gz
Linux x64, static, no libc needed maxon-0.3.1-x64-linux.tar.gz
Linux arm64, static, no libc needed maxon-0.3.1-arm64-linux.tar.gz
Windows 10/11, x64 maxon-0.3.1-x64-windows.zip

Every release, older ones included, is on GitHub. Extract the archive somewhere permanent and add that directory to your PATH. On macOS a browser download is quarantined by Gatekeeper whatever is inside it, so clear that once:

Terminal window
tar -xzf maxon-*-arm64-macos.tar.gz
cd maxon-*-arm64-macos
xattr -d com.apple.quarantine ./maxon
export PATH="$PWD:$PATH"
Terminal window
rm -rf ~/.maxon

Then delete the maxon link the script made in ~/.local/bin or ~/bin, or the line under # Added by the Maxon installer in your shell profile.

A Homebrew install is removed with brew uninstall maxon-lang/tap/maxon.

Maxon is written in Maxon, so building it needs a Maxon compiler — there is no second implementation to fall back on.

Prerequisites: Git, and Node.js 20+ only if you are building the VS Code extension.

Install a release first, as above, then clone the repository, put your installed compiler in .bootstrap/ as the seed, build the compiler with it, and run the suite:

Terminal window
git clone https://github.com/maxon-lang/maxon.git
cd maxon
mkdir -p .bootstrap && cp "$(command -v maxon)" .bootstrap/
scripts/build-from-seed.sh
maxon-bin/.maxon/maxon spec-test

The seed builds the compiler, and that compiler then rebuilds itself: the compiler emits its runtime into everything it builds, itself included, so only the second build carries this tree’s runtime. Afterwards, maxon-bin/.maxon/maxon build maxon-bin rebuilds it through the repository’s own build manifest.

Build this tree with the compiler inside it, never the maxon on your PATH: that one would compile the repository against its own release’s standard library, and succeed.