Code Remote

必要なもの

  • Mac または Windows 10/11 の PC。Linux は動作する見込みですが、まだテストされていません。
  • Node.js 22 以降。npm でインストールする場合のみ必要です。インストールスクリプトは、新しければあなたの Node.js を使い、そうでなければ coderemote 専用に 1 つダウンロードします。Homebrew は自前で用意します。
  • GitHub または Microsoft アカウント。Microsoft Dev Tunnels へのサインインに使います。
  • iPhone の Code Remote アプリ。TestFlight でベータ公開中です(招待をリクエスト)。

SSH、開いたポート、VPN、VS Code は必要ありません。

1. CLI をインストール

macOS と Linux

ターミナルで実行するインストールスクリプト。Node.js が 22 以降ならそれを使い、そうでなければ ~/.coderemote/runtime に coderemote 専用の Node.js をダウンロードして、PATH に追加します。

インストール

curl -fsSL https://raw.githubusercontent.com/CodeRemoteApp/coderemote/main/install.sh | sh

アップデート

coderemote update

Windows

Windows 10 または 11 の PowerShell で実行するインストールスクリプト。Node.js が 22 以降ならそれを使い、そうでなければ %USERPROFILE%\.coderemote\runtime に coderemote 専用の Node.js をダウンロードして、PATH に追加します。終わったら新しいターミナルを開いてください。

インストール

irm https://raw.githubusercontent.com/CodeRemoteApp/coderemote/main/install.ps1 | iex

アップデート

coderemote update

npm

Node.js 22 以降と npm があればどのシステムでも。pnpm、yarn、bun も使えます。

インストール

npm install -g coderemote

アップデート

coderemote update

Homebrew

macOS と Linux で、Code Remote の tap から。Homebrew は Node.js も一緒にインストールします。

インストール

brew install coderemoteapp/tap/coderemote

アップデート

brew upgrade coderemote

coderemote --version で動作を確認します。Linux では、ターミナルのサポートがインストール時にコンパイルされます。うまくいかない場合は、Linux でインストールに失敗するを参照してください。

2. フォルダを共有

iPhone から届かせたいフォルダに移動して、エージェントを起動します:

$ cd ~/projects/my-app
$ coderemote up

初回の実行では、自動でセットアップが行われます:

  1. Microsoft の Dev Tunnels CLI を ~/.coderemote/bin にダウンロードします(1 回のみ、署名を確認)。
  2. ブラウザが開き、GitHub でサインインします。代わりに Microsoft アカウントを使うには、up の前に coderemote login --microsoft を実行します。
  3. このコンピューター用のプライベートトンネルを作り、QR コードを表示します。
✔ Starting agent
✔ Checking dev tunnels sign-in
✔ Connecting to the relay

  Sharing: /Users/you/projects/my-app
  Access:  sign-in required as you (GitHub)

  Web:  https://…devtunnels.ms/#token=…
  App:  vsremote://pair?url=…&token=…

  [QR code]

3. iPhone をペアリング

iPhone のカメラで QR コードを読み取るか、アプリの + をタップしてそこで読み取ります。その後、アプリはシステムのブラウザで、コンピューターと同じ GitHub または Microsoft アカウントでのサインインを求めます。パスキーや「Sign in with Google」も使えます。

これで完了です。共有フォルダのファイル、Git、ターミナルが iPhone で使えるようになりました。

  1. Quick setup ステップ 1: npm install -g coderemote で CLI をインストールする
  2. Quick setup ステップ 2: cd ~/projects/my-app でプロジェクトに移動する
  3. Quick setup ステップ 3: coderemote up でエージェントを起動する
  4. Quick setup ステップ 4: QR コードを読み取る
アプリの Quick setup でも、同じ手順を案内します。

QR コードとリンクにはアクセストークンが含まれています。どこにも投稿しないでください。漏れた場合は coderemote rotate-token を実行してください。

日常の使い方

ターミナルを開いたままにする

coderemote up はフォアグラウンドで動きます。共有をやめるには Ctrl+C を押すか、ウィンドウを閉じます。ターミナルのセッションも一緒に終了します。

コンピューターを起こしておく

スリープ中のコンピューターは iPhone に応答できません。Mac のノート PC では、エージェントを caffeinate の下で起動すると、動いている間 Mac が起きたままになります:

$ caffeinate -i coderemote up

Windows では、電源接続中に PC がスリープしないよう Settings › System › Power を設定してください。

Windows のターミナル

iPhone から開くターミナルは PowerShell で動きます。PowerShell 7 があれば pwsh、なければ Windows PowerShell です。

再起動してもペアリングは維持されます

トンネルの URL とトークンは実行のたびに変わらないので、ペアリング済みの iPhone は、次に coderemote up を実行すると自動的に再接続します。rotate-token の後にだけ、もう一度読み取りが必要です。

アップデートとアンインストール

新しいバージョンがあると、coderemote up がペアリングリンクの下にお知らせします。coderemote update は、インストールしたときと同じ方法(npm、または pnpm、yarn、bun、Homebrew、あるいはインストールスクリプト自身の Node.js の中)でインストールします。インストールスクリプトをもう一度実行しても同じです。

$ coderemote update

アンインストールするには、まずエージェントを停止し、次に coderemote と、トークンやトンネル設定を保持するそのフォルダを削除します:

macOS と Linux、スクリプトでインストールした場合

$ coderemote stop --all
$ rm -rf ~/.coderemote

その後、スクリプトがシェルの起動ファイル(~/.zshrc、~/.bashrc、~/.profile)に追加した # coderemote の行を削除します。スクリプトがあなたの Node.js を使った場合は npm でインストールされているので、npm uninstall -g coderemote も実行してください。

Windows、スクリプトでインストールした場合

PS> coderemote stop --all
PS> Remove-Item -Recurse -Force ~\.coderemote

その後、Edit environment variables for your account でユーザーの Path から %USERPROFILE%\.coderemote\runtime\bin を削除します。スクリプトがあなたの Node.js を使った場合は npm でインストールされているので、npm uninstall -g coderemote も実行してください。

npm

$ coderemote stop --all
$ npm uninstall -g coderemote
$ rm -rf ~/.coderemote

Homebrew

$ coderemote stop --all
$ brew uninstall coderemote
$ rm -rf ~/.coderemote

~/.coderemote を削除しても、このコンピューターのトンネルは Dev Tunnels アカウントに残ります。それらも削除するには、coderemote を削除する前に coderemote tunnels で一覧表示し、このコンピューターのものを coderemote tunnels delete <id>... --force で削除してください。