{
  "manifest_version": "1",
  "slug": "codex-remote-control",
  "title": "Codex Remote Control",
  "headline": "Run Codex remote control on a server",
  "description": "Run Codex's remote-control daemon on an always-on exe.dev VM and steer it from the ChatGPT app on your phone or desktop while your laptop sleeps.",
  "category": "ai-agents",
  "tags": [
    "codex",
    "codex remote control",
    "codex mobile",
    "chatgpt app",
    "remote coding agent",
    "headless linux",
    "app-server daemon"
  ],
  "url": "https://exe.dev/deploy/codex-remote-control",
  "markdown_url": "https://exe-staging.dev/deploy/codex-remote-control.md",
  "upstream": {
    "website": "https://openai.com/codex/",
    "source": "https://github.com/openai/codex",
    "docs": "https://learn.chatgpt.com/docs/developer-commands#codex-remote-control",
    "license": "Apache-2.0"
  },
  "example_vm_name": "my-codex-rc",
  "time": "5 minutes",
  "stack": [
    {
      "name": "Codex app-server daemon",
      "detail": "preinstalled Codex, started by a systemd user service, with remote control on",
      "data": "~/.codex"
    },
    {
      "name": "OpenAI's relay",
      "detail": "the VM connects out to it; no port is opened on the VM"
    },
    {
      "name": "Your project",
      "detail": "a Git repository",
      "data": "~/project"
    }
  ],
  "access": [
    {
      "url": "the ChatGPT app",
      "who": "private",
      "what": "your phone or computer, signed in to the same ChatGPT account as the VM"
    },
    {
      "url": "ssh my-codex-rc.exe.xyz",
      "who": "private",
      "what": "your terminal, for signing in, pairing and upkeep"
    }
  ],
  "delivers": [
    "The Codex app-server daemon with remote control turned on, run by a systemd user service and back after a reboot",
    "A Git project at `~/project` for Codex to work in"
  ],
  "deployable": true,
  "deploy": {
    "new_vm_url": "https://exe-staging.dev/new?prompt=Set%20up%20Codex%20Remote%20Control%20on%20this%20VM%20by%20following%20the%20exe.dev%20recipe%20at%20https%3A%2F%2Fexe-staging.dev%2Fdeploy%2Fcodex-remote-control.md%20from%20top%20to%20bottom.%0A%0AThe%20recipe%27s%20example%20VM%20name%20is%20my-codex-rc.%20This%20VM%27s%20name%20is%20the%20output%20of%20%60hostname%60%3A%20use%20it%20wherever%20the%20recipe%20writes%20my-codex-rc.%20Skip%20the%20step%20that%20creates%20the%20VM%3B%20you%20are%20on%20it.%0A%0AYou%20are%20done%20when%20all%20of%20these%20are%20true.%20Check%20each%20one%20yourself%3A%0A-%20The%20Codex%20app-server%20daemon%20with%20remote%20control%20turned%20on%2C%20run%20by%20a%20systemd%20user%20service%20and%20back%20after%20a%20reboot%0A-%20A%20Git%20project%20at%20%60~%2Fproject%60%20for%20Codex%20to%20work%20in%0A%0ARun%20the%20VM-side%20commands%20in%20%22Set%20up%20the%20VM%22%20only%3B%20skip%20creating%20the%20VM.%0ADo%20not%20run%20%60codex%20login%60%2C%20%60codex%20logout%60%2C%20%60exeuntu%20configure%20codex%60%20or%0A%60codex%20remote-control%20pair%60%3A%20signing%20in%20to%20ChatGPT%20and%20pairing%20are%20the%0Aowner%27s%20steps%2C%20and%20pairing%20codes%20expire%20within%20minutes.%20Verify%20that%0A%60systemctl%20--user%20is-active%20codex-remote-control%60%20prints%20%60active%60%20and%0Athat%20%60codex%20app-server%20daemon%20version%60%20reports%20%60%22status%22%3A%22running%22%60.%0ASkip%20the%20later%20sections%20and%20the%20FAQ.%20Finish%20by%20telling%20the%20owner%20to%20run%0A%60ssh%20my-codex-rc.exe.xyz%60%20with%20this%20VM%27s%20name%20and%20follow%20%22Sign%20in%20and%0Apair%20your%20phone%22.%0A%0AFinish%20with%20the%20URLs%20I%20should%20open.%0A",
    "terminal": "curl -fsSL https://exe-staging.dev/deploy/codex-remote-control/prompt.txt | ssh exe.dev new --prompt=/dev/stdin",
    "prompt": "Set up Codex Remote Control on this VM by following the exe.dev recipe at https://exe-staging.dev/deploy/codex-remote-control.md from top to bottom.\n\nThe recipe's example VM name is my-codex-rc. This VM's name is the output of `hostname`: use it wherever the recipe writes my-codex-rc. Skip the step that creates the VM; you are on it.\n\nYou are done when all of these are true. Check each one yourself:\n- The Codex app-server daemon with remote control turned on, run by a systemd user service and back after a reboot\n- A Git project at `~/project` for Codex to work in\n\nRun the VM-side commands in \"Set up the VM\" only; skip creating the VM.\nDo not run `codex login`, `codex logout`, `exeuntu configure codex` or\n`codex remote-control pair`: signing in to ChatGPT and pairing are the\nowner's steps, and pairing codes expire within minutes. Verify that\n`systemctl --user is-active codex-remote-control` prints `active` and\nthat `codex app-server daemon version` reports `\"status\":\"running\"`.\nSkip the later sections and the FAQ. Finish by telling the owner to run\n`ssh my-codex-rc.exe.xyz` with this VM's name and follow \"Sign in and\npair your phone\".\n\nFinish with the URLs I should open.\n",
    "prompt_url": "https://exe-staging.dev/deploy/codex-remote-control/prompt.txt"
  },
  "updated": "2026-10-31",
  "related": [
    "codex",
    "t3code",
    "claude-code",
    "exe-mcp",
    "openclaw",
    "pi"
  ]
}
