Magic FAQ
Why did you create Magic?
We created Magic to simplify your developer experience.
When you're developing with MAX and Mojo, your code doesn’t exist in a vacuum. Your project has dependencies and runtime requirements, such as specific Python versions, Python packages, and potentially other Mojo code.
Previously, you might have required separate tools for managing Python toolchains, handling Python dependencies, and managing MAX/Mojo toolchains and dependencies. That could be four or more systems to create a consistent, reproducible build environment.
This is where Magic comes in. Magic is a package manager and virtual environment system that unifies all these dependency management tasks with one tool. It also works seamlessly with popular Python package repositories and tools, while still allowing us to customize the virtual environment, packaging, and build tools for the growing MAX/Mojo platform.
Magic ensures that your builds are consistent, reproducible, and ready for production, no matter where they’re deployed. And, because we built Magic upon the already amazing pixi tool, it provides a smooth experience that feels like magic. 🪄
What happened to the modular
tool?
It's deprecated. We have no plans to update it.
We will not release any new max
or mojo
packages through the modular
tool beyond the 24.5 release. You must now use Magic or
conda to install MAX and Mojo.
Why not just use conda?
We love conda and all the tools in the conda ecosystem, but conda alone doesn't do all the things that we want to do for MAX and Mojo projects. So we were thrilled when we saw that prefix.dev already built a tool that improves upon conda in all the ways that we wanted to. Because Magic is just a small extension to their pixi tool, we suggest you read their explanations for why they built pixi:
That said, the max
package is a conda package, and you can also install it
using other conda tools. For details, see how to add MAX/Mojo in a conda
project.
Why not just use pixi?
We have every intention of contributing changes to the pixi
project. However, Mojo is still a very
young language, MAX requires some unique environment settings, and we're still
building and planning a lot of features for our build and packaging system. So
it's simply too soon to contribute some of our changes to a project like pixi,
and we currently can't make some of their features work with MAX/Mojo (magic
is missing some commands available in pixi
).
The pixi team has a much larger developer community that they must prioritize and support. Meanwhile, we're building a new language and new developer tools from the ground up and we need to iterate fast. Quite simply, our projects have different priorities right now. That said, we have a very good relationship with the pixi team. They've been nothing but supportive and helpful in our endeavour, and we look forward to collaborating with them.
Do I have to use Magic?
No. You can also install MAX and Mojo (the max
package) using other conda
tools.
Why not use pip to install the MAX Python package?
We definitely want to support pip for Python developers. With our limited resources, we decided to first focus on delivering MAX and Mojo as a conda package, and build a virtual environment manager that could meet the needs of both MAX and Mojo.
Is the Magic tool open sourced?
Not today. We worked really hard to get Magic released as quickly as possible,
and properly open sourcing any software is also a lot of work. The magic
code
currently has nothing proprietary in it, so it should just be a matter of time.
What's the alpha-numeric string in the Magic install URL?
The string appended to the https://magic.modular.com
URL is a
universally unique identifier (UUID) that helps us improve our tools and user
experience. Any data associated with this ID is anonymized and not linked to
any personally identifiable information.
Was this page helpful?
Thank you! We'll create more content like this.
Thank you for helping us improve!