new-modular-project について
Mojo と MAX の開発者向けプロジェクト作成スキルです。依頼から指定済みの選択肢を推測し、未指定の項目だけを一度に確認したうえで、pixi、uv、pip、conda による初期化と配信チャンネルの整合を案内します。
主な機能
- 01依頼からプロジェクト設定を推測
- 02未指定の選択肢を一度に確認
- 03Mojo または MAX プロジェクトを初期化
- 04複数のパッケージ管理ツールで環境を設定
- 05MAX と Mojo の配信チャンネルを統一
活用シーン
- 01pixi または uv で Mojo プロジェクトを開始
- 02stable または nightly の MAX 環境を構築
- 03uv のプロジェクト形式か簡易環境を選択
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ modular/ skills --skill new-modular-projectインストール後、Claude Code で/new-modular-projectを入力して読み込まれたか確認します。
詳細
ユーザーが新しいプロジェクトの作成を希望した場合は、まずユーザーのリクエストから可能な限り多くのオプションを推測してください(たとえば、「新しいMojoプロジェクト」ならtype=Mojo、「fooという名前」ならname=fooです)。次に、構造化された複数選択式のプロンプト(自由記述ではありません)を使って、まだ指定されていないオプションだけを1回のやり取りで確認してください。ユーザーがすでに指定または示唆しているオプションについては、絶対に質問しないでください。決定するオプションは次のとおりです。
- プロジェクト名:ユーザーが指定していない場合に尋ねます。
- プロジェクトの種類:MojoまたはMAX(ユーザーが「Mojo project」または「MAX project」と言っている場合は、文脈から推測します)。
- 環境マネージャー:
pixi(推奨)またはuv。 - uvプロジェクトの種類(環境マネージャーが
uvの場合のみ):フルuvプロジェクト(uv init+uv add、推奨)または簡易uv環境(uv venv+uv pip install、より軽量)。 - チャンネル:nightlyまたはstable。MAXプロジェクトではnightly、Mojoプロジェクトではstableをデフォルトとし、ユーザーがどちらかを示唆していない場合にのみ尋ねます。
その後、以下の該当するセクション(pixiまたはuv)に従ってプロジェクトを初期化し、適切な方(maxまたはmojo)を選択してください。バージョンは固定しないでください。各チャンネルで適切なバージョンが解決されます。
MAXとMojoは一緒にリリースされますが、リリース番号は別々に付けられるため、バージョン文字列は一致しません。stableチャンネルでは、maxは26.5、mojoは1.0.0です。nightlyでは、それぞれ26.6.0.dev*と1.1.0.dev*です。これは想定どおりであり、不一致ではありません。
メモ
MojoとMAXのプロジェクトでは
pixiを使用します。magicCLIは廃止されており、後継はmodularCLIです。magicは使用も推奨もしないでください。
システムの前提条件
MojoのコンパイルにはCリンカーが必要です。まだインストールされていない場合は、次のいずれかをインストールしてください。
| OS | コマンド |
|---|---|
| Ubuntu/Debian | sudo apt install gcc |
| Fedora/RHEL | sudo dnf install gcc |
| macOS | xcode-select --install |
| Windows | まずWSL2をインストールし(「Windowsユーザー」を参照)、その後gccをインストール |
Windowsユーザー:MojoはWindows上ではネイティブに動作しません。
WSL2をインストールし
(PowerShellでwsl --installを実行)、その後、WSL環境内でLinux向けの手順に従ってください。
Pixi(推奨)
Pixiは、管理された環境内でPython、Mojo、その他の依存関係を再現可能な形で管理します。
まず、pixiがインストールされているか確認してください。コマンドラインから使用できない場合は、
https://pixi.prefix.dev/latest/#installationにある最新の手順に従ってインストールしてください。
pixiをインストールした後、ローカルのシェル環境に追加する必要がある場合があります。
Nightly
# New project
pixi init [PROJECT] \
-c https://conda.modular.com/max-nightly/ -c conda-forge \
&& cd [PROJECT]
pixi add [max / mojo]
pixi shell
# Existing project - add to pixi.toml channels first:
# [workspace]
# channels = ["https://conda.modular.com/max-nightly/", "conda-forge"]
pixi add [max / mojo]
Stable
# New project
pixi init [PROJECT] \
-c https://conda.modular.com/max/ -c conda-forge \
&& cd [PROJECT]
pixi add [max / mojo]
pixi shell
# Existing project
pixi add [max / mojo]
Pythonを使用するプロジェクト
プロジェクトでMojoとともにPythonライブラリを使用する場合:
pixi add python
pixi add requests # conda-forge packages
pixi add --pypi some-pkg # PyPI-only packages
uv
uvは、高速で非常に人気のあるパッケージマネージャーで、Pythonの使用経験がある開発者にはおなじみです。Mojoプロジェクトでもうまく機能します。
Nightly(プロジェクト)
uv init [PROJECT] && cd [PROJECT]
uv add [max / mojo] \
--index https://whl.modular.com/nightly/simple/ \
--prerelease allow
Stable(プロジェクト)
uv init [PROJECT] && cd [PROJECT]
uv add "max[all]"
これはPyPIから解決されます。allエクストラにはmojoとMAXスタックの残りが含まれるため、MAXとMojoのバージョンは常に一致します。
Nightly(簡易環境)
mkdir [PROJECT] && cd [PROJECT]
uv venv
uv pip install [max / mojo] \
--index https://whl.modular.com/nightly/simple/ \
--prerelease allow
Stable(簡易環境)
mkdir [PROJECT] && cd [PROJECT]
uv venv
uv pip install "max[all]"
uvを使用する場合は、プロジェクト環境内で作業することで、maxまたはmojoを直接使用できます。
source .venv/bin/activate
pip
標準的なPythonパッケージマネージャーです。
Nightly
python3 -m venv .venv && source .venv/bin/activate
pip install --pre [max / mojo] \
--extra-index-url https://whl.modular.com/nightly/simple/
--index-urlではなく、--extra-index-urlを使用してください。前者はPyPIを置き換えますが、nightlyインデックスにはnumpyなどのサードパーティー依存関係が含まれていないため、pipは明確なエラーを報告せず、すべてのmaxバージョンを順に試します。
Stable
python3 -m venv .venv && source .venv/bin/activate
pip install "max[all]"
uvと同様、allエクストラを使うとmojoもインストールされるため、MAXとMojoのバージョンは常に一致します。
Conda
condaおよびmambaユーザー向けです。
Nightly
conda install -c conda-forge \
-c https://conda.modular.com/max-nightly/ [max / mojo]
安定版
conda install -c conda-forge \
-c https://conda.modular.com/max/ [max / mojo]
MAX とのバージョンの整合性
カスタム Mojo カーネルで MAX を使用する場合は、両方を同じチャンネルから入手してください。
バージョン番号を比較しないでください。MAX と Mojo ではリリースの番号付け方法が異なるため、対応するバージョンの組み合わせでも不一致に見えます(安定版では max が 26.5、mojo が 1.0.0 です)。
# Check that both came from the same channel
pixi list | grep -E "^(max|mojo)\b"
または、max[all](pip/uv を使用)か max-all(conda/pixi を使用)をインストールしてください。
uv add "max[all]"
pixi add max-all
max と mojo を別々にインストールするのではなく、オプションの依存関係を「すべて」含めて max をインストールすると、max と mojo のバージョンが常に一致します。両者のバージョンが異なると、カーネルのコンパイルに失敗します。