with one click
remote-tests
Testing against remote executors in integration tests.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Menu
Testing against remote executors in integration tests.
Install with Codex or Claude Copy this prompt, paste it into Codex, Claude, or another assistant, and let it review the skill page and install it for you.
Based on SOC occupation classification
Use when the user asks how to build with OpenAI products or APIs, asks about Codex itself or choosing Codex surfaces, needs up-to-date official documentation with citations, help choosing the latest model for a use case, latest/current/default-model prompting guidance, or model upgrade and prompt-upgrade guidance; use OpenAI docs MCP tools for non-Codex docs questions, use the Codex manual helper first for broad Codex self-knowledge, and restrict fallback browsing to official OpenAI domains.
Run a final code review on a pull request
Install Codex skills into $CODEX_HOME/skills from a curated list or a GitHub repo path. Use when a user asks to list installable skills, install a curated skill, or install a skill from another repo (including private repos).
Create and scaffold plugin directories for Codex with a required `.codex-plugin/plugin.json`, optional plugin folders/files, valid manifest defaults, and personal-marketplace entries by default. Use when Codex needs to create a new personal plugin, add optional plugin structure, generate or update marketplace entries for plugin ordering and availability metadata, or update an existing local plugin during development with the CLI-driven cachebuster and reinstall flow.
Choose Rust types for operating system paths across the Codex repository. Use when defining new path-bearing types or explicitly migrating existing ones.
Babysit a GitHub pull request after creation by continuously polling review comments, CI checks/workflow runs, and mergeability state until the PR is merged/closed or user help is required. Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and keep watching open PRs so fresh review feedback is surfaced promptly. Use when the user asks Codex to monitor a PR, watch CI, handle review comments, or keep an eye on failures and feedback on an open PR.
| name | remote-tests |
| description | Testing against remote executors in integration tests. |
Remote executor tests exercise the app-server/exec-server split to ensure that agent features work in both local and remote execution environments.
Remote executor tests currently require an x86_64 Linux host machine. There are two flavors:
Individual test cases must opt-in to being run against a remote executor.
Use TestCodexBuilder::build_with_auto_env() to opt-in to remote execution in core integration
tests unless the test needs more precise control over its executor.
Start the server with TestAppServer::new_with_auto_env() unless the test defines its own
$CODEX_HOME/environments.toml or will define custom environments at runtime.
Start threads with TestAppServer::send_thread_start_request_with_auto_env() if you've created the
server with the auto_env approach. Omit ThreadStartParams.environments (leave it as None) when
doing so.
If a test doesn't pass in a particular remote executor configuration you can skip it in just that configuration. Include a string reason for future readers when the selected skip macro supports one.
Choose the skip macro by what causes the test to fail:
skip_if_target_windows!: Windows target behavior.skip_if_wine_exec!: Wine-exec runner constraints.skip_if_host_windows!: Windows host constraints.skip_if_remote!: Local-only test behavior.skip_if_no_remote_env!: Remote-only test behavior.Prefer defining tests that run in all host/target configurations by default. See the $path-types
skill for the most common changes required to make tests compatible.
Docker container is built and initialized via ./scripts/test-remote-env.sh. Sourcing this script
in bash also provides the codex_remote_env_cleanup function to use after testing.
To run core integration tests against a Docker remote executor:
bash -c '
set -euo pipefail
unset CODEX_TEST_REMOTE_EXEC_SERVER_URL
source scripts/test-remote-env.sh
trap codex_remote_env_cleanup EXIT
cd codex-rs
just test -p codex-core --test all
'
To run app-server integration tests against a Docker remote executor:
bash -c '
set -euo pipefail
unset CODEX_TEST_REMOTE_EXEC_SERVER_URL
source scripts/test-remote-env.sh
trap codex_remote_env_cleanup EXIT
cd codex-rs
just test -p codex-app-server --test all
'
These tests build an exec-server for Windows and run it under Wine, with the app-server staying on the Linux host. The cross-platform build dependency means they only run in Bazel.
For core integration tests:
bazel test //codex-rs/core:core-all-wine-exec-test
For app-server integration tests:
bazel test //codex-rs/app-server:app-server-all-wine-exec-test
You can use a devbox to run these tests if you are running on a macOS machine.
You can list devboxes via applied_devbox ls, pick the one with codex in the name.
Connect to devbox via ssh <devbox_name>.
Reuse the same checkout of codex in ~/code/codex. Reset files if needed. Multiple checkouts take longer to build and take up more space.
Check whether the SHA and modified files are in sync between remote and local.