Mojo is a systems programming language designed for high-performance, accelerator-aware software while keeping a Python-like development experience. The installation flow has changed substantially since the early waitlist releases: current Mojo builds are distributed through Modular’s package channels, and the old SDK clone or waitlist instructions should no longer be used.
What you need
- macOS, Linux, or Windows through WSL
- A terminal and an internet connection
- Pixi (recommended by Modular) or uv
This guide follows Mojo 1.0, released in August 2026. The exact package channel may change, so use the official installation page as the source of truth when installing a newer release.
Install Mojo with Pixi
Pixi creates an isolated project environment and resolves the Mojo package together with its runtime dependencies. After installing Pixi, run:
pixi init hello-world -c https://conda.modular.com/max/ -c conda-forge
cd hello-world
pixi add mojo
pixi run mojo --version
The max channel provides the stable package. Use the separate nightly documentation only when you intentionally want an experimental build. Do not copy an old version number from a third-party tutorial.
Alternative: install with uv
If your project already uses Python tooling, uv is a convenient alternative:
uv init hello-world
cd hello-world
uv add mojo
uv run mojo --version
On Windows, run these commands inside WSL. uv run executes Mojo inside the project environment without requiring shell-specific activation commands.
Run your first Mojo program
Create a file named hello.mojo:
def main():
print("Hello, World!")
Run it directly with the Mojo CLI:
mojo hello.mojo
You should see:
Hello, World!
A note about current Mojo syntax
Older examples often declare immutable values with let. Current Mojo has removed let; use var when you need a named local variable. The language and standard library are still evolving, so check the changelog when an example from an older article does not compile.
Where to go next
Once Hello World works, continue with values, functions, structs, and error handling. Keep the environment isolated in Pixi or uv so each project can pin a compatible toolchain instead of depending on a machine-wide installation.


Comment