tauri dev や tauri build などのコマンドを受け持つのが Tauri CLI です。npm の @tauri-apps/cli と crates.io の tauri-cli の 2 通りで配られていますが、中身は同じプログラムで、版の番号も共通です (2026 年 9 月時点でどちらも 2.11.4)。違うのは呼び出し方と、プロジェクトごとに入るか PC 全体に 1 つ入るかです。create-tauri-app で JavaScript 系のテンプレートを選んだなら、CLI はすでにプロジェクトに入っています。
前提条件
- npm 版は Node.js、cargo 版は Rust (rustup) と C のビルドツールが必要です。OS ごとの準備は Hello World (Windows) や Hello World (Mac) を参照してください。
- どちらの CLI もアプリのビルドでは Rust (cargo) を呼び出すので、npm 版を入れても Rust が無ければ
tauri devはできません。
1. npm 版と cargo 版の違い
npm 版 @tauri-apps/cli | cargo 版 tauri-cli | |
|---|---|---|
| 呼び出し方 | npm run tauri <コマンド> | cargo tauri <コマンド> |
| 入る場所 | プロジェクトの node_modules | ~/.cargo/bin (PC 全体) |
| インストール | 数秒 (ビルド済みのバイナリ) | 数分 (ソースからコンパイル) |
| 版の固定 | package.json とロックファイル | PC に 1 つだけ |
| 向く場面 | JS / TS のフロントエンド (標準) | Yew・Leptos など Rust だけの構成 |
npm には tauri という名前の別パッケージ (0.x 時代の古いもの) もあります。npm install -g tauri や、CLI の入っていないフォルダーでの npx tauri はそちらを取りに行くので、パッケージ名は必ず @tauri-apps/cli と書きます。
2. プロジェクトごとに入れる (npm 版)
create-tauri-app が作る package.json には、CLI が開発用の依存と tauri スクリプトとして入っています。
{
"scripts": {
"tauri": "tauri"
},
"devDependencies": {
"@tauri-apps/cli": "^2"
}
}
既存の Web プロジェクトに後から入れるときは、次を実行して同じスクリプトを足します (続きは Tauri プロジェクトを作成する の tauri init)。
npm install -D @tauri-apps/cli@latest
# pnpm add -D @tauri-apps/cli@latest / yarn add -D @tauri-apps/cli@latest
実行はパッケージマネージャー経由です。pnpm と yarn はスクリプト名をそのまま書けます。
npm run tauri dev
npx tauri dev
pnpm tauri dev
npm だけは、- で始まるオプションを CLI に渡すときに間に -- が要ります。npm run tauri --version は npm 自身の版 (例: 11.13.0) を表示してしまいます。
npm run tauri -- --version # tauri-cli 2.11.4
npm run tauri build -- --debug # --debug が CLI に届く
3. PC 全体に入れる (cargo 版)
cargo install tauri-cli --version "^2.0.0" --locked
--locked は、CLI の公開時に決められた依存クレートの版でビルドする指定で、付けないと組み合わせによってはコンパイルに失敗します。入る実行ファイルは cargo-tauri で、cargo がこれをサブコマンドとして扱うので cargo tauri で呼べます。入っている版は cargo install --list で分かります。
tauri-cli v2.9.6:
cargo-tauri.exe
Rust だけのテンプレート (Yew など) を create-tauri-app で作ると、CLI が無い場合はこの cargo install を案内されます。npm install -g @tauri-apps/cli でも PC 全体に入りますが、全プロジェクトが 1 つの版を共有する点は同じです。
4. バージョンを確かめて揃える
npm run tauri は常にプロジェクトの npm 版を、cargo tauri は常に PC 全体の cargo 版を呼びます。
npm run tauri -- --version # tauri-cli 2.11.4 (プロジェクトの npm 版)
cargo tauri --version # tauri-cli 2.9.6 (PC 全体の cargo 版)
npm ls @tauri-apps/cli # package.json から解決された版
両方ある PC で npm run tauri info を実行すると、Packages に 2 つの CLI が並びます (抜粋)。🦀 の tauri-cli が cargo 版、ⱼₛ の @tauri-apps/cli が npm 版で、outdated は最新版より古いという意味です。
[-] Packages
- tauri 🦀: 2.11.5
- tauri-build 🦀: 2.6.3
- tauri-cli 🦀: 2.9.6 (outdated, latest: 2.11.4)
- @tauri-apps/api ⱼₛ: 2.11.1
- @tauri-apps/cli ⱼₛ: 2.11.4
揃え方は次のとおりです。
- npm 版はロックファイルで揃える:
"^2"は範囲の指定なので、実際の版はpackage-lock.jsonが決めます。ほかの人や CI はnpm ciで同じ版を入れます (Git の設定と .gitignore を適用する)。1 つの版に固定するならnpm install -D --save-exact @tauri-apps/cli@2.11.4とします。 - cargo 版はプロジェクトに合わせて入れ直す:
cargo install tauri-cli --version 2.11.4 --lockedのように演算子なしで書くと、その版がそのまま入ります。 - CLI と
tauriクレートはマイナー版を揃える: 両者は 2.11 系どうしのように同じ番号帯で公開されます。古い CLI は新しく増えたtauri.conf.jsonの設定項目を知らないので、読ませると設定エラーになります。
CLI・API・プラグインをまとめて最新にする手順は Tauri CLI を最新版にアップグレードする にあります。
動作確認
npm run tauri -- --help でサブコマンドの一覧が出れば、CLI は動いています。Windows の CLI には android はありますが、iOS 用の ios は出てきません。
Commands:
init Initialize a Tauri project in an existing directory
dev Run your app in development mode
build Build your app in release mode and generate bundles and installers
bundle Generate bundles and installers for your app (already built by `tauri build`)
android Android commands
migrate Migrate from v1 to v2
info Show a concise list of information about the environment, ...
よくあるエラーと対処法
「'tauri' は、内部コマンドまたは外部コマンド、…認識されていません。」
コマンドプロンプトでの表示です (PowerShell では「用語 'tauri' は、…認識されません。」)。npm 版はプロジェクトの node_modules にしか入らないので、tauri dev と直接打っても見つかりません。npm run tauri dev か npx tauri dev で実行します。
「error: no such command: tauri」
cargo tauri を使ったのに cargo 版が入っていません。cargo install tauri-cli で入れるか、npm 版の入口を使います。
「Cannot find native binding.」
npm 版が今の OS 用のバイナリを見つけられないときのエラーです。別の OS (WSL を含む) で作った node_modules をコピーした、optional dependencies を省いた、などが原因です。案内どおり node_modules と package-lock.json を消して npm install し直します。
「Additional properties are not allowed」で始まる設定エラー
以前に入れた古い cargo 版で、新しい設定項目を使った tauri.conf.json を読んだときに起きます。tauri info で CLI と tauri クレートの版を見比べ、CLI を上げます。
OS ごとの違いと注意点
- npm 版のバイナリは OS・CPU ごとに別パッケージ: Windows・macOS・Linux の各 CPU 用が optional dependencies として並び、今の環境の分だけが入ります。
node_modulesを OS 間でコピーしたり、Windows と WSL で共有したりしないでください。 - cargo 版はソースからビルドするので、C のビルドツール (Windows は C++ Build Tools、macOS は Command Line Tools、Linux は build-essential など) が要ります。
- モバイル:
tauri androidはどの OS の CLI にもありますが、tauri iosは macOS の CLI にしかありません。
