※この記事は会話を元にSonnetに書いてもらい、最後に人間が校正しました。
メインPCはノートですが常駐するPCが欲しくなり、旧開発PCを引っ張り出してClaude Codeに手伝ってもらいながらAI開発環境を構築・移行しました。単純な「アプリを入れ直す」だけでは終わらず、旧PCへのリモートアクセス方法から考える羽目になったので、備忘録として残しておきます。
Googleドライブに残していた引継ぎメモが効いた
以前から 開発\開発環境共有 というフォルダをGoogleドライブ上に用意していて、claude-code-setup-list.md・引継ぎ情報.md・installed-software.md・gitconfig.txt・VSCodeの設定一式などを置いていました。旧PCでClaude Codeに「Gの開発環境から情報を拾って」と伝えるだけで、このフォルダを見つけて内容を読み込み、現PCの状態と突き合わせて何が足りないかを整理してくれました。
導入済みソフトの一覧にwinget IDまで添えておいたのも効果的で、Arduino IDEやCADツールなど「そのまま自動インストールしていいもの」と「バージョンやライセンスの都合で確認が要るもの」を自分で判断して仕分けてくれました。
ただし、肝心なものはドライブに無かった
~/.claude/settings.json(hooksやパーミッション設定)、グローバルCLAUDE.md、独自ツールrtk.exe(トークン最適化フック)などは、そもそもGoogleドライブに置いていませんでした。同期対象から外していたのを完全に忘れていて、「旧PCから丸ごとコピー」とだけメモに書いて安心していたのが裏目に出た形です。
結局、旧PCに直接アクセスする必要が出てきました。
新PCへのリモートアクセス問題
新PCは普段電源を落としているので、リモートデスクトップで繋ぐにも先に起動させる必要があります。真っ先に検討したのはWake-on-LANでしたが、常設しているネットワーク機器・ルーターがWoLに対応しておらず断念。
代わりに使ったのが、BIOS側の「AC電源切断後の復帰(Restore on AC Power Loss)」という設定です。これを「常にON」にしておくと、通電が復帰した瞬間に自動で起動するようになります。あとはスマートプラグでコンセント自体を遠隔でON/OFFすればいい、という発想です。WoLのようにLAN経由のマジックパケットを待つのではなく、電源そのものを物理的に落として・入れ直すことで起動をトリガーする力技ですが、ルーターの対応状況に依存しないぶん確実に動きました。(ついでに消費電力もわかります)
これで外出先からでもスマートプラグのアプリで旧PCを起動し、リモートデスクトップで入れる状態を作れました。
ネットワーク共有で直接ファイルを引っ張る
旧PCが起動したら、\\LAPTOP-XXXXX\Users\sin1studio のようにコンピュータ名を指定したUNCパスでホームディレクトリがそのまま見えたので、Claude Codeにこのパスを伝えて .claude/settings.json・CLAUDE.md・RTK.md・statusline-command.sh・rtk.exe・自動メモリ一式・カスタムスキルをまとめてコピーしてもらいました。settings.jsonは新PC側にもうっすら最小限の設定(テーマ設定など)が入っていたので、上書きする前に中身を見て「旧PC側の設定が新PC側を包含している」ことを確認してから置き換える、という慎重な手順を踏んでくれたのが地味に助かりました。
GitHub認証でひと悶着
gh auth login --web でデバイスコード認証を進めていたのですが、最初にコードが表示された直後、私が待ちきれずバックグラウンドプロセスを早々に止めてしまい、せっかくブラウザ側で認証したのにコードが失効するという自爆をやらかしました。もう一度やり直して、今度はプロセスを最後まで走らせたところ、無事 sin1n24 としてログインできました。気が急いて裏でコマンドを止めるとこういう事故が起きる、という良い教訓です。(これはAIが書いた文章そのままですが、ふーんそう認識してたんだーって感じです)
22個のリポジトリを一括clone、PlatformIO CLIも復元
認証さえ通れば、GitHub上の主要リポジトリ(AvaGotchi、MiniKawaRobo、QRevolver、RobotS3RCam、このsin1n24.github.io自体など)をgh repo cloneでループしてまとめてclone。旧PCではファイルが自宅の直下に散らばっていましたが、新PCではC:\Users\sin1n\repos\配下に統一しました。
一方、PlatformIOアーカイブ系(SpecimenLeopardなどGitHub化していない旧プロジェクト)はOneDrive経由で既に同期済みだったので、特に何もせず使える状態でした。GitHubとOneDrive、置き場所を分けておいたのが結果的に役立ちました。
VSCode拡張機能の一括復元が終わった後、PlatformIOのVSCode拡張だけではpioコマンドがPATHに出てこないことに気づき、公式のスタンドアロンインストーラ(get-platformio.py)で ~/.platformio/penv にCore一式を作り、ユーザーPATHに追加してpioコマンドを使えるようにしました。
まとめ
- 開発環境の引継ぎメモをGoogleドライブに置いておく運用は有効だったが、「同期対象から意図的に外したもの」の存在を書き漏らしていた
- 普段シャットダウンしているPCへのリモートアクセスは、WoL非対応でもBIOSの電源復帰設定+スマートプラグで代替できる
- ネットワーク共有(UNCパス)が見えれば、Claude Codeに直接パスを渡すだけで設定ファイルの移送を任せられる
- 焦って裏で動いているコマンドを止めると、認証フローなどはやり直しになる
次PCに乗り換えるときのために、今回洗い出した「ドライブに置き忘れていたもの」は追記しておこうと思います。