---
title: ChatGPT AppなしでCodex CLIのみでリモートコントロールを有効化する方法
url: https://roboin.io/article/2026/08/19/enable-remote-control-using-codex-cli/
description: リモートコントロールを使うには、基本的にPC側でChatGPT
  Appを起動しておく必要があります。実は隠しフラグを使用することで、ChatGPT AppをインストールしていなくてもCodex
  CLIのみでリモートコントロールを起動できます。
publishedDate: 2026-08-18T18:56:53.098Z
modifiedDate: 2026-08-18T18:56:53.098Z
thumbnail: https://roboin.io/api/media/file/unsplash-chatgpt-app.jpg
thumbnailAlt: ChatGPTのアプリが表示されたスマートフォンが机の上に置かれている写真
thumbnailCaption: N/A
---

# ChatGPT AppなしでCodex CLIのみでリモートコントロールを有効化する方法

Codexのリモートコントロールを使うと、外出先からでもスマホで自宅のPCのCodexに指示を送信できるため非常に便利です。リモートコントロールを使うには、基本的にPC側でChatGPT Appを起動しておく必要があります。

ChatGPT Appの全体的な品質は素晴らしいのですが、アプリを開いたりプロジェクトを起動したりした直後にPC全体の応答性が著しく低下するという問題があり、筆者はChatGPT Appをアンインストールしてしまいました。

実は隠しフラグを使用することで、ChatGPT AppをインストールしていなくてもCodex CLIのみでリモートコントロールを起動できます。

## Codex CLIからリモートコントロールを起動するコマンド

Codex CLIからリモートコントロールを起動するには、次のコマンドを実行します。

```bash
codex app-server --listen off
```

このコマンドは終了せず、リモートコントロールを利用したい間はコマンドを実行したターミナルを起動したままにしておいてください。これで、PCのChatGPT AppがなくてもスマホのChatGPTアプリからリモートコントロールで遠隔操作できるようになります。

なお、一部の記事では`codex remote-control`でリモートコントロールを起動できると書かれていることがありますが、こちらのコマンドはWindows環境でエラーになりました。

```console
$ codex remote-control
Starting app-server daemon with remote control enabled...
Error: codex app-server daemon lifecycle is only supported on Unix platforms
```

## Codex CLIのみでペアリングしたい場合

前述のリモートコントロールを起動するコマンドを利用するには、ChatGPT Appでリモートコントロールのペアリングを済ませている必要があります。

CLIからは`codex remote-control pair`でペアリングできるのですが、こちらもやはりWindows環境では壊れており、「Error: codex app-server daemon lifecycle is only supported on Unix platforms」というエラーになります。

Windows環境でペアリングするには、次のコマンドを実行します。

```bash
codex app-server --listen ws://127.0.0.1:8765
```

そのコマンドを実行した状態のまま別のターミナルから次のコマンドを実行します。

```powershell
$ws = [Net.WebSockets.ClientWebSocket]::new()
$ct = [Threading.CancellationToken]::None
$ws.ConnectAsync([Uri]"ws://127.0.0.1:8765", $ct).GetAwaiter().GetResult()

function Send-Json($obj) {
    $bytes = [Text.Encoding]::UTF8.GetBytes(
        ($obj | ConvertTo-Json -Depth 10 -Compress)
    )
    $ws.SendAsync(
        [ArraySegment[byte]]::new($bytes),
        [Net.WebSockets.WebSocketMessageType]::Text,
        $true,
        $ct
    ).GetAwaiter().GetResult()
}

function Receive-Json {
    $buffer = New-Object byte[] 65536
    $ms = [IO.MemoryStream]::new()

    do {
        $r = $ws.ReceiveAsync(
            [ArraySegment[byte]]::new($buffer),
            $ct
        ).GetAwaiter().GetResult()

        if ($r.MessageType -eq [Net.WebSockets.WebSocketMessageType]::Close) {
            throw "WebSocket closed"
        }

        $ms.Write($buffer, 0, $r.Count)
    } until ($r.EndOfMessage)

    [Text.Encoding]::UTF8.GetString($ms.ToArray()) | ConvertFrom-Json
}

function Wait-Response($id) {
    do {
        $r = Receive-Json
    } until ($r.id -eq $id)

    if ($r.error) {
        throw $r.error.message
    }

    $r.result
}

Send-Json @{
    method = "initialize"
    id = 1
    params = @{
        clientInfo = @{
            name = "codex_remote_pair"
            title = "Codex Remote Pair"
            version = "1.0"
        }
        capabilities = @{
            experimentalApi = $true
        }
    }
}

$null = Wait-Response 1

Send-Json @{
    method = "initialized"
    params = @{}
}

# 永続的にRemote Controlを有効化
Send-Json @{
    method = "remoteControl/enable"
    id = 2
    params = @{}
}

$null = Wait-Response 2

# ペアリングコードを発行
Send-Json @{
    method = "remoteControl/pairing/start"
    id = 3
    params = @{
        manualCode = $true
    }
}

(Wait-Response 3).manualPairingCode

$ws.Dispose()
```

ペアリングコードが出力されるので、スマホのChatGPTのペアリング画面で「手動でペアリング」からペアリングコードを入力するとペアリングできます。`codex app-server --listen ws://127.0.0.1:8765`を終了して`codex app-server --listen off`を実行するとスマホから接続できるようになります。

## Verification details and sources

### Verification environment

- OS：Windows 11
- Codex CLIバージョン0.147.0

### Verification details

Windows環境において`codex remote-control`がエラーになり、`codex app-server --remote-control --listen off`では問題なくリモートコントロールを起動できることを確認

### Last verification date

2026-08-18T18:45:00.000Z

### Changelog

- 2026年8月19日午前3時56分：初版公開
- 2026年8月25日午前2時50分：初版で記載していたコマンドが不安定だったため、より安定したコマンドに変更