Allow Scheduled tasks to target SSH-connected hosts and surface runs in the controlling Codex app
What variant of Codex are you using?
Codex desktop app as the controlling client, connected to a remote host through an SSH connected host (not remote-control pairing). The controlled host runs Codex CLI/app-server (0.145.0 in the observed setup).
What feature would you like to see?
Allow native Scheduled tasks to select an SSH-connected host and a project on that host as the execution target. The controlling Codex app should provide the same schedule management, progress visibility, run history, and result delivery that it provides for local Scheduled tasks.
Current behavior
- The controlling Codex app can open chats and run Codex work on an SSH-connected host.
- The same remote host is not available as a target when creating a Scheduled task.
- A Scheduled task cannot be created from a chat running on that SSH-connected host.
- External host schedulers such as
launchd,cron, orsystemdcan invokecodex exec, but their schedules, progress, failures, and run history are not represented in the controlling app's Scheduled view. - Installing and keeping a full desktop app running on the controlled host solely to obtain native scheduling defeats the purpose of a headless or remotely managed host.
Requested behavior
- Show eligible SSH-connected hosts in the Scheduled task execution-target picker.
- Allow selection of a remote project directory or isolated worktree on the selected host.
- Support both:
- scheduled runs that return to an existing chat on that host; and
- standalone runs that appear separately in Scheduled.
- In the controlling app, display the target host, project path, next run, queued/running/succeeded/failed/missed status, progress, final result, and run history.
- Let a scheduled run continue on the controlled host when the controlling app disconnects, provided the target host remains online and authenticated.
- Define explicit behavior for an offline target, missed runs, overlapping runs, retries, pause/resume, and cancellation.
- Do not require remote-control pairing or a native desktop app on the controlled host; a secure host-side Codex service/app-server should be sufficient.
Security and permissions
- Clearly identify the target host and working directory before schedule creation.
- Preserve the host's sandbox, network, filesystem, and organization policy boundaries.
- Make host registration and schedule execution revocable.
- Avoid copying SSH keys, repository credentials, or other host secrets to the controller.
- Surface when a run cannot proceed because unattended permissions are insufficient.
Acceptance criteria
- A desktop app connected to a host through SSH can create a Scheduled task targeting that host.
- The schedule remains visible and manageable from the controlling app.
- A run started while the controller is disconnected executes on the target host and becomes visible after reconnection.
- Same-chat runs append their results to the selected chat; standalone runs appear in Scheduled.
- The controlling app exposes useful progress and error information without requiring a separate SSH session to inspect logs.
Additional information
This combines two related but currently separate needs:
- #8317 requests first-class scheduling and run management for CLI/headless workflows.
- #23200 requests first-class support for always-on remote/headless hosts without requiring a desktop bridge.
This request focuses specifically on the missing integration between the desktop app's SSH connected-host control plane and native Scheduled execution targets.
No real hostname, username, IP address, private repository name, credential, or project path is included in this report.
4 Comments
related to #26489 real missing ferature
I can reproduce a more confusing variant of this limitation in Codex Desktop.
Steps to reproduce
The selected remote filesystem, project files, project-specific skill, shell, and connected email tool are otherwise accessible from the thread. The missing part is specifically the automation control-plane registration step.
Expected behavior
Either:
The current behavior silently falls back to a normal remote thread. Because the flow begins under Scheduled → Create and preserves the selected remote project in the resulting thread, users can reasonably believe that the automation was registered even though no scheduled task exists.
This appears related to inconsistent exposure of the automation update tool described in #29128, but the user-visible reproduction here specifically starts from the Scheduled creation UI.
Contact: liao.yanjun@foxmail.com
I can confirm this still reproduces on 2026-08-17 with an SSH-connected Codex Desktop project.
Environment
projectKind: "remote"remote-ssh-discoveredcodex-cli 0.146.0Reproduction
automation_update.Actual behavior
automation_update, scheduler, or recurring-task action is present.cron.Expected behavior
Either:
automation_updateand allow the scheduled task to target the selected SSH-connected host/project; orThe current state is especially confusing because the product UI exposes Scheduled tasks and the agent is instructed to call
automation_update, but the corresponding tool is omitted only from the remote-project task's tool surface. This matches the silent normal-thread fallback described in the existing reproduction above.+1 — this is exactly the workflow I need.
I use an always-on headless host through Codex's SSH connected-host feature. Interactive remote work already works well, but Scheduled tasks currently only let me choose the local machine or cloud, so I can't target that existing SSH host.
Ideally the SSH-connected host could be selected directly as the execution target, and scheduled runs would continue there even when the controlling Mac is offline. That would avoid having to build a separate cron/systemd-based automation path just for the same Codex workflow.