最終更新:2026-11-12。Mac 版は別のページに、全部の AI に共通のルールの作り方は共通 AGENTS.md の作り方にまとめています。
はじめに
Windows に5つの AI のコマンド(CLI)と作業アプリ Orca を入れ、共通ルールと MCP をそろえる手順です。最後に、Windows で Flutter のアプリを書き、iPhone 向けのビルドを Mac の Xcode で行う手順も入れています。
- 対象:Windows 11。管理者の権限のあるユーザーで行う(管理者の権限が要る場面では「ユーザー アカウント制御」の確認画面が出る)
- 用語:CLI = ターミナルで動かすコマンド版のアプリ。MCP = AI から外のサービス(Gmail・Obsidian など)を使うためのつなぎ口。PATH = コマンドを探す場所の一覧
- 入力例は PowerShell(Windows Terminal など)で打つ。
PS>は入力待ちの記号なので、その後ろだけを入力する <…>の部分は、下の表に従って自分の値に置き換える- Mac 版は別のページ(Mac で AI 開発環境を作る)
自分の値に置き換える項目
| このマニュアルの表記 | 意味 | 例 |
|---|---|---|
you@example.com | Google アカウントのメールアドレス | — |
$VAULT | Obsidian の Vault(共用のノート置き場)の場所 | G:\マイドライブ\AIVault |
%USERPROFILE%\.keys\keys.txt | キー・パスワードの置き場所(その PC の中だけ。同期しない) | C:\Users\<ユーザー名>\.keys\keys.txt |
mac1 | iPhone 向けのビルドに使う Mac の SSH の接続名 | — |
<ポート> | Obsidian の Local REST API のポート番号 | プラグインの設定画面に出る番号 |
ABC | Linear のチームのキー | — |
最初に PowerShell で次を実行しておくと、この後の入力例をそのまま使えます。
PS> $VAULT = 'G:\マイドライブ\AIVault'
PS> New-Item -ItemType Directory -Force "$HOME\.keys" | Out-Null
PS> if (-not (Test-Path "$HOME\.keys\keys.txt")) { New-Item -ItemType File "$HOME\.keys\keys.txt" | Out-Null }
.keysは Google ドライブや Vault の中に作らない。キーが同期されてしまうため
動作を確かめた版(2026-11 時点)
| 種類 | 名前 | 版 | 入れ方 |
|---|---|---|---|
| 下準備 | Node.js | 26.12.1 | winget install OpenJS.NodeJS |
| 下準備 | Git | 2.56.0 | winget install Git.Git |
| 下準備 | GitHub CLI(gh) | 2.103.3 | winget install GitHub.cli |
| 下準備 | uv | 0.13.7 | winget install astral-sh.uv |
| AI の CLI | Claude Code | 2.1.322 | 公式のスクリプト |
| AI の CLI | Codex | 0.167.1 | 公式のスクリプト |
| AI の CLI | Antigravity CLI(agy) | 1.5.6 | 公式のスクリプト |
| AI の CLI | Grok | 1.0.77 | 公式のスクリプト |
| AI の CLI | cursor-agent | 2026.11.11 | 公式のスクリプト |
| アプリ | Orca | 1.4.256 | 公式サイト |
| アプリ | Obsidian | 1.14.5 | 公式サイト |
| Flutter | Flutter SDK | 3.50.0 | git で取得 |
- これより新しい版でも、手順は基本的に同じです。画面やコマンドが変わっていたら、公式の説明を優先してください
- 各アプリの公式サイトは、末尾の「公式サイト一覧」にまとめています
作業の順番
- 下準備(winget で Node・Git・gh・uv、PATH、実行ポリシー)
- AI の CLI を入れてログイン
- アプリを入れる
- 共通ルール(AGENTS.md)を各 AI につなぐ
- MCP を各 AI に登録
- 動作確認
- Flutter と Xcode(Windows で書き、Mac でビルド)
全体の構成

5つの AI は、共通ルールを Vault の AGENTS.md から読み、外のサービスには MCP でつながります。キーは %USERPROFILE%\.keys にだけ置きます。
手順の流れ

