🛠️ MacosMenubarTuistアプリ
macOSのメニューバーに表示されるアプリを、Swift
📺 まず動画で見る(YouTube)
▶ 【衝撃】最強のAIエージェント「Claude Code」の最新機能・使い方・プログラミングをAIで効率化する超実践術を解説! ↗
※ jpskill.com 編集部が参考用に選んだ動画です。動画の内容と Skill の挙動は厳密には一致しないことがあります。
📜 元の英語説明(参考)
Build, refactor, or review SwiftUI macOS menubar apps that use Tuist.
🇯🇵 日本人クリエイター向け解説
macOSのメニューバーに表示されるアプリを、Swift
※ jpskill.com 編集部が日本のビジネス現場向けに補足した解説です。Skill本体の挙動とは独立した参考情報です。
下記のコマンドをコピーしてターミナル(Mac/Linux)または PowerShell(Windows)に貼り付けてください。 ダウンロード → 解凍 → 配置まで全自動。
mkdir -p ~/.claude/skills && cd ~/.claude/skills && curl -L -o macos-menubar-tuist-app.zip https://jpskill.com/download/3119.zip && unzip -o macos-menubar-tuist-app.zip && rm macos-menubar-tuist-app.zip
$d = "$env:USERPROFILE\.claude\skills"; ni -Force -ItemType Directory $d | Out-Null; iwr https://jpskill.com/download/3119.zip -OutFile "$d\macos-menubar-tuist-app.zip"; Expand-Archive "$d\macos-menubar-tuist-app.zip" -DestinationPath $d -Force; ri "$d\macos-menubar-tuist-app.zip"
完了後、Claude Code を再起動 → 普通に「動画プロンプト作って」のように話しかけるだけで自動発動します。
💾 手動でダウンロードしたい(コマンドが難しい人向け)
- 1. 下の青いボタンを押して
macos-menubar-tuist-app.zipをダウンロード - 2. ZIPファイルをダブルクリックで解凍 →
macos-menubar-tuist-appフォルダができる - 3. そのフォルダを
C:\Users\あなたの名前\.claude\skills\(Win)または~/.claude/skills/(Mac)へ移動 - 4. Claude Code を再起動
⚠️ ダウンロード・利用は自己責任でお願いします。当サイトは内容・動作・安全性について責任を負いません。
🎯 このSkillでできること
下記の説明文を読むと、このSkillがあなたに何をしてくれるかが分かります。Claudeにこの分野の依頼をすると、自動で発動します。
📦 インストール方法 (3ステップ)
- 1. 上の「ダウンロード」ボタンを押して .skill ファイルを取得
- 2. ファイル名の拡張子を .skill から .zip に変えて展開(macは自動展開可)
- 3. 展開してできたフォルダを、ホームフォルダの
.claude/skills/に置く- · macOS / Linux:
~/.claude/skills/ - · Windows:
%USERPROFILE%\.claude\skills\
- · macOS / Linux:
Claude Code を再起動すれば完了。「このSkillを使って…」と話しかけなくても、関連する依頼で自動的に呼び出されます。
詳しい使い方ガイドを見る →- 最終更新
- 2026-05-17
- 取得日時
- 2026-05-17
- 同梱ファイル
- 1
💬 こう話しかけるだけ — サンプルプロンプト
- › Macos Menubar Tuist App を使って、最小構成のサンプルコードを示して
- › Macos Menubar Tuist App の主な使い方と注意点を教えて
- › Macos Menubar Tuist App を既存プロジェクトに組み込む方法を教えて
これをClaude Code に貼るだけで、このSkillが自動発動します。
📖 Skill本文(日本語訳)
※ 原文(英語/中国語)を Gemini で日本語化したものです。Claude 自身は原文を読みます。誤訳がある場合は原文をご確認ください。
macos-menubar-tuist-app
Tuistファーストのワークフローと安定した起動スクリプトを使用して、macOSメニューバーアプリを構築および保守します。ネットワーキング、状態、UIがテスト可能で予測可能な状態を保つように、厳格なアーキテクチャ境界を維持します。
使用するタイミング
- TuistとSwiftUIで構築されたLSUIElementメニューバーユーティリティを開発する場合。
- メニューバーアプリのTuistマニフェスト、起動スクリプト、またはアーキテクチャガイダンスが必要な場合。
コアとなるルール
- 明示的に指示されない限り、アプリはメニューバー専用にしてください。デフォルトでは
LSUIElement = trueを使用します。 - トランスポートとデコードロジックはビューの外に置いてください。SwiftUIのビュー本体からネットワーキングを呼び出さないでください。
- 状態遷移はストア層(
@Observableまたは同等のもの)に置き、行/ビューのプレゼンテーションコードには置かないでください。 - モデルのデコードはAPIの変更に耐えられるようにしてください。オプションフィールド、安全なフォールバック、防御的なパースを使用します。
- Tuistマニフェストを信頼できる唯一の情報源として扱ってください。手動で編集された生成済みのXcodeアーティファクトに依存しないでください。
tuist runがmacOSターゲット/デバイスの解決で信頼できない場合、ローカルでのイテレーションにはスクリプトベースの起動を優先してください。- 生成されたプロジェクトをビルドする場合、ローカルの実行スクリプトでは生の
xcodebuildよりもtuist xcodebuild buildを優先してください。
期待されるファイル構造
デフォルトではこの配置を使用します。
Project.swift: アプリターゲット、設定、リソース、Info.plistキーSources/*Model*.swift: API/ドメインモデルとデコードSources/*Client*.swift: リクエスト、レスポンスマッピング、トランスポートに関する懸念事項Sources/*Store*.swift: 監視可能な状態、更新ポリシー、フィルタリング、キャッシュSources/*Menu*View*.swift: メニューの構成とトップレベルのUI状態Sources/*Row*View*.swift: 行のレンダリングと軽量なインタラクションrun-menubar.sh: 規範的なローカル再起動/ビルド/起動パスstop-menubar.sh: 必要に応じて明示的に停止するためのヘルパー
ワークフロー
- Tuistの所有権を確認する
Tuist.swiftとProject.swift(またはワークスペースマニフェスト)が存在することを確認します。- 起動動作を変更する前に、既存の実行スクリプトを読みます。
- コーディングの仮定の前にバックエンドの動作を調査する
curlを使用して、エンドポイントの形状、認証要件、ページネーションの動作を確認します。- エンドポイントが
limit/pageを無視する場合、ストアでローカルにトリミングする完全リスト処理を実装します。
- レイヤーを下から上に実装する
- まずモデルを定義/調整します。
- クライアントのリクエスト/デコードロジックを追加または更新します。
- ストアの更新、フィルタリング、キャッシュポリシーを更新します。
- 最後にビューを接続します。
- アプリの接続を最小限に保つ
- アプリのエントリは、シーン/メニューの接続と依存性注入に焦点を当ててください。
Appまたはメニューシーンの宣言にビジネスロジックを埋め込まないでください。
- 起動のエルゴノミクスを標準化する
- 実行スクリプトが再起動する前に既存のインスタンスを再起動することを確認します。
- 実行スクリプトが副作用としてXcodeを開かないことを確認します。
- 生成が必要な場合は
tuist generate --no-openを使用します。 - 実行スクリプトが生成されたプロジェクトをビルドする場合、生の
xcodebuildを直接呼び出す代わりにTUIST_SKIP_UPDATE_CHECK=1 tuist xcodebuild build ...を優先してください。
検証マトリックス
編集後に検証を実行します。
TUIST_SKIP_UPDATE_CHECK=1 tuist xcodebuild build -scheme <TargetName> -configuration Debug
起動ワークフローが変更された場合:
./run-menubar.sh
シェルスクリプトが変更された場合:
bash -n run-menubar.sh
bash -n stop-menubar.sh
./run-menubar.sh
失敗パターンと修正方向
-
tuist runがmacOSの宛先を解決できない場合: 規範的なローカル実行パスとしてrun/stopスクリプトを使用します。 -
更新後にメニューUIが遅い、または一貫性がない場合: 派生状態とフィルタリングをストアに移動し、ビューはレンダリング専用に保ちます。
-
APIペイロードの変更によりデコードが壊れる場合: オプションフィールドとデフォルト値でモデルのデコードを緩和し、不足しているデータをUIで安全に表示します。
-
機能が迅速なUIパッチを要求する場合: 行/メニューのプレゼンテーションを変更する前に、モデル/クライアント/ストアで根本原因を追跡します。
完了チェックリスト
- 明示的に変更されない限り、メニューバー専用の動作を維持します。
- ネットワークと状態のロジックをSwiftUIのビュー本体から除外します。
- Tuistマニフェストと実行スクリプトを実際のビルド/実行フローと整合させます。
- 変更された領域に対して検証マトリックスを実行します。
- 実行された具体的なコマンドと結果を報告します。
制限事項
- このスキルは、タスクが上記で説明されているスコープと明確に一致する場合にのみ使用してください。
- 出力を環境固有の検証、テスト、または専門家によるレビューの代わりとして扱わないでください。
- 必要な入力、権限、安全境界、または成功基準が不足している場合は、停止して説明を求めてください。
📜 原文 SKILL.md(Claudeが読む英語/中国語)を展開
macos-menubar-tuist-app
Build and maintain macOS menubar apps with a Tuist-first workflow and stable launch scripts. Preserve strict architecture boundaries so networking, state, and UI remain testable and predictable.
When to Use
- When working on LSUIElement menubar utilities built with Tuist and SwiftUI.
- When you need Tuist manifests, launch scripts, or architecture guidance for a menubar app.
Core Rules
- Keep the app menubar-only unless explicitly told otherwise. Use
LSUIElement = trueby default. - Keep transport and decoding logic outside views. Do not call networking from SwiftUI view bodies.
- Keep state transitions in a store layer (
@Observableor equivalent), not in row/view presentation code. - Keep model decoding resilient to API drift: optional fields, safe fallbacks, and defensive parsing.
- Treat Tuist manifests as the source of truth. Do not rely on hand-edited generated Xcode artifacts.
- Prefer script-based launch for local iteration when
tuist runis unreliable for macOS target/device resolution. - Prefer
tuist xcodebuild buildover rawxcodebuildin local run scripts when building generated projects.
Expected File Shape
Use this placement by default:
Project.swift: app target, settings, resources,Info.plistkeysSources/*Model*.swift: API/domain models and decodingSources/*Client*.swift: requests, response mapping, transport concernsSources/*Store*.swift: observable state, refresh policy, filtering, cachingSources/*Menu*View*.swift: menu composition and top-level UI stateSources/*Row*View*.swift: row rendering and lightweight interactionsrun-menubar.sh: canonical local restart/build/launch pathstop-menubar.sh: explicit stop helper when needed
Workflow
- Confirm Tuist ownership
- Verify
Tuist.swiftandProject.swift(or workspace manifests) exist. - Read existing run scripts before changing launch behavior.
- Probe backend behavior before coding assumptions
- Use
curlto verify endpoint shape, auth requirements, and pagination behavior. - If endpoint ignores
limit/page, implement full-list handling with local trimming in the store.
- Implement layers from bottom to top
- Define/adjust models first.
- Add or update client request/decoding logic.
- Update store refresh, filtering, and cache policy.
- Wire views last.
- Keep app wiring minimal
- Keep app entry focused on scene/menu wiring and dependency injection.
- Avoid embedding business logic in
Appor menu scene declarations.
- Standardize launch ergonomics
- Ensure run script restarts an existing instance before relaunching.
- Ensure run script does not open Xcode as a side effect.
- Use
tuist generate --no-openwhen generation is required. - When the run script builds the generated project, prefer
TUIST_SKIP_UPDATE_CHECK=1 tuist xcodebuild build ...instead of invoking rawxcodebuilddirectly.
Validation Matrix
Run validations after edits:
TUIST_SKIP_UPDATE_CHECK=1 tuist xcodebuild build -scheme <TargetName> -configuration Debug
If launch workflow changed:
./run-menubar.sh
If shell scripts changed:
bash -n run-menubar.sh
bash -n stop-menubar.sh
./run-menubar.sh
Failure Patterns and Fix Direction
-
tuist runcannot resolve the macOS destination: Use run/stop scripts as canonical local run path. -
Menu UI is laggy or inconsistent after refresh: Move derived state and filtering into the store; keep views render-only.
-
API payload changes break decode: Relax model decoding with optional fields and defaults, then surface missing data safely in UI.
-
Feature asks for quick UI patch: Trace root cause in model/client/store before changing row/menu presentation.
Completion Checklist
- Preserve menubar-only behavior unless explicitly changed.
- Keep network and state logic out of SwiftUI view bodies.
- Keep Tuist manifests and run scripts aligned with actual build/run flow.
- Run the validation matrix for touched areas.
- Report concrete commands run and outcomes.
Limitations
- Use this skill only when the task clearly matches the scope described above.
- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.