tauri について
tauri は、Rust コアと OS WebView フロントエンドでデスクトップ・モバイルアプリを開発する人向けの Tauri v2 スキルです。プロジェクト設定、IPC、セキュリティ、プラグイン、テスト、配布を扱います。
主な機能
- 01プロジェクトの作成と設定
- 02Rust コマンドと WebView IPC
- 03機能と権限の制御
- 04プラグインとアップデーターの解説
- 05テストとパッケージ化の資料
活用シーン
- 01Tauri アプリの開発開始
- 02フロントエンドと Rust コマンドの接続
- 03ウィンドウ権限の設定
- 04テストとアプリバンドルの準備
インストール
コマンドをコピーしてターミナルで実行します。
$
npx skills add https:/ / github.com/ hairyf/ skills --skill tauriインストール後、Claude Code で/tauriを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
GENERATION.mdreferences/best-practices-security-lifecycle.mdbest-practices-writing-plugin-permissions.mdconcept-ipc-patterns.mdconcept-size.mdcore-architecture.mdcore-ipc.mdcore-process-model.mdcore-project-structure.mddevelop-commands.mddevelop-configuration-files.mddevelop-debug.mddevelop-events-and-channels.mddevelop-icons.mddevelop-plugins-mobile.mddevelop-resources.mddevelop-sidecar.mddevelop-state-management.mddevelop-tests-mocking.mddevelop-tests-webdriver.mddevelop-tests.mddevelop-updating-dependencies.mddevelop-windows.mddistribute-packaging.mddistribute-pipelines.mddistribute-signing.mdfeatures-deep-linking.mdfeatures-official-plugins-overview.mdfeatures-plugins.mdfeatures-updater.md詳細
Tauri を使うと、Rust の Core プロセスと OS の WebView 上で動作するフロントエンドを備えたデスクトップ(およびモバイル)アプリを構築できます。プロジェクトのひな形を作成する場合、コマンドやイベントを接続する場合、機能や権限を設定する場合、またはプラグインを作成する場合に、これらのスキルを使用してください。
このスキルは Tauri v2 に基づいており、2026-01-30 に生成されました。
コアリファレンス
| トピック | 説明 | リファレンス |
|---|---|---|
| アーキテクチャ | コアクレート、WRY/TAO、ツール、プラグイン | core-architecture |
| IPC | イベント(送信のみ)とコマンド(呼び出し/応答)の違い、使い分け | core-ipc |
| プロセスモデル | Core プロセスと WebView プロセス、セキュリティ上の影響 | core-process-model |
| プロジェクト構造 | src-tauri の構成、tauri.conf.json、機能、ビルドの流れ | core-project-structure |
| アプリサイズ | サイズが小さい理由、Cargo のリリースプロファイル(LTO、strip、opt-level) | concept-size |
| IPC パターン | Brownfield(デフォルト)と Isolation(サンドボックス化、暗号化) | concept-ipc-patterns |
開始
| トピック | 説明 | リファレンス |
|---|---|---|
| プロジェクトの作成 | create-tauri-app と tauri init の比較、開発サーバー URL | start-create-project |
| 前提条件 | システム依存関係、Rust、Node、WebView2、モバイル(Android/iOS) | start-prerequisites |
| フロントエンド | 静的ホストモデル、Vite/Next/Nuxt/SvelteKit/Leptos/Trunk | start-frontend |
| 移行 | Tauri 1.x または 2 beta からのアップグレード、migrate コマンド | start-migrate |
開発
| トピック | 説明 | リファレンス |
|---|---|---|
| 設定ファイル | tauri.conf.json、プラットフォーム別の上書き設定、Cargo.toml、package.json | develop-configuration-files |
| コマンド | #[tauri::command]、invoke、引数、エラー、非同期処理、State、チャネル | develop-commands |
| イベントとチャネル | Emit/listen、グローバルと WebView 固有の違い、Channel によるストリーミング | develop-events-and-channels |
| 状態管理 | app.manage()、コマンド内の State<T>、Mutex | develop-state-management |
| ウィンドウ | ウィンドウの作成(設定と WebviewWindowBuilder)、ラベル、URL、表示状態 | develop-windows |
| アイコン | tauri icon コマンド、bundle.icon、プラットフォーム別の形式 | develop-icons |
| リソース | バンドルされたリソース、パスの解決、$RESOURCE、fs 権限 | develop-resources |
| サイドカー | externalBin、shell プラグイン、Rust/JS からの起動、権限 | develop-sidecar |
| デバッグ | dev と build の違い、Rust コンソール、WebView 開発者ツール、RUST_BACKTRACE | develop-debug |
| テスト | モックランタイム、WebDriver E2E、CI | develop-tests |
| テストのモック | mockIPC、mockWindows、clearMocks(フロントエンドテスト) | develop-tests-mocking |
| WebDriver テスト | tauri-driver、プラットフォームドライバー、Selenium/WebdriverIO、CI | develop-tests-webdriver |
| 依存関係の更新 | npm/Cargo のバージョン同期、tauri とプラグイン | develop-updating-dependencies |
| モバイルプラグイン | Android(Kotlin)、iOS(Swift)、デスクトップとモバイルの実装 | develop-plugins-mobile |
セキュリティ
| トピック | 説明 | 参照 |
|---|---|---|
| ケイパビリティ | どの権限がどのウィンドウに適用されるか、ケイパビリティファイル、リモート、プラットフォーム | security-capabilities |
| 権限 | コマンド、スコープ、権限セットの許可/拒否、プラグインとアプリの権限 | security-permissions |
| スコープ | コマンド単位またはグローバルな許可/拒否、パス/URL パターン | security-scope |
| CSP | Content Security Policy の設定、script-src、style-src | security-csp |
| HTTP ヘッダー | WebView のレスポンスに対する CORS、COOP、Permissions-Policy | security-http-headers |
| ランタイム権限管理 | コアがすべての呼び出しで権限を強制し、拒否された場合は実行されません | security-runtime-authority |
ベストプラクティス
| トピック | 説明 | 参照 |
|---|---|---|
| セキュリティライフサイクル | アップストリーム、開発、ビルド、ランタイム、依存関係、監査、開発サーバー | best-practices-security-lifecycle |
| プラグイン権限の記述 | 自動生成される許可/拒否設定、権限ファイル、デフォルトセット、スキーマのスコープ | best-practices-writing-plugin-permissions |
機能
| トピック | 説明 | 参照 |
|---|---|---|
| プラグイン | プラグイン開発、ライフサイクルフック、コマンド、権限、状態 | features-plugins |
| 公式プラグインの概要 | dialog、fs、shell、store、updater など。用途に応じた選び方 | features-official-plugins-overview |
| ディープリンク | カスタム URL スキーム、App/Universal Links、シングルインスタンスと argv | features-deep-linking |
| アップデーター | アプリ内アップデート — 確認、ダウンロード、インストール、署名、静的/動的エンドポイント | features-updater |
配布
| トピック | 説明 | 参照 |
|---|---|---|
| パッケージング | ビルド、バンドル、インストーラー(DMG、MSI、AppImage など)、署名の概要 | distribute-packaging |
| 署名 | プラットフォームごとのコード署名(macOS、Windows、Linux、Android、iOS) | distribute-signing |
| パイプライン | GitHub Actions(tauri-action)、CI 署名、CrabNebula Cloud | distribute-pipelines |
学ぶ
| トピック | 説明 | 参照 |
|---|---|---|
| メニューとトレイ | ウィンドウメニュー、システムトレイ、Menu/TrayIcon、定義済みアイテム | learn-windows-menus-tray |
| ウィンドウのカスタマイズ | カスタムタイトルバー、装飾、data-tauri-drag-region、透明化(macOS) | learn-window-customization |
| スプラッシュ画面 | 追加ウィンドウ、メインウィンドウの表示/非表示、セットアップタスク、準備完了時に閉じる | learn-splashscreen |
| Node.js のサイドカー | バイナリとしての Node アプリ(pkg)、externalBin、shell プラグイン | learn-sidecar-nodejs |
| プラグイン権限の使用 | プラグインの追加、ケイパビリティ、コマンドの許可、デフォルト権限 | learn-using-plugin-permissions |
| ウィンドウ/プラットフォームごとのケイパビリティ | ウィンドウごとに異なるケイパビリティ、platforms 配列 | learn-capabilities-windows-platforms |
参考資料
| トピック | 説明 | 参考資料 |
|---|---|---|
| CLI | dev、build、icon、init、migrate、bundle | reference-cli |
| 環境変数 | CI、設定の階層、署名、Apple/Windows/Linux、フック環境変数 | reference-environment-variables |
| WebView のバージョン | WebView2(Windows)、WKWebView(macOS/iOS)、WebKitGTK(Linux) | reference-webview-versions |
| コア権限(ACL) | core:default、app、event、window、path、menu、tray、resources | reference-acl-core-permissions |
コメント
Markdown 対応