手順1 下準備(約30分)
AI の CLI を入れる土台として、winget(Windows 標準のアプリの入れ物管理ツール)で Node.js・Git・gh・uv を入れます。
1-1 winget で土台のツールを入れる
PS> winget install --id OpenJS.NodeJS -e
PS> winget install --id Git.Git -e
PS> winget install --id GitHub.cli -e
PS> winget install --id astral-sh.uv -e
- node = MCP(
npxで動くもの)に必要。uv = Python 製の MCP(Google Workspace MCP など)を動かすのに必要 - Node.js・Git・gh は、途中で「ユーザー アカウント制御」の確認画面が出る。画面の前で「はい」を押す。押さないと、何も表示されないまま止まる。確認画面がほかのウィンドウの後ろに隠れることがある(タスクバーの盾のアイコン)
- winget が
8A15002Bで終わるのは「もう入っている」の意味で、失敗ではない - 入れたら PowerShell を開き直す(PATH が新しくなる)
1-2 PATH に .local\bin を足す
Claude Code と cursor-agent は %USERPROFILE%\.local\bin に入ります。ユーザーの PATH に入っていないと、新しい端末で claude が見つかりません。
PS> $u = [Environment]::GetEnvironmentVariable('Path', 'User')
PS> [Environment]::SetEnvironmentVariable('Path', $u.TrimEnd(';') + ";$HOME\.local\bin", 'User')
- 変える前の値(
$u)は、メモ帳などに控えておく
1-3 PowerShell の実行ポリシー
cursor-agent や、この手順で作る MCP の起動用スクリプトは PowerShell のスクリプト(.ps1)です。Windows の初期設定ではスクリプトの実行が止められているので、自分のユーザーだけ RemoteSigned(この PC で作ったものは動かし、ネットから落としたものは署名があるときだけ動かす)にします。
PS> Set-ExecutionPolicy -Scope CurrentUser RemoteSigned
PS> Get-ExecutionPolicy -List
1-4 SSH の鍵(Mac でビルドする場合)
手順7 で Mac にコードを送るための鍵です。Windows に標準で入っている OpenSSH を使います。
PS> ssh-keygen -t ed25519 -f "$HOME\.ssh\id_ed25519_mac1"
PS> type "$HOME\.ssh\id_ed25519_mac1.pub" # これを Mac の ~/.ssh/authorized_keys に足す
PS> ssh mac1
%USERPROFILE%\.ssh\config の例:
Host mac1
HostName <Mac のアドレス>
User <Mac のユーザー名>
IdentityFile ~/.ssh/id_ed25519_mac1
- 秘密鍵(
.pubが付かない方)は画面に表示しない。相手に渡すのは.pubだけ - WSL(Windows の中の Linux)の Ubuntu を使う場合は、鍵と設定を Ubuntu の中にも作る。Windows 側と Ubuntu 側は別々
手順2 AI の CLI を入れる(約30分)
5つの AI の CLI と GitHub CLI を入れ、それぞれに一度ログインします。ログインはブラウザーが開くので、その PC の画面の前で行います。使わない AI は飛ばして構いません。
| CLI | 入れるコマンド(PowerShell) | ログイン | 使うアカウント |
|---|---|---|---|
| Claude Code | irm https://claude.ai/install.ps1 | iex | claude を起動 → /login | claude.ai |
| Codex | powershell -ExecutionPolicy ByPass -c "irm https://chatgpt.com/codex/install.ps1 | iex" | codex login | ChatGPT |
| Antigravity CLI | irm https://antigravity.google/cli/install.ps1 | iex | agy を起動 | |
| Grok | irm https://x.ai/cli/install.ps1 | iex | grok login | X(xAI) |
| cursor-agent | irm 'https://cursor.com/install?win32=true' | iex | cursor-agent login | Cursor |
| GitHub CLI | 手順1 で済み | gh auth login | GitHub |
2-1 入れる
- 上の表のコマンドを、PowerShell で1つずつ実行する。入れたら PowerShell を開き直す
- 置き場所:Claude Code は
%USERPROFILE%\.local\bin、Codex は%LOCALAPPDATA%\Programs\OpenAI\Codex\bin(PATH に自動で追加)、agy は%LOCALAPPDATA%\agy\bin、Grok は%USERPROFILE%\.grok\bin、cursor-agent は%LOCALAPPDATA%\cursor-agent - Grok と cursor-agent の両方が
agentというコマンドを作る。cursor-agent はcursor-agentの名前で起動する - 「Git for Windows が要る」と出たら、手順1 の Git を先に入れる
- ネットのスクリプトを
| iexで動かす前に、ブラウザーで URL を開いて中身と配布元を確かめると安心
2-2 ログイン
PS> claude # 初回は配色などを聞かれる → /login → ブラウザーで許可
PS> codex login # 「Sign in with ChatGPT」を選ぶ
PS> agy # 初回起動で Google のログイン画面が開く
PS> grok login
PS> cursor-agent login
PS> gh auth login # GitHub.com → HTTPS → ブラウザー(表示されたコードを入れる)
PS> gh auth setup-git # git の https に gh のログインを使う
- gh のログイン情報は Windows の資格情報マネージャーに保存される
- WSL の Ubuntu の画面で打つと「見つからない」になる。この手順で入れたものは Windows の PowerShell で使う
2-3 確認
PS> claude --version; codex --version; agy --version; grok --version; cursor-agent --version
PS> claude auth status
PS> codex login status # Logged in using ChatGPT
PS> cursor-agent status
PS> gh auth status
手順3 アプリを入れる(約1時間)
画面で使うアプリを入れます。中心は Orca(AI の作業画面)と Obsidian(共用のノート)で、他は必要なものだけで構いません。
| アプリ | 役割 | 入れ方 | 必要度 |
|---|---|---|---|
| Orca | 複数の AI と複数のパソコンを1つの画面で扱う | 公式サイト | 推奨 |
| Obsidian | 共用 Vault(記録と共通ルール) | 公式サイト | 推奨 |
| VS Code | コードの編集 | 公式サイト | 任意 |
| Slack・Linear | 依頼・通知と、作業の管理 | winget install SlackTechnologies.Slack・公式サイト | 任意 |
| Claude | チャット用アプリ | winget install Anthropic.Claude | 参照 |
| ChatGPT | チャット用アプリ(Codex のアプリを含む) | winget install OpenAI.ChatGPT | 参照 |
| Gemini | チャット用アプリ | winget install Google.GeminiDesktop | 参照 |
3-1 Orca
- Orca の公式サイトから Windows 版を入れる
- アプリに付いてくる CLI(
orca)が使えるか確かめる
PS> orca --version
PS> orca status # appRunning: true、runtimeState: ready なら正常
PS> orca account list # Claude・Codex・Antigravity のログイン
- Codex の管理アカウントを使うと、Codex の設定のフォルダー(
CODEX_HOME)が%USERPROFILE%\.codexではなく次になる。手順4・5 で、こちらにも同じ設定を入れる
%APPDATA%\orca\codex-accounts\<アカウントID>\home\
- SSH の接続先:Windows 側の
%USERPROFILE%\.ssh\configの接続名がそのまま接続先になる(WSL の Ubuntu の中の設定は使われない) - Linear:Linear の個人 API キーを、設定 → 連携 →「Linear アクセスを追加」に貼る。
orca linear team listでチームが出れば接続できている - 定期実行・iPhone からの依頼・
orca linearのコマンドなどの使い方は Mac 版と同じ
3-2 Obsidian
- Google ドライブ(デスクトップ版)でサインインする。マイドライブはドライブ文字(例:
G:\マイドライブ)で出る - obsidian.md から入れ、「フォルダーを Vault として開く」→
$VAULTのフォルダーを選ぶ - コミュニティプラグインの「Local REST API」を入れて有効にする(AI の MCP がノートを読み書きする窓口)
- Local REST API の設定で「暗号化なし(HTTP)のサーバー」を有効にし、ポート番号を控える。API キーを
%USERPROFILE%\.keys\keys.txtに控える(手順5-2) - ログイン時に起動するよう登録する。Obsidian が起動していないと、AI からノートを読み書きできない
PS> Set-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run' -Name Obsidian -Value "`"$env:ProgramFiles\Obsidian\Obsidian.exe`""
PS> (Invoke-WebRequest http://127.0.0.1:<ポート>/ -UseBasicParsing).StatusCode # 200 なら待ち受けている
- Obsidian の場所は、入れ方によって
%LOCALAPPDATA%\Programs\Obsidianのこともある。実際の場所に合わせる - Obsidian Sync と Google ドライブを併用しない。併用すると衝突のコピーが大量にできる
- プラグインの設定ファイル(
.obsidian\plugins\obsidian-local-rest-api\data.json)には API キーと証明書の鍵が入っている。中身を画面に表示しない、人に渡さない
3-3 VS Code
PS> code --install-extension anthropic.claude-code
PS> code --install-extension openai.chatgpt
PS> code --install-extension MS-CEINTL.vscode-language-pack-ja
PS> code --install-extension eamodio.gitlens
PS> code --install-extension yzhang.markdown-all-in-one
openai.chatgptは Codex の拡張機能。右のセカンダリサイドバーに出る(Ctrl+Alt+B)- Cursor のアプリを使う場合は cursor.com から入れる。VS Code と同じ作りなので、初回起動で VS Code の設定と拡張機能を取り込める
3-4 GitHub
GitHub CLI(gh)と Web で使います。画面で操作したい場合は GitHub Desktop(winget install GitHub.GitHubDesktop)も使えます。
PS> gh auth login # GitHub.com → HTTPS → ブラウザー(表示されたコードを入れる)
PS> gh auth setup-git # git の push・clone に gh のログインを使う
PS> gh auth status
PS> gh repo clone <ユーザー名>/<リポジトリ名>
- ログイン情報は Windows の資格情報マネージャーに保存される
3-5 AI のデスクトップアプリ(参照)
チャットでの相談や文章作りに使うアプリです。開発の作業は CLI(手順2)で行うので、入れてログインするだけで構いません。
| アプリ | 入れ方 | アカウント | CLI との関係 |
|---|---|---|---|
| Claude | winget install Anthropic.Claude | claude.ai | Claude Code と同じアカウントで、利用枠も共通 |
| ChatGPT | winget install OpenAI.ChatGPT | ChatGPT | Codex と同じアカウント。Codex のアプリは Microsoft Store(winget install --id 9PLM9XGG6VKS -s msstore) |
| Gemini | winget install Google.GeminiDesktop | Antigravity CLI(agy)とは別のアプリ | |
| Grok | Web(grok.com) | X(xAI) | xAI の Windows 用の公式アプリは確認できなかった(2026-11 時点)。Web・X のアプリ・iPhone で使う。アプリのように使いたい場合は、WebCatalog などの第三者製の道具で grok.com を包む方法がある(中身は Web 版) |
- アプリや Web 版は
AGENTS.mdを読まない。共通ルールのうち大事なものを、各アプリの「個人設定」「カスタム指示」に貼る
手順4 共通ルール(AGENTS.md)を各 AI につなぐ(約20分)
Vault に共通ルール AGENTS.md を1つ置き、各 AI の「全体の指示ファイル」をそこへのシンボリックリンク(別の場所のファイルを指すショートカット)にします。ルールを1か所直せば、全端末・全 AI に反映されます。AGENTS.md の書き方は Mac 版の手順4-1 と同じです。
| AI | 全体の指示ファイル |
|---|---|
| Claude Code | %USERPROFILE%\.claude\CLAUDE.md |
| Codex | %USERPROFILE%\.codex\AGENTS.md |
| Codex(Orca 経由) | %APPDATA%\orca\codex-accounts\<ID>\home\AGENTS.md |
| Antigravity CLI | %USERPROFILE%\.gemini\GEMINI.md |
| Grok | %USERPROFILE%\.grok\AGENTS.md |
4-1 リンクを作る(管理者の権限が要る)
Windows でシンボリックリンクを作るには、管理者の権限か開発者モードが要ります。スタートボタンを右クリック →「ターミナル(管理者)」で次を実行します。既にファイルがあるときは、先に控えを取る(Rename-Item ファイル ファイル.bak_日付)。
PS> $V = "$VAULT\AGENTS.md"
PS> New-Item -ItemType Directory -Force "$HOME\.claude","$HOME\.codex","$HOME\.gemini","$HOME\.grok" | Out-Null
PS> cmd /c mklink "$HOME\.claude\CLAUDE.md" "$V"
PS> cmd /c mklink "$HOME\.codex\AGENTS.md" "$V"
PS> cmd /c mklink "$HOME\.gemini\GEMINI.md" "$V"
PS> cmd /c mklink "$HOME\.grok\AGENTS.md" "$V"
PS> cmd /c mklink "$env:APPDATA\orca\codex-accounts\<ID>\home\AGENTS.md" "$V"
PS> Get-Item "$HOME\.claude\CLAUDE.md" | Select-Object LinkType, Target
- 管理者のターミナルでは
$VAULTが空なので、1行目の前に$VAULT = '…'をもう一度実行する - これらをスクリプト(.ps1)に書いて動かすときは、BOM 付きの UTF-8 で保存する。Windows PowerShell 5.1 は BOM なしの UTF-8 を読めず、「マイドライブ」などの日本語が化けて「パスが存在しない」で失敗する
New-Item -ItemType SymbolicLinkはリンク先の存在を確かめるので、Google ドライブが見えないと失敗する。mklinkは確かめない- Google ドライブがつながっていないときはリンク先が見えず、ルールは読まれない
4-2 読まれたか確かめる
ファイルを開かせずに、ルールにしか書いていないことを聞きます。Vault の外(例:%USERPROFILE%)で実行します。
PS> cd ~
PS> claude -p "秘密情報はどこに置くルール?ファイルは開かずに答えて"
PS> codex exec --skip-git-repo-check "秘密情報はどこに置くルール?ファイルは開かずに答えて"
PS> agy -p "秘密情報はどこに置くルール?ファイルは開かずに答えて"
PS> grok -p "秘密情報はどこに置くルール?ファイルは開かずに答えて"
.keysと答えれば読まれている- agy は、登録した MCP が全部つながるまで答えを返さない。キーが無い MCP があると止まり続けるので、MCP を入れた後は手順5 が済んでから確かめる
手順5 MCP を各 AI に登録(約1時間)
MCP ごとに「起動用のスクリプト」(PowerShell の .ps1)を %USERPROFILE%\bin に1つ作り、それを各 AI に同じ名前で登録します。キーはスクリプトが起動のたびに keys.txt から読むので、AI の設定ファイルにキーが平文で残りません。
5-1 登録する MCP
| MCP | 登録名 | 起動 | 事前の準備 |
|---|---|---|---|
| Obsidian | obsidian | %USERPROFILE%\bin\obsidian-mcp.ps1 | Local REST API のキー(手順3-2) |
| Google Workspace | google | %USERPROFILE%\bin\google-mcp.ps1 | Google Cloud で OAuth のクライアントを作る |
| LINE | line | %USERPROFILE%\bin\line-mcp.ps1 | LINE 公式アカウントと Messaging API のトークン |
| Chrome | chrome-devtools | node で直接 | なし |
- 使わない MCP は飛ばして構いません。まず Obsidian だけ入れるのがおすすめ
- Claude Code の Chrome は、Chrome 拡張機能「Claude in Chrome」を入れ、Claude Code で
/chromeを実行してつなぐ(MCP の登録は不要)
5-2 キーのファイルと起動用のスクリプト
%USERPROFILE%\.keys\keys.txt に、1行1つで 名前=値 の形で書きます。
OBSIDIAN_API_KEY=<Local REST API のキー>
GOOGLE_OAUTH_CLIENT_ID=<Google のクライアント ID>
GOOGLE_OAUTH_CLIENT_SECRET=<Google のクライアント シークレット>
LINE_CHANNEL_ACCESS_TOKEN=<LINE のトークン>
共通の部品 %USERPROFILE%\bin\mcp-common.ps1:
$KeysFile = Join-Path $HOME '.keys\keys.txt'
function Get-Key([string]$Name) {
$line = Get-Content -LiteralPath $KeysFile -Encoding UTF8 | Where-Object { $_ -like "$Name=*" } | Select-Object -First 1
if ($line) { $line.Substring($Name.Length + 1).Trim() }
}
$env:Path = [Environment]::GetEnvironmentVariable('Path', 'Machine') + ';' + [Environment]::GetEnvironmentVariable('Path', 'User')
function Start-McpServer([string]$File, [string[]]$Arguments) {
$psi = New-Object System.Diagnostics.ProcessStartInfo
$psi.FileName = $File
$psi.Arguments = ($Arguments | ForEach-Object { if ($_ -match '[\s"]') { '"' + ($_ -replace '"', '\"') + '"' } else { $_ } }) -join ' '
$psi.UseShellExecute = $false
$p = [System.Diagnostics.Process]::Start($psi)
$p.WaitForExit()
exit $p.ExitCode
}
$Node = Join-Path $env:ProgramFiles 'nodejs\node.exe'
$Npx = @((Join-Path $env:ProgramFiles 'nodejs\node_modules\npm\bin\npx-cli.js'), '-y')
$Uvx = (Get-Command uvx.exe).Source
%USERPROFILE%\bin\obsidian-mcp.ps1:
. (Join-Path $PSScriptRoot 'mcp-common.ps1')
$env:OBSIDIAN_API_KEY = Get-Key 'OBSIDIAN_API_KEY'
$env:OBSIDIAN_BASE_URL = 'http://127.0.0.1:<ポート>'
Start-McpServer $Node ($Npx + @('obsidian-mcp-server@3.7.2') + $args)
%USERPROFILE%\bin\google-mcp.ps1:
. (Join-Path $PSScriptRoot 'mcp-common.ps1')
$env:GOOGLE_OAUTH_CLIENT_ID = Get-Key 'GOOGLE_OAUTH_CLIENT_ID'
$env:GOOGLE_OAUTH_CLIENT_SECRET = Get-Key 'GOOGLE_OAUTH_CLIENT_SECRET'
$env:USER_GOOGLE_EMAIL = 'you@example.com'
$env:OAUTHLIB_INSECURE_TRANSPORT = '1' # ログインの戻り先が自分の PC の中(localhost)だけなので http を許す
$env:WORKSPACE_MCP_TRANSPORT = 'stdio'
Start-McpServer $Uvx (@('workspace-mcp@2.3.0', '--single-user', '--tool-tier', 'core',
'--tools', 'gmail', 'drive', 'calendar', 'docs', 'sheets', 'slides', 'tasks', 'contacts') + $args)
- .ps1 は BOM 付きの UTF-8 で保存する(日本語を含む場合)。メモ帳なら「UTF-8 (BOM 付き)」を選ぶ
- npx は
npx.cmdではなくnode.exeからnpx-cli.jsを動かす。AI のアプリが.cmdをうまく起動できないことがあるため - LINE も同じ形(
CHANNEL_ACCESS_TOKENとDESTINATION_USER_IDを入れ、@line/line-bot-mcp-serverを起動)。一斉送信など危ない道具は、AI ごとの許可の設定で止めておく - Python の MCP を自分で動かすときは
PYTHONUTF8=1を付ける。Windows の既定の文字コード(cp932)では日本語が化けることがある
5-3 各 AI に登録する
Obsidian を例にした入力。他の MCP は名前とスクリプトを差し替えます。
PS> $ps = 'powershell.exe','-NoProfile','-ExecutionPolicy','Bypass','-File'
PS> claude mcp add -s user obsidian -- @ps "$HOME\bin\obsidian-mcp.ps1"
PS> $env:CODEX_HOME = "$HOME\.codex"; codex mcp add obsidian -- @ps "$HOME\bin\obsidian-mcp.ps1"
PS> $env:CODEX_HOME = "$env:APPDATA\orca\codex-accounts\<ID>\home"; codex mcp add obsidian -- @ps "$HOME\bin\obsidian-mcp.ps1"
PS> Remove-Item Env:CODEX_HOME
PS> grok mcp add obsidian -- @ps "$HOME\bin\obsidian-mcp.ps1"
PS> agy mcp add obsidian -- @ps "$HOME\bin\obsidian-mcp.ps1"
Chrome(Codex・Grok・agy)はスクリプトを使わず、直接登録します。利用統計の送信は切ります。
PS> $chrome = "$env:ProgramFiles\nodejs\node.exe","$env:ProgramFiles\nodejs\node_modules\npm\bin\npx-cli.js",'-y','chrome-devtools-mcp@1.12.0','--usageStatistics=false','--performanceCrux=false'
PS> grok mcp add chrome-devtools -- @chrome
5-4 初回のログイン
- Google:最初に道具を使ったときにブラウザーが開く。許可は1回で、全 AI が同じログインを使う。許可を待っている間に AI の処理を止めると戻れないので、止めずに待つ
- Claude Code は、登録した後に起動し直すと有効になる
手順6 動作確認
PS> claude mcp list
PS> codex mcp list
PS> grok mcp doctor
PS> agy mcp list
- □ 5つの CLI の
--versionが出る - □ 使う AI と gh がログイン済み
- □ 指示ファイルが
AGENTS.mdへのリンクになっている - □ 各 AI がルールにしか書いていないことを答えられる
- □ 各 AI から Obsidian のノート一覧が取れる
- □ Orca から Claude と Codex のチャットを開ける
- □ AI の設定ファイル(
%USERPROFILE%\.claude.json・%USERPROFILE%\.codex\config.toml・Orca の専用フォルダー・%USERPROFILE%\.grok\config.toml・%USERPROFILE%\.gemini\config\mcp_config.json)にキーが平文で入っていない
手順7 Flutter と Xcode(Windows で書き、Mac でビルド)
iPhone のアプリは、最後のビルドに macOS と Xcode が要ります(Xcode に Windows 版は無い)。Windows で Flutter のコードを書いて Chrome で画面を確かめ、iPhone 向けのビルドとシミュレーターでの実行は Mac に任せます。

- Flutter = Google の、1つのコードで iPhone・Android・Web などのアプリを作る仕組み
- Mac が無い場合は、クラウドの Mac を借りる方法や、Flutter のクラウドビルドのサービスもある(料金は各社のサイトで確認)
7-1 Mac で Xcode を使えるようにする
App Store で Xcode を入れた後、Mac のターミナルで1行ずつ実行します(sudo は Mac の管理者のパスワード)。
$ sudo xcode-select -s /Applications/Xcode.app/Contents/Developer
$ sudo xcodebuild -license accept
$ sudo xcodebuild -runFirstLaunch
$ xcodebuild -downloadPlatform iOS # iOS シミュレーター(約 8GB)
$ brew install --cask flutter
$ brew install cocoapods
$ flutter doctor # Xcode に ✓ が付けば OK
- Xcode を入れても、使う Xcode が Command Line Tools のままのことがある。1行目で切り替える
- Android の × は、Android 向けを作らないなら無視してよい
- 必要な空き容量の目安:Xcode と iOS シミュレーター、Flutter・CocoaPods で 15〜20GB
7-2 Windows に Flutter を入れる
PS> git clone --depth 1 -b stable https://github.com/flutter/flutter.git "$HOME\dev\flutter"
PS> $u = [Environment]::GetEnvironmentVariable('Path', 'User')
PS> [Environment]::SetEnvironmentVariable('Path', $u.TrimEnd(';') + ";$HOME\dev\flutter\bin", 'User')
PS> flutter config --no-analytics
PS> flutter doctor # Flutter・Chrome に ✓ が付けば OK
- Windows アプリとして動かすには Visual Studio(「C++ によるデスクトップ開発」)、Android には Android Studio が要る
- 開発のフォルダーは Google ドライブの外(例:
%USERPROFILE%\dev\)に置く。同期の衝突を避けるため
7-3 アプリを作って Chrome で確かめる
PS> cd $HOME\dev
PS> flutter create --platforms ios,web --org com.example my_app
PS> cd my_app
PS> flutter run -d chrome # 保存するとすぐ画面に反映される(r で再読み込み、q で終了)
--orgはアプリの識別名の前半(例:自分のドメインを逆にしたもの)。com.exampleは試し用
7-4 Mac でビルドして iPhone のシミュレーターで動かす
送る・ビルドする・起動するを1回で行うスクリプト %USERPROFILE%\bin\flutter-ios.ps1 を作ります(BOM 付きの UTF-8 で保存)。Windows 標準の scp で送るので、手順1-4 の SSH の鍵が要ります。
param(
[string]$Project = (Get-Location).Path,
[string]$Device = 'iPhone 16',
[string]$Mac = 'mac1'
)
$Project = (Resolve-Path $Project).Path
$name = Split-Path $Project -Leaf
$bundleId = (Select-String -Path (Join-Path $Project 'ios\Runner.xcodeproj\project.pbxproj') -Pattern 'PRODUCT_BUNDLE_IDENTIFIER = ([^;]+);' |
ForEach-Object { $_.Matches[0].Groups[1].Value } | Where-Object { $_ -notmatch 'RunnerTests' } | Select-Object -First 1)
$skip = 'build', '.dart_tool', '.idea'
ssh $Mac "rm -rf ~/dev/$name && mkdir -p ~/dev/$name"
Get-ChildItem $Project -Force | Where-Object { $skip -notcontains $_.Name } | ForEach-Object { scp -r -q $_.FullName "${Mac}:dev/$name/" }
ssh $Mac @"
export PATH=/opt/homebrew/bin:`$PATH LANG=en_US.UTF-8
cd ~/dev/$name && rm -rf ios/Pods ios/.symlinks ios/Flutter/ephemeral ios/Flutter/Generated.xcconfig ios/Flutter/flutter_export_environment.sh
flutter pub get && flutter build ios --simulator --debug || exit 1
xcrun simctl boot '$Device' 2>/dev/null; open -a Simulator
xcrun simctl install booted build/ios/iphonesimulator/Runner.app
xcrun simctl launch booted $bundleId
"@
PS> cd $HOME\dev\my_app
PS> flutter-ios.ps1 # iPhone 16 で起動
PS> flutter-ios.ps1 -Device "iPhone 16 Pro" # 機種を変える
- 毎回すべてを送り直す簡単な作り。大きなプロジェクトでは、WSL の
rsyncで差分だけ送る方が速い ios/Flutter/Generated.xcconfigなどには Windows のパスが入るので、Mac 側で消して作り直させる- シミュレーターの画面は、VNC(画面共有)で Mac の画面を開いて見る。Mac がスリープしているとビルドできない
- 実機の iPhone で動かすには、Mac に iPhone をつなぐ。App Store に出すには Apple Developer Program(年 99 米ドル。日本円の額は登録の画面に出る)が要る
つまずきやすい点
| 起きること | 原因 | 対処 |
|---|---|---|
| winget のインストールが何も表示されずに止まる | 「ユーザー アカウント制御」の確認画面が出たまま | 画面で「はい」を押す(隠れていたらタスクバーの盾のアイコン) |
新しい端末で claude が見つからない | ユーザーの PATH に .local\bin が無い | 手順1-2 |
cursor-agent が「スクリプトの実行が無効」で動かない | 実行ポリシーが初期設定のまま | 手順1-3。または cursor-agent.cmd で起動 |
| コマンドが「見つからない」 | WSL の Ubuntu の画面で打っている | Windows の PowerShell で打つ |
| スクリプトが「パスが存在しない」、日本語が化ける | PowerShell 5.1 が BOM なしの UTF-8 を読めない | .ps1 は BOM 付きの UTF-8 で保存 |
| シンボリックリンクが作れない | 管理者の権限が無い | 「ターミナル(管理者)」で mklink。または開発者モードをオン |
MCP が '"node"' is not recognized | AI のアプリが古い PATH を受け継いでいる | 起動用のスクリプトで PATH を読み直す(5-2)。AI のアプリを起動し直す |
| agy が答えを返さない | キーの無い MCP がつながらず、agy が待ち続ける | キーを置く。使わない MCP は登録しない |
| Codex に登録したはずの MCP やルールが無い | Orca から起動すると CODEX_HOME が Orca の専用フォルダーを指す | CODEX_HOME を指定して両方に登録する |
agent コマンドが Grok になる | Grok と cursor-agent の両方が agent を作る | cursor-agent の名前で起動する |
秘密情報の扱い
- キー・パスワードは
%USERPROFILE%\.keysだけに置き、Vault・Google ドライブ・AI の設定ファイルには書かない claude mcp add -e KEY=…のようにキーを直接渡すと%USERPROFILE%\.claude.jsonに平文で残る。必ず起動用のスクリプトを通す- このマニュアルを人に渡すときや画面を共有するときは、
keys.txtと Obsidian のプラグインの設定ファイルを開かない
公式サイト一覧
この手順書に出てくるアプリ・ツールの公式ページです(2026-11-12 時点)。
| 種類 | 名前 | 公式ページ | この手順書での役割 |
|---|---|---|---|
| 下準備 | Node.js | nodejs.org | npx で動く MCP |
| 下準備 | Git for Windows | git-scm.com | git |
| 下準備 | uv | docs.astral.sh/uv | Python 製の MCP |
| 下準備 | GitHub CLI | cli.github.com | GitHub の操作 |
| AI の CLI | Claude Code | code.claude.com/docs | AI(Anthropic) |
| AI の CLI | Codex | GitHub(openai/codex) | AI(OpenAI) |
| AI の CLI | Antigravity | antigravity.google | AI(Google) |
| AI の CLI | Grok Build | docs.x.ai/build/overview | AI(xAI) |
| AI の CLI | Cursor CLI | cursor.com/cli | AI(Cursor) |
| アプリ | Orca | onorca.dev(GitHub) | AI の作業画面 |
| アプリ | Obsidian | obsidian.md | 共用のノート |
| アプリ | VS Code | code.visualstudio.com | コードの編集 |
| アプリ | Slack | slack.com/downloads | 依頼と通知 |
| アプリ | Linear | linear.app/download | 作業の管理 |
| アプリ | Claude | claude.com/download | チャット |
| アプリ | ChatGPT・Codex アプリ | chatgpt.com/download | チャット |
| アプリ | Gemini | gemini.google | チャット |
| 拡張機能 | Claude in Chrome | claude.com/chrome | Claude Code から Chrome を操作 |
| Obsidian プラグイン | Local REST API | GitHub | MCP からノートを読み書き |
| MCP | obsidian-mcp-server | GitHub | Obsidian |
| MCP | Google Workspace MCP | GitHub | Gmail・ドライブ・カレンダー |
| MCP | LINE Bot MCP Server | GitHub | LINE |
| MCP | Chrome DevTools MCP | GitHub | Chrome |
| Flutter | Flutter | flutter.dev | iPhone などのアプリ |
| Apple | Xcode | developer.apple.com/xcode | iPhone 向けのビルド |
| Apple | Apple Developer Program | developer.apple.com/jp/programs | App Store への公開 |
