From 24a3aa49dc2c0283209b5e1e9380181835faa329 Mon Sep 17 00:00:00 2001
From: No9 Labs
Date: Thu, 26 Feb 2026 21:05:54 -0500
Subject: [PATCH 1/2] Rebrand from OpenAI Codex to Orbit CLI
Full rebrand of the codebase from "OpenAI Codex" to "Orbit CLI by Recursive":
- Updated all user-facing strings, banners, and error messages
- Rebranded README, NOTICE, SECURITY, CHANGELOG, and all docs
- Updated package.json files (@openai/codex -> @recursive/orbit-cli)
- Updated GitHub issue templates, PR template, and workflow files
- Updated system prompts, skill templates, and onboarding text
- Updated dotslash config, devcontainer, and build metadata
- Preserved internal crate names (codex-core, codex-tui, etc.)
- Preserved ~/.codex/ config directory and CODEX_ env vars
---
.codex/skills/babysit-pr/SKILL.md | 10 +-
.codex/skills/test-tui/SKILL.md | 4 +-
.devcontainer/devcontainer.json | 2 +-
.github/ISSUE_TEMPLATE/1-codex-app.yml | 14 +-
.github/ISSUE_TEMPLATE/2-extension.yml | 7 -
.github/ISSUE_TEMPLATE/3-cli.yml | 18 +-
.github/ISSUE_TEMPLATE/4-bug-report.yml | 4 +-
.github/ISSUE_TEMPLATE/5-feature-request.yml | 12 +-
.github/ISSUE_TEMPLATE/6-docs-issue.yml | 4 +-
.github/dotslash-config.json | 78 +-
.github/pull_request_template.md | 4 +-
.github/workflows/bazel.yml | 4 +-
.github/workflows/cla.yml | 4 +-
.../workflows/close-stale-contributor-prs.yml | 2 +-
.github/workflows/issue-deduplicator.yml | 10 +-
.github/workflows/issue-labeler.yml | 6 +-
.github/workflows/rust-ci.yml | 2 +-
.github/workflows/rust-release-prepare.yml | 2 +-
.github/workflows/rust-release.yml | 15 +-
.github/workflows/shell-tool-mcp-ci.yml | 6 +-
.github/workflows/shell-tool-mcp.yml | 2 +-
AGENTS.md | 4 +-
CHANGELOG.md | 2 +-
MODULE.bazel | 2 +-
NOTICE | 4 +-
README.md | 49 +-
SECURITY.md | 10 +-
announcement_tip.toml | 18 +-
cliff.toml | 6 +-
codex-cli/README.md | 735 +-----------------
codex-cli/package.json | 6 +-
.../app-server-protocol/src/bin/export.rs | 2 +-
.../src/protocol/common.rs | 8 +-
codex-rs/app-server-test-client/src/lib.rs | 6 +-
.../suite/codex_message_processor_flow.rs | 6 +-
.../app-server/tests/suite/v2/initialize.rs | 6 +-
.../tests/suite/v2/thread_resume.rs | 2 +-
.../tests/suite/v2/thread_status.rs | 2 +-
.../app-server/tests/suite/v2/turn_start.rs | 2 +-
codex-rs/cli/src/app_cmd.rs | 2 +-
codex-rs/cli/src/desktop_app/mac.rs | 28 +-
codex-rs/cli/src/main.rs | 24 +-
codex-rs/cloud-tasks/src/cli.rs | 20 +-
.../config/src/requirements_exec_policy.rs | 2 +-
codex-rs/core/gpt-5.1-codex-max_prompt.md | 2 +-
codex-rs/core/gpt-5.2-codex_prompt.md | 2 +-
codex-rs/core/gpt_5_1_prompt.md | 4 +-
codex-rs/core/gpt_5_2_prompt.md | 4 +-
codex-rs/core/gpt_5_codex_prompt.md | 2 +-
codex-rs/core/prompt.md | 4 +-
.../prompt_with_apply_patch_instructions.md | 4 +-
codex-rs/core/src/auth/storage.rs | 2 +-
codex-rs/core/src/codex.rs | 6 +-
codex-rs/core/src/commit_attribution.rs | 6 +-
codex-rs/core/src/config/mod.rs | 4 +-
codex-rs/core/src/config/service.rs | 4 +-
codex-rs/core/src/config_loader/mod.rs | 8 +-
codex-rs/core/src/default_client.rs | 10 +-
codex-rs/core/src/error.rs | 26 +-
codex-rs/core/src/external_agent_config.rs | 10 +-
codex-rs/core/src/features.rs | 16 +-
codex-rs/core/src/mcp_connection_manager.rs | 2 +-
codex-rs/core/src/memories/prompts.rs | 2 +-
codex-rs/core/src/model_provider_info.rs | 4 +-
.../core/src/models_manager/model_info.rs | 2 +-
codex-rs/core/src/network_proxy_loader.rs | 2 +-
codex-rs/core/src/rollout/error.rs | 6 +-
.../core/templates/agents/orchestrator.md | 2 +-
.../core/templates/memories/consolidation.md | 2 +-
.../gpt-5.2-codex_instructions_template.md | 2 +-
codex-rs/core/tests/common/lib.rs | 4 +-
codex-rs/core/tests/suite/undo.rs | 6 +-
codex-rs/core/tests/suite/view_image.rs | 2 +-
codex-rs/debug-client/src/main.rs | 2 +-
codex-rs/default.nix | 2 +-
codex-rs/exec/src/cli.rs | 2 +-
.../src/event_processor_with_human_output.rs | 2 +-
codex-rs/exec/src/lib.rs | 2 +-
codex-rs/feedback/src/lib.rs | 2 +-
codex-rs/login/src/device_code_auth.rs | 4 +-
codex-rs/login/src/server.rs | 14 +-
.../login/tests/suite/login_server_e2e.rs | 10 +-
codex-rs/mcp-server/src/codex_tool_config.rs | 32 +-
codex-rs/mcp-server/src/codex_tool_runner.rs | 4 +-
codex-rs/mcp-server/src/exec_approval.rs | 2 +-
codex-rs/mcp-server/src/message_processor.rs | 12 +-
codex-rs/mcp-server/src/patch_approval.rs | 2 +-
.../mcp-server/tests/common/mcp_process.rs | 2 +-
codex-rs/mcp-server/tests/suite/codex_tool.rs | 8 +-
codex-rs/network-proxy/src/proxy.rs | 2 +-
codex-rs/network-proxy/src/responses.rs | 14 +-
codex-rs/ollama/src/lib.rs | 2 +-
codex-rs/protocol/src/models.rs | 6 +-
.../src/prompts/base_instructions/default.md | 4 +-
codex-rs/protocol/src/protocol.rs | 2 +-
codex-rs/responses-api-proxy/npm/package.json | 6 +-
.../rmcp-client/src/bin/test_stdio_server.rs | 2 +-
.../src/bin/test_streamable_http_server.rs | 2 +-
codex-rs/rmcp-client/src/oauth.rs | 2 +-
.../rmcp-client/src/perform_oauth_login.rs | 2 +-
codex-rs/rmcp-client/tests/resources.rs | 4 +-
.../src/assets/samples/skill-creator/SKILL.md | 46 +-
.../assets/samples/skill-installer/SKILL.md | 4 +-
codex-rs/state/src/bin/logs_client.rs | 2 +-
codex-rs/tui/src/app.rs | 4 +-
.../tui/src/bottom_pane/approval_overlay.rs | 10 +-
codex-rs/tui/src/bottom_pane/chat_composer.rs | 234 +++---
codex-rs/tui/src/bottom_pane/feedback_view.rs | 4 +-
.../src/bottom_pane/list_selection_view.rs | 18 +-
codex-rs/tui/src/bottom_pane/mod.rs | 36 +-
...overlay_additional_permissions_prompt.snap | 2 +-
...l_overlay__tests__network_exec_prompt.snap | 2 +-
...tom_pane__chat_composer__tests__empty.snap | 2 +-
...er__tests__footer_collapse_empty_full.snap | 2 +-
...ollapse_empty_mode_cycle_with_context.snap | 2 +-
...apse_empty_mode_cycle_without_context.snap | 2 +-
...ests__footer_collapse_empty_mode_only.snap | 2 +-
...ests__footer_collapse_plan_empty_full.snap | 2 +-
...se_plan_empty_mode_cycle_with_context.snap | 2 +-
...plan_empty_mode_cycle_without_context.snap | 2 +-
..._footer_collapse_plan_empty_mode_only.snap | 2 +-
...__tests__footer_mode_ctrl_c_interrupt.snap | 2 +-
...poser__tests__footer_mode_ctrl_c_quit.snap | 2 +-
...sts__footer_mode_ctrl_c_then_esc_hint.snap | 2 +-
...tests__footer_mode_esc_hint_backtrack.snap | 2 +-
...ts__footer_mode_esc_hint_from_overlay.snap | 2 +-
...r_mode_overlay_then_external_esc_hint.snap | 2 +-
...__tests__footer_mode_shortcut_overlay.snap | 2 +-
...ack_view__tests__feedback_view_render.snap | 4 +-
...sts__list_selection_footer_note_wraps.snap | 2 +-
..._list_selection_model_picker_width_80.snap | 4 +-
..._list_selection_spacing_with_subtitle.snap | 6 +-
...st_selection_spacing_without_subtitle.snap | 4 +-
...s_visible_when_status_hidden_snapshot.snap | 2 +-
...er_fill_height_without_bottom_padding.snap | 2 +-
...__status_and_queued_messages_snapshot.snap | 2 +-
...hidden_when_height_too_small_height_1.snap | 2 +-
...tom_pane__tests__status_only_snapshot.snap | 2 +-
..._details_and_queued_messages_snapshot.snap | 2 +-
.../tui/src/bottom_pane/status_line_setup.rs | 2 +-
codex-rs/tui/src/chatwidget.rs | 24 +-
codex-rs/tui/src/chatwidget/realtime.rs | 2 +-
...hatwidget__tests__approval_modal_exec.snap | 2 +-
...l_exec_multiline_prefix_no_execpolicy.snap | 2 +-
..._tests__approval_modal_exec_no_reason.snap | 2 +-
...atwidget__tests__approval_modal_patch.snap | 2 +-
...get__tests__approvals_selection_popup.snap | 4 +-
...ts__approvals_selection_popup@windows.snap | 6 +-
...vals_selection_popup@windows_degraded.snap | 6 +-
...i__chatwidget__tests__chatwidget_tall.snap | 2 +-
...dget__tests__exec_approval_modal_exec.snap | 2 +-
..._tests__feedback_upload_consent_popup.snap | 2 +-
...tests__full_access_confirmation_popup.snap | 2 +-
...et__tests__mcp_startup_header_booting.snap | 2 +-
...twidget__tests__model_selection_popup.snap | 2 +-
...t__tests__personality_selection_popup.snap | 2 +-
..._tests__preamble_keeps_working_status.snap | 2 +-
...ayed_interrupted_reconnect_footer_row.snap | 2 +-
..._review_queues_user_messages_snapshot.snap | 2 +-
...ts__slash_copy_no_output_info_message.snap | 2 +-
...atwidget__tests__status_widget_active.snap | 2 +-
...sts__status_widget_and_approval_modal.snap | 2 +-
...ed_exec_begin_restores_working_status.snap | 2 +-
...renders_command_in_single_details_row.snap | 2 +-
..._tui__chatwidget__tests__update_popup.snap | 2 +-
codex-rs/tui/src/chatwidget/tests.rs | 10 +-
codex-rs/tui/src/debug_config.rs | 2 +-
codex-rs/tui/src/history_cell.rs | 14 +-
codex-rs/tui/src/model_migration.rs | 8 +-
codex-rs/tui/src/onboarding/auth.rs | 10 +-
codex-rs/tui/src/onboarding/welcome.rs | 4 +-
codex-rs/tui/src/slash_command.rs | 18 +-
...ter_long_transcript_fresh_header_only.snap | 2 +-
...gration_prompt_shows_for_hidden_model.snap | 4 +-
...ration__tests__model_migration_prompt.snap | 4 +-
...ts__model_migration_prompt_gpt5_codex.snap | 4 +-
...odel_migration_prompt_gpt5_codex_mini.snap | 2 +-
...s__model_migration_prompt_gpt5_family.snap | 2 +-
...te_prompt__tests__update_prompt_modal.snap | 4 +-
codex-rs/tui/src/status/card.rs | 7 +-
...ched_limits_hide_credits_without_flag.snap | 4 +-
..._snapshot_includes_credits_and_limits.snap | 4 +-
..._status_snapshot_includes_forked_from.snap | 4 +-
...tatus_snapshot_includes_monthly_limit.snap | 4 +-
...s_snapshot_includes_reasoning_details.snap | 4 +-
...s_snapshot_shows_empty_limits_message.snap | 4 +-
...snapshot_shows_missing_limits_message.snap | 4 +-
...s_snapshot_shows_stale_limits_message.snap | 4 +-
...snapshot_truncates_in_narrow_terminal.snap | 4 +-
codex-rs/tui/src/tooltips.rs | 16 +-
codex-rs/tui/src/update_action.rs | 8 +-
codex-rs/tui/src/update_prompt.rs | 2 +-
codex-rs/tui/src/updates.rs | 2 +-
codex-rs/tui/src/voice.rs | 2 +-
.../tui/tests/suite/no_panic_on_startup.rs | 2 +-
codex-rs/utils/approval-presets/src/lib.rs | 6 +-
codex-rs/utils/git/src/apply.rs | 2 +-
codex-rs/utils/git/src/ghost_commits.rs | 4 +-
.../sleep-inhibitor/src/linux_inhibitor.rs | 2 +-
codex-rs/utils/sleep-inhibitor/src/macos.rs | 2 +-
.../sleep-inhibitor/src/windows_inhibitor.rs | 2 +-
codex-rs/windows-sandbox-rs/src/firewall.rs | 2 +-
.../windows-sandbox-rs/src/sandbox_users.rs | 2 +-
docs/CLA.md | 8 +-
docs/agents_md.md | 4 +-
docs/authentication.md | 2 +-
docs/config.md | 18 +-
docs/contributing.md | 20 +-
docs/example-config.md | 2 +-
docs/exec.md | 2 +-
docs/execpolicy.md | 2 +-
docs/exit-confirmation-prompt-design.md | 4 +-
docs/getting-started.md | 4 +-
docs/install.md | 8 +-
docs/js_repl.md | 2 +-
docs/open-source-fund.md | 6 +-
docs/prompts.md | 2 +-
docs/sandbox.md | 2 +-
docs/skills.md | 2 +-
docs/slash_commands.md | 2 +-
docs/tui-alternate-screen.md | 16 +-
docs/tui-stream-chunking-validation.md | 2 +-
flake.nix | 2 +-
package.json | 2 +-
sdk/typescript/package.json | 10 +-
shell-tool-mcp/package.json | 6 +-
226 files changed, 693 insertions(+), 1586 deletions(-)
diff --git a/.codex/skills/babysit-pr/SKILL.md b/.codex/skills/babysit-pr/SKILL.md
index 4e44563c7..46cfffb45 100644
--- a/.codex/skills/babysit-pr/SKILL.md
+++ b/.codex/skills/babysit-pr/SKILL.md
@@ -1,6 +1,6 @@
---
name: babysit-pr
-description: Babysit a GitHub pull request after creation by continuously polling CI checks/workflow runs, new review comments, and mergeability state until the PR is ready to merge (or merged/closed). Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and stop only when user help is required (for example CI infrastructure issues, exhausted flaky retries, or ambiguous/blocking situations). 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.
+description: Babysit a GitHub pull request after creation by continuously polling CI checks/workflow runs, new review comments, and mergeability state until the PR is ready to merge (or merged/closed). Diagnose failures, retry likely flaky failures up to 3 times, auto-fix/push branch-related issues when appropriate, and stop only when user help is required (for example CI infrastructure issues, exhausted flaky retries, or ambiguous/blocking situations). Use when the user asks Orbit CLI to monitor a PR, watch CI, handle review comments, or keep an eye on failures and feedback on an open PR.
---
# PR Babysitter
@@ -85,8 +85,8 @@ The watcher surfaces review items from:
- Inline review comments
- Review submissions (COMMENT / APPROVED / CHANGES_REQUESTED)
-It intentionally surfaces Codex reviewer bot feedback (for example comments/reviews from `chatgpt-codex-connector[bot]`) in addition to human reviewer feedback. Most unrelated bot noise should still be ignored.
-For safety, the watcher only auto-surfaces trusted human review authors (for example repo OWNER/MEMBER/COLLABORATOR, plus the authenticated operator) and approved review bots such as Codex.
+It intentionally surfaces reviewer bot feedback (for example comments/reviews from `chatgpt-codex-connector[bot]`) in addition to human reviewer feedback. Most unrelated bot noise should still be ignored.
+For safety, the watcher only auto-surfaces trusted human review authors (for example repo OWNER/MEMBER/COLLABORATOR, plus the authenticated operator) and approved review bots such as Orbit CLI.
On a fresh watcher state file, existing pending review feedback may be surfaced immediately (not only comments that arrive after monitoring starts). This is intentional so already-open review comments are not missed.
When you agree with a comment and it is actionable:
@@ -117,7 +117,7 @@ Commit message defaults:
- `codex: address PR review feedback (#)`
## Monitoring Loop Pattern
-Use this loop in a live Codex session:
+Use this loop in a live Orbit CLI session:
1. Run `--once`.
2. Read `actions`.
@@ -151,7 +151,7 @@ Stop only when one of the following is true:
- PR merged or closed (stop as soon as a poll/snapshot confirms this).
- PR is ready to merge: CI succeeded, no surfaced unaddressed review comments, not blocked on required review approval, and no merge conflict risk.
-- User intervention is required and Codex cannot safely proceed alone.
+- User intervention is required and the agent cannot safely proceed alone.
Keep polling when:
diff --git a/.codex/skills/test-tui/SKILL.md b/.codex/skills/test-tui/SKILL.md
index e58e67730..5bb9a041e 100644
--- a/.codex/skills/test-tui/SKILL.md
+++ b/.codex/skills/test-tui/SKILL.md
@@ -1,9 +1,9 @@
---
name: test-tui
-description: Guide for testing Codex TUI interactively
+description: Guide for testing Orbit CLI TUI interactively
---
-You can start and use Codex TUI to verify changes.
+You can start and use Orbit CLI TUI to verify changes.
Important notes:
diff --git a/.devcontainer/devcontainer.json b/.devcontainer/devcontainer.json
index 1bed79c3c..da8facbd3 100644
--- a/.devcontainer/devcontainer.json
+++ b/.devcontainer/devcontainer.json
@@ -1,5 +1,5 @@
{
- "name": "Codex",
+ "name": "Orbit CLI",
"build": {
"dockerfile": "Dockerfile",
"context": "..",
diff --git a/.github/ISSUE_TEMPLATE/1-codex-app.yml b/.github/ISSUE_TEMPLATE/1-codex-app.yml
index 6e294ee27..ad56eee7b 100644
--- a/.github/ISSUE_TEMPLATE/1-codex-app.yml
+++ b/.github/ISSUE_TEMPLATE/1-codex-app.yml
@@ -1,5 +1,5 @@
-name: ๐ฅ๏ธ Codex App Bug
-description: Report an issue with the Codex App
+name: ๐ฅ๏ธ Orbit App Bug
+description: Report an issue with the Orbit App
labels:
- app
body:
@@ -12,13 +12,7 @@ body:
- type: input
id: version
attributes:
- label: What version of the Codex App are you using (From โAbout Codexโ dialog)?
- validations:
- required: true
- - type: input
- id: plan
- attributes:
- label: What subscription do you have?
+ label: What version of the Orbit App are you using?
validations:
required: true
- type: input
@@ -39,7 +33,7 @@ body:
id: steps
attributes:
label: What steps can reproduce the bug?
- description: Explain the bug and provide a code snippet that can reproduce it. Please include session id, token limit usage, context window usage if applicable.
+ description: Explain the bug and provide a code snippet that can reproduce it.
validations:
required: true
- type: textarea
diff --git a/.github/ISSUE_TEMPLATE/2-extension.yml b/.github/ISSUE_TEMPLATE/2-extension.yml
index 599bc08b4..cacf17420 100644
--- a/.github/ISSUE_TEMPLATE/2-extension.yml
+++ b/.github/ISSUE_TEMPLATE/2-extension.yml
@@ -15,17 +15,10 @@ body:
label: What version of the IDE extension are you using?
validations:
required: true
- - type: input
- id: plan
- attributes:
- label: What subscription do you have?
- validations:
- required: true
- type: input
id: ide
attributes:
label: Which IDE are you using?
- description: Like `VS Code`, `Cursor`, `Windsurf`, etc.
validations:
required: true
- type: input
diff --git a/.github/ISSUE_TEMPLATE/3-cli.yml b/.github/ISSUE_TEMPLATE/3-cli.yml
index 4aff813e5..28eb47956 100644
--- a/.github/ISSUE_TEMPLATE/3-cli.yml
+++ b/.github/ISSUE_TEMPLATE/3-cli.yml
@@ -1,5 +1,5 @@
name: ๐ป CLI Bug
-description: Report an issue in the Codex CLI
+description: Report an issue in the Orbit CLI
labels:
- bug
- needs triage
@@ -10,26 +10,19 @@ body:
Before submitting a new issue, please search for existing issues to see if your issue has already been reported.
If it has, please add a ๐ reaction (no need to leave a comment) to the existing issue instead of creating a new one.
- Make sure you are running the [latest](https://npmjs.com/package/@openai/codex) version of Codex CLI. The bug you are experiencing may already have been fixed.
+ Make sure you are running the latest version of Orbit CLI. The bug you are experiencing may already have been fixed.
- type: input
id: version
attributes:
- label: What version of Codex CLI is running?
- description: use `codex --version`
- validations:
- required: true
- - type: input
- id: plan
- attributes:
- label: What subscription do you have?
+ label: What version of Orbit CLI is running?
+ description: use `orbit --version`
validations:
required: true
- type: input
id: model
attributes:
label: Which model were you using?
- description: Like `gpt-5.2`, `gpt-5.2-codex`, etc.
- type: input
id: platform
attributes:
@@ -41,7 +34,6 @@ body:
id: terminal
attributes:
label: What terminal emulator and version are you using (if applicable)?
- description: Also note any multiplexer in use (screen / tmux / zellij)
description: |
E.g, VSCode, Terminal.app, iTerm2, Ghostty, Windows Terminal (WSL / PowerShell)
- type: textarea
@@ -55,7 +47,7 @@ body:
id: steps
attributes:
label: What steps can reproduce the bug?
- description: Explain the bug and provide a code snippet that can reproduce it. Please include thread id if applicable.
+ description: Explain the bug and provide a code snippet that can reproduce it.
validations:
required: true
- type: textarea
diff --git a/.github/ISSUE_TEMPLATE/4-bug-report.yml b/.github/ISSUE_TEMPLATE/4-bug-report.yml
index 4de884146..1b88110c7 100644
--- a/.github/ISSUE_TEMPLATE/4-bug-report.yml
+++ b/.github/ISSUE_TEMPLATE/4-bug-report.yml
@@ -1,5 +1,5 @@
name: ๐ชฒ Other Bug
-description: Report an issue in Codex Web, integrations, or other Codex components
+description: Report an issue in Orbit CLI or other Orbit components
labels:
- bug
body:
@@ -9,8 +9,6 @@ body:
Before submitting a new issue, please search for existing issues to see if your issue has already been reported.
If it has, please add a ๐ reaction (no need to leave a comment) to the existing issue instead of creating a new one.
- If you need help or support using Codex and are not reporting a bug, please post on [codex/discussions](https://github.com/openai/codex/discussions), where you can ask questions or engage with others on ideas for how to improve codex.
-
- type: textarea
id: actual
attributes:
diff --git a/.github/ISSUE_TEMPLATE/5-feature-request.yml b/.github/ISSUE_TEMPLATE/5-feature-request.yml
index 55ff9fbbc..ff7cda7aa 100644
--- a/.github/ISSUE_TEMPLATE/5-feature-request.yml
+++ b/.github/ISSUE_TEMPLATE/5-feature-request.yml
@@ -1,24 +1,16 @@
name: ๐ Feature Request
-description: Propose a new feature for Codex
+description: Propose a new feature for Orbit CLI
labels:
- enhancement
body:
- type: markdown
attributes:
value: |
- Is Codex missing a feature that you'd like to see? Feel free to propose it here.
+ Is Orbit CLI missing a feature that you'd like to see? Feel free to propose it here.
Before you submit a feature:
1. Search existing issues for similar features. If you find one, ๐ it rather than opening a new one.
- 2. The Codex team will try to balance the varying needs of the community when prioritizing or rejecting new features. Not all features will be accepted. See [Contributing](https://github.com/openai/codex#contributing) for more details.
- - type: input
- id: variant
- attributes:
- label: What variant of Codex are you using?
- description: (e.g., App, IDE Extension, CLI, Web)
- validations:
- required: true
- type: textarea
id: feature
attributes:
diff --git a/.github/ISSUE_TEMPLATE/6-docs-issue.yml b/.github/ISSUE_TEMPLATE/6-docs-issue.yml
index 456602e6a..6a49035bc 100644
--- a/.github/ISSUE_TEMPLATE/6-docs-issue.yml
+++ b/.github/ISSUE_TEMPLATE/6-docs-issue.yml
@@ -5,7 +5,7 @@ body:
- type: markdown
attributes:
value: |
- Thank you for submitting a documentation request. It helps make Codex better.
+ Thank you for submitting a documentation request. It helps make Orbit CLI better.
- type: dropdown
attributes:
label: What is the type of issue?
@@ -24,4 +24,4 @@ body:
- type: textarea
attributes:
label: Where did you find it?
- description: If possible, please provide the URL(s) where you found this issue.
\ No newline at end of file
+ description: If possible, please provide the URL(s) where you found this issue.
diff --git a/.github/dotslash-config.json b/.github/dotslash-config.json
index 00e9032cf..027462c51 100644
--- a/.github/dotslash-config.json
+++ b/.github/dotslash-config.json
@@ -1,82 +1,30 @@
{
"outputs": {
- "codex": {
+ "orbit": {
"platforms": {
"macos-aarch64": {
- "regex": "^codex-aarch64-apple-darwin\\.zst$",
- "path": "codex"
+ "regex": "^orbit-aarch64-apple-darwin\\.zst$",
+ "path": "orbit"
},
"macos-x86_64": {
- "regex": "^codex-x86_64-apple-darwin\\.zst$",
- "path": "codex"
+ "regex": "^orbit-x86_64-apple-darwin\\.zst$",
+ "path": "orbit"
},
"linux-x86_64": {
- "regex": "^codex-x86_64-unknown-linux-musl\\.zst$",
- "path": "codex"
+ "regex": "^orbit-x86_64-unknown-linux-musl\\.zst$",
+ "path": "orbit"
},
"linux-aarch64": {
- "regex": "^codex-aarch64-unknown-linux-musl\\.zst$",
- "path": "codex"
+ "regex": "^orbit-aarch64-unknown-linux-musl\\.zst$",
+ "path": "orbit"
},
"windows-x86_64": {
- "regex": "^codex-x86_64-pc-windows-msvc\\.exe\\.zst$",
- "path": "codex.exe"
+ "regex": "^orbit-x86_64-pc-windows-msvc\\.exe\\.zst$",
+ "path": "orbit.exe"
},
"windows-aarch64": {
- "regex": "^codex-aarch64-pc-windows-msvc\\.exe\\.zst$",
- "path": "codex.exe"
- }
- }
- },
- "codex-responses-api-proxy": {
- "platforms": {
- "macos-aarch64": {
- "regex": "^codex-responses-api-proxy-aarch64-apple-darwin\\.zst$",
- "path": "codex-responses-api-proxy"
- },
- "macos-x86_64": {
- "regex": "^codex-responses-api-proxy-x86_64-apple-darwin\\.zst$",
- "path": "codex-responses-api-proxy"
- },
- "linux-x86_64": {
- "regex": "^codex-responses-api-proxy-x86_64-unknown-linux-musl\\.zst$",
- "path": "codex-responses-api-proxy"
- },
- "linux-aarch64": {
- "regex": "^codex-responses-api-proxy-aarch64-unknown-linux-musl\\.zst$",
- "path": "codex-responses-api-proxy"
- },
- "windows-x86_64": {
- "regex": "^codex-responses-api-proxy-x86_64-pc-windows-msvc\\.exe\\.zst$",
- "path": "codex-responses-api-proxy.exe"
- },
- "windows-aarch64": {
- "regex": "^codex-responses-api-proxy-aarch64-pc-windows-msvc\\.exe\\.zst$",
- "path": "codex-responses-api-proxy.exe"
- }
- }
- },
- "codex-command-runner": {
- "platforms": {
- "windows-x86_64": {
- "regex": "^codex-command-runner-x86_64-pc-windows-msvc\\.exe\\.zst$",
- "path": "codex-command-runner.exe"
- },
- "windows-aarch64": {
- "regex": "^codex-command-runner-aarch64-pc-windows-msvc\\.exe\\.zst$",
- "path": "codex-command-runner.exe"
- }
- }
- },
- "codex-windows-sandbox-setup": {
- "platforms": {
- "windows-x86_64": {
- "regex": "^codex-windows-sandbox-setup-x86_64-pc-windows-msvc\\.exe\\.zst$",
- "path": "codex-windows-sandbox-setup.exe"
- },
- "windows-aarch64": {
- "regex": "^codex-windows-sandbox-setup-aarch64-pc-windows-msvc\\.exe\\.zst$",
- "path": "codex-windows-sandbox-setup.exe"
+ "regex": "^orbit-aarch64-pc-windows-msvc\\.exe\\.zst$",
+ "path": "orbit.exe"
}
}
}
diff --git a/.github/pull_request_template.md b/.github/pull_request_template.md
index 45322e4ff..8cb41ee02 100644
--- a/.github/pull_request_template.md
+++ b/.github/pull_request_template.md
@@ -1,7 +1,7 @@
-# External (non-OpenAI) Pull Request Requirements
+# Pull Request
Before opening this Pull Request, please read the dedicated "Contributing" markdown file or your PR may be closed:
-https://github.com/openai/codex/blob/main/docs/contributing.md
+https://github.com/Recusive/Orbit-CLI/blob/main/docs/contributing.md
If your PR conforms to our contribution guidelines, replace this text with a detailed and high quality description of your changes.
diff --git a/.github/workflows/bazel.yml b/.github/workflows/bazel.yml
index 539e9cb8e..0a4acf919 100644
--- a/.github/workflows/bazel.yml
+++ b/.github/workflows/bazel.yml
@@ -53,7 +53,7 @@ jobs:
node-version-file: codex-rs/node-version.txt
# Some integration tests rely on DotSlash being installed.
- # See https://github.com/openai/codex/pull/7617.
+ # See https://github.com/Recusive/Orbit-CLI/pull/7617.
- name: Install DotSlash
uses: facebook/install-dotslash@v2
@@ -155,7 +155,7 @@ jobs:
test
//...
--test_verbose_timeout_warnings
- --build_metadata=REPO_URL=https://github.com/openai/codex.git
+ --build_metadata=REPO_URL=https://github.com/Recusive/Orbit-CLI.git
--build_metadata=COMMIT_SHA=$(git rev-parse HEAD)
--build_metadata=ROLE=CI
--build_metadata=VISIBILITY=PUBLIC
diff --git a/.github/workflows/cla.yml b/.github/workflows/cla.yml
index bab34d036..68e9465a0 100644
--- a/.github/workflows/cla.yml
+++ b/.github/workflows/cla.yml
@@ -15,7 +15,7 @@ jobs:
cla:
# Only run the CLA assistant for the canonical openai repo so forks are not blocked
# and contributors who signed previously do not receive duplicate CLA notifications.
- if: ${{ github.repository_owner == 'openai' }}
+ if: ${{ github.repository_owner == 'Recusive' }}
runs-on: ubuntu-latest
steps:
- uses: contributor-assistant/github-action@v2.6.1
@@ -43,7 +43,7 @@ jobs:
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
- path-to-document: https://github.com/openai/codex/blob/main/docs/CLA.md
+ path-to-document: https://github.com/Recusive/Orbit-CLI/blob/main/docs/CLA.md
path-to-signatures: signatures/cla.json
branch: cla-signatures
allowlist: codex,dependabot,dependabot[bot],github-actions[bot]
diff --git a/.github/workflows/close-stale-contributor-prs.yml b/.github/workflows/close-stale-contributor-prs.yml
index 43e699288..b83d517b7 100644
--- a/.github/workflows/close-stale-contributor-prs.yml
+++ b/.github/workflows/close-stale-contributor-prs.yml
@@ -13,7 +13,7 @@ permissions:
jobs:
close-stale-contributor-prs:
# Prevent scheduled runs on forks
- if: github.repository == 'openai/codex'
+ if: github.repository == 'Recusive/Orbit-CLI'
runs-on: ubuntu-latest
steps:
- name: Close inactive PRs from contributors
diff --git a/.github/workflows/issue-deduplicator.yml b/.github/workflows/issue-deduplicator.yml
index ae855ab90..694cbe7b5 100644
--- a/.github/workflows/issue-deduplicator.yml
+++ b/.github/workflows/issue-deduplicator.yml
@@ -9,8 +9,8 @@ on:
jobs:
gather-duplicates:
name: Identify potential duplicates
- # Prevent runs on forks (requires OpenAI API key, wastes Actions minutes)
- if: github.repository == 'openai/codex' && (github.event.action == 'opened' || (github.event.action == 'labeled' && github.event.label.name == 'codex-deduplicate'))
+ # Prevent runs on forks (requires API key, wastes Actions minutes)
+ if: github.repository == 'Recusive/Orbit-CLI' && (github.event.action == 'opened' || (github.event.action == 'labeled' && github.event.label.name == 'codex-deduplicate'))
runs-on: ubuntu-latest
permissions:
contents: read
@@ -77,7 +77,7 @@ jobs:
# .github/prompts/issue-deduplicator.txt file is obsolete and removed.
- id: codex-all
name: Find duplicates (pass 1, all issues)
- uses: openai/codex-action@main
+ uses: Recusive/Orbit-CLI-action@main
with:
openai-api-key: ${{ secrets.CODEX_OPENAI_API_KEY }}
allow-users: "*"
@@ -161,7 +161,7 @@ jobs:
- id: codex-open
name: Find duplicates (pass 2, open issues)
if: ${{ steps.normalize-all.outputs.has_matches != 'true' }}
- uses: openai/codex-action@main
+ uses: Recusive/Orbit-CLI-action@main
with:
openai-api-key: ${{ secrets.CODEX_OPENAI_API_KEY }}
allow-users: "*"
@@ -337,7 +337,7 @@ jobs:
'',
...filteredIssues.map((value) => `- #${String(value)}`),
'',
- '*Powered by [Codex Action](https://github.com/openai/codex-action)*'];
+ '*Powered by [Codex Action](https://github.com/Recusive/Orbit-CLI-action)*'];
await github.rest.issues.createComment({
owner: context.repo.owner,
diff --git a/.github/workflows/issue-labeler.yml b/.github/workflows/issue-labeler.yml
index 174b219de..ac0e98a21 100644
--- a/.github/workflows/issue-labeler.yml
+++ b/.github/workflows/issue-labeler.yml
@@ -9,8 +9,8 @@ on:
jobs:
gather-labels:
name: Generate label suggestions
- # Prevent runs on forks (requires OpenAI API key, wastes Actions minutes)
- if: github.repository == 'openai/codex' && (github.event.action == 'opened' || (github.event.action == 'labeled' && github.event.label.name == 'codex-label'))
+ # Prevent runs on forks (requires API key, wastes Actions minutes)
+ if: github.repository == 'Recusive/Orbit-CLI' && (github.event.action == 'opened' || (github.event.action == 'labeled' && github.event.label.name == 'codex-label'))
runs-on: ubuntu-latest
permissions:
contents: read
@@ -20,7 +20,7 @@ jobs:
- uses: actions/checkout@v6
- id: codex
- uses: openai/codex-action@main
+ uses: Recusive/Orbit-CLI-action@main
with:
openai-api-key: ${{ secrets.CODEX_OPENAI_API_KEY }}
allow-users: "*"
diff --git a/.github/workflows/rust-ci.yml b/.github/workflows/rust-ci.yml
index 3122a965a..031343808 100644
--- a/.github/workflows/rust-ci.yml
+++ b/.github/workflows/rust-ci.yml
@@ -513,7 +513,7 @@ jobs:
sudo DEBIAN_FRONTEND=noninteractive apt-get install -y --no-install-recommends pkg-config libcap-dev
fi
# Some integration tests rely on DotSlash being installed.
- # See https://github.com/openai/codex/pull/7617.
+ # See https://github.com/Recusive/Orbit-CLI/pull/7617.
- name: Install DotSlash
uses: facebook/install-dotslash@v2
diff --git a/.github/workflows/rust-release-prepare.yml b/.github/workflows/rust-release-prepare.yml
index c9f11f54f..6bb10c17c 100644
--- a/.github/workflows/rust-release-prepare.yml
+++ b/.github/workflows/rust-release-prepare.yml
@@ -15,7 +15,7 @@ permissions:
jobs:
prepare:
# Prevent scheduled runs on forks (no secrets, wastes Actions minutes)
- if: github.repository == 'openai/codex'
+ if: github.repository == 'Recusive/Orbit-CLI'
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
diff --git a/.github/workflows/rust-release.yml b/.github/workflows/rust-release.yml
index 2d137de6f..439d493f1 100644
--- a/.github/workflows/rust-release.yml
+++ b/.github/workflows/rust-release.yml
@@ -516,18 +516,7 @@ jobs:
tag: ${{ github.ref_name }}
config: .github/dotslash-config.json
- - name: Trigger developers.openai.com deploy
- # Only trigger the deploy if the release is not a pre-release.
- # The deploy is used to update the developers.openai.com website with the new config schema json file.
- if: ${{ !contains(steps.release_name.outputs.name, '-') }}
- continue-on-error: true
- env:
- DEV_WEBSITE_VERCEL_DEPLOY_HOOK_URL: ${{ secrets.DEV_WEBSITE_VERCEL_DEPLOY_HOOK_URL }}
- run: |
- if ! curl -sS -f -o /dev/null -X POST "$DEV_WEBSITE_VERCEL_DEPLOY_HOOK_URL"; then
- echo "::warning title=developers.openai.com deploy hook failed::Vercel deploy hook POST failed for ${GITHUB_REF_NAME}"
- exit 1
- fi
+ # Deploy hook removed during rebrand
# Publish to npm using OIDC authentication.
# July 31, 2025: https://github.blog/changelog/2025-07-31-npm-trusted-publishing-with-oidc-is-generally-available/
@@ -548,7 +537,7 @@ jobs:
with:
node-version: 22
registry-url: "https://registry.npmjs.org"
- scope: "@openai"
+ scope: "@recursive"
# Trusted publishing requires npm CLI version 11.5.1 or later.
- name: Update npm
diff --git a/.github/workflows/shell-tool-mcp-ci.yml b/.github/workflows/shell-tool-mcp-ci.yml
index 739cc6e40..f5852b674 100644
--- a/.github/workflows/shell-tool-mcp-ci.yml
+++ b/.github/workflows/shell-tool-mcp-ci.yml
@@ -39,10 +39,10 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Format check
- run: pnpm --filter @openai/codex-shell-tool-mcp run format
+ run: pnpm --filter @recursive/orbit-shell-tool-mcp run format
- name: Run tests
- run: pnpm --filter @openai/codex-shell-tool-mcp test
+ run: pnpm --filter @recursive/orbit-shell-tool-mcp test
- name: Build
- run: pnpm --filter @openai/codex-shell-tool-mcp run build
+ run: pnpm --filter @recursive/orbit-shell-tool-mcp run build
diff --git a/.github/workflows/shell-tool-mcp.yml b/.github/workflows/shell-tool-mcp.yml
index 1a36d7190..9220159a6 100644
--- a/.github/workflows/shell-tool-mcp.yml
+++ b/.github/workflows/shell-tool-mcp.yml
@@ -440,7 +440,7 @@ jobs:
run: pnpm install --frozen-lockfile
- name: Build (shell-tool-mcp)
- run: pnpm --filter @openai/codex-shell-tool-mcp run build
+ run: pnpm --filter @recursive/orbit-shell-tool-mcp run build
- name: Download build artifacts
uses: actions/download-artifact@v7
diff --git a/AGENTS.md b/AGENTS.md
index 09c32d02f..1d42568f2 100644
--- a/AGENTS.md
+++ b/AGENTS.md
@@ -2,7 +2,7 @@
In the codex-rs folder where the rust code lives:
-- Crate names are prefixed with `codex-`. For example, the `core` folder's crate is named `codex-core`
+- Crate names are prefixed with `codex-` (internal convention). For example, the `core` folder's crate is named `codex-core`
- When using format! and you can inline variables into {}, always do that.
- Install any commands the repo relies on (for example `just`, `rg`, or `cargo-insta`) if they aren't already available before running instructions here.
- Never add or modify any code related to `CODEX_SANDBOX_NETWORK_DISABLED_ENV_VAR` or `CODEX_SANDBOX_ENV_VAR`.
@@ -100,7 +100,7 @@ If you donโt have the tool:
### Integration tests (core)
-- Prefer the utilities in `core_test_support::responses` when writing end-to-end Codex tests.
+- Prefer the utilities in `core_test_support::responses` when writing end-to-end tests.
- All `mount_sse*` helpers return a `ResponseMock`; hold onto it so you can assert against outbound `/responses` POST bodies.
- Use `ResponseMock::single_request()` when a test should only issue one POST, or `ResponseMock::requests()` to inspect every captured `ResponsesRequest`.
diff --git a/CHANGELOG.md b/CHANGELOG.md
index 2eb564c56..ee848a420 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -1 +1 @@
-The changelog can be found on the [releases page](https://github.com/openai/codex/releases).
+The changelog can be found on the [releases page](https://github.com/Recusive/Orbit-CLI/releases).
diff --git a/MODULE.bazel b/MODULE.bazel
index b2115f466..8a60f32de 100644
--- a/MODULE.bazel
+++ b/MODULE.bazel
@@ -1,4 +1,4 @@
-module(name = "codex")
+module(name = "orbit-cli")
bazel_dep(name = "platforms", version = "1.0.0")
bazel_dep(name = "toolchains_llvm_bootstrapped", version = "0.5.6")
diff --git a/NOTICE b/NOTICE
index 2a64a45aa..e0d3211ce 100644
--- a/NOTICE
+++ b/NOTICE
@@ -1,5 +1,5 @@
-OpenAI Codex
-Copyrightย 2025ย OpenAI
+Orbit CLI
+Copyright 2025 Recursive
This project includes code derived from [Ratatui](https://github.com/ratatui/ratatui), licensed under the MIT license.
Copyright (c) 2016-2022 Florian Dehau
diff --git a/README.md b/README.md
index 1e44875f2..139b7cb8f 100644
--- a/README.md
+++ b/README.md
@@ -1,60 +1,21 @@
-npm i -g @openai/codex
or brew install --cask codex
-Codex CLI is a coding agent from OpenAI that runs locally on your computer.
-
-
-
-
-If you want Codex in your code editor (VS Code, Cursor, Windsurf), install in your IDE.
-If you want the desktop app experience, run codex app or visit the Codex App page.
-If you are looking for the cloud-based agent from OpenAI, Codex Web, go to chatgpt.com/codex.
+Orbit CLI โ a local coding agent by Recursive.
---
## Quickstart
-### Installing and running Codex CLI
-
-Install globally with your preferred package manager:
-
-```shell
-# Install using npm
-npm install -g @openai/codex
-```
+### Installing and running Orbit CLI
```shell
-# Install using Homebrew
-brew install --cask codex
+cd codex-rs
+cargo build --release
```
-Then simply run `codex` to get started.
-
-
-You can also go to the latest GitHub Release and download the appropriate binary for your platform.
-
-Each GitHub Release contains many executables, but in practice, you likely want one of these:
-
-- macOS
- - Apple Silicon/arm64: `codex-aarch64-apple-darwin.tar.gz`
- - x86_64 (older Mac hardware): `codex-x86_64-apple-darwin.tar.gz`
-- Linux
- - x86_64: `codex-x86_64-unknown-linux-musl.tar.gz`
- - arm64: `codex-aarch64-unknown-linux-musl.tar.gz`
-
-Each archive contains a single entry with the platform baked into the name (e.g., `codex-x86_64-unknown-linux-musl`), so you likely want to rename it to `codex` after extracting it.
-
-
-
-### Using Codex with your ChatGPT plan
-
-Run `codex` and select **Sign in with ChatGPT**. We recommend signing into your ChatGPT account to use Codex as part of your Plus, Pro, Team, Edu, or Enterprise plan. [Learn more about what's included in your ChatGPT plan](https://help.openai.com/en/articles/11369540-codex-in-chatgpt).
-
-You can also use Codex with an API key, but this requires [additional setup](https://developers.openai.com/codex/auth#sign-in-with-an-api-key).
+Then simply run `orbit` to get started.
## Docs
-- [**Codex Documentation**](https://developers.openai.com/codex)
- [**Contributing**](./docs/contributing.md)
- [**Installing & building**](./docs/install.md)
-- [**Open source fund**](./docs/open-source-fund.md)
This repository is licensed under the [Apache-2.0 License](LICENSE).
diff --git a/SECURITY.md b/SECURITY.md
index d6dd56891..dbc4302be 100644
--- a/SECURITY.md
+++ b/SECURITY.md
@@ -1,13 +1,7 @@
# Security Policy
-Thank you for helping us keep Codex secure!
+Thank you for helping us keep Orbit CLI secure!
## Reporting Security Issues
-The security is essential to OpenAI's mission. We appreciate the work of security researchers acting in good faith to identify and responsibly report potential vulnerabilities, helping us maintain strong privacy and security standards for our users and technology.
-
-Our security program is managed through Bugcrowd, and we ask that any validated vulnerabilities be reported via the [Bugcrowd program](https://bugcrowd.com/engagements/openai).
-
-## Vulnerability Disclosure Program
-
-Our Vulnerability Program Guidelines are defined on our [Bugcrowd program page](https://bugcrowd.com/engagements/openai).
+If you discover a security vulnerability, please report it responsibly by opening an issue at [https://github.com/Recusive/Orbit-CLI/issues](https://github.com/Recusive/Orbit-CLI/issues).
diff --git a/announcement_tip.toml b/announcement_tip.toml
index 247325836..bd41aa281 100644
--- a/announcement_tip.toml
+++ b/announcement_tip.toml
@@ -1,23 +1,11 @@
-# Example announcement tips for Codex TUI.
+# Example announcement tips for Orbit CLI TUI.
# Each [[announcements]] entry is evaluated in order; the last matching one is shown.
# Dates are UTC, formatted as YYYY-MM-DD. The from_date is inclusive and the to_date is exclusive.
# version_regex matches against the CLI version (env!("CARGO_PKG_VERSION")); omit to apply to all versions.
# target_app specify which app should display the announcement (cli, vsce, ...).
[[announcements]]
-content = "Welcome to Codex! Check out the new onboarding flow."
+content = "Welcome to Orbit CLI!"
from_date = "2024-10-01"
-to_date = "2024-10-15"
+to_date = "2030-12-31"
target_app = "cli"
-
-# Test announcement only for local build version until 2026-01-10 excluded (past)
-[[announcements]]
-content = "This is a test announcement"
-version_regex = "^0\\.0\\.0$"
-to_date = "2026-05-10"
-
-[[announcements]]
-content = "**BREAKING NEWS**: `gpt-5.3-codex` is out! Upgrade to `0.98.0` for a faster, smarter, more steerable agent."
-from_date = "2026-02-01"
-to_date = "2026-02-16"
-version_regex = "^0\\.(?:[0-9]|[1-8][0-9]|9[0-7])\\."
diff --git a/cliff.toml b/cliff.toml
index f31e1bd89..99f304d36 100644
--- a/cliff.toml
+++ b/cliff.toml
@@ -3,8 +3,6 @@
[changelog]
header = """
# Changelog
-
-You can install any of these versions: `npm install -g @openai/codex@`
"""
body = """
@@ -37,10 +35,10 @@ commit_parsers = [
{ message = "^feat", group = "๐ Features" },
{ message = "^fix", group = "๐ชฒ Bug Fixes" },
{ message = "^bump", group = "๐ณ๏ธ Release" },
- # Fallback โย skip anything that didn't match the above rules.
+ # Fallback โ skip anything that didn't match the above rules.
{ message = ".*", group = "๐ผ Other" },
]
filter_unconventional = false
sort_commits = "oldest"
-topo_order = false
\ No newline at end of file
+topo_order = false
diff --git a/codex-cli/README.md b/codex-cli/README.md
index f3414f1c4..795a201ec 100644
--- a/codex-cli/README.md
+++ b/codex-cli/README.md
@@ -1,736 +1,5 @@
-OpenAI Codex CLI
+Orbit CLI
Lightweight coding agent that runs in your terminal
-npm i -g @openai/codex
-
> [!IMPORTANT]
-> This is the documentation for the _legacy_ TypeScript implementation of the Codex CLI. It has been superseded by the _Rust_ implementation. See the [README in the root of the Codex repository](https://github.com/openai/codex/blob/main/README.md) for details.
-
-
-
----
-
-
-Table of contents
-
-
-
-- [Experimental technology disclaimer](#experimental-technology-disclaimer)
-- [Quickstart](#quickstart)
-- [Why Codex?](#why-codex)
-- [Security model & permissions](#security-model--permissions)
- - [Platform sandboxing details](#platform-sandboxing-details)
-- [System requirements](#system-requirements)
-- [CLI reference](#cli-reference)
-- [Memory & project docs](#memory--project-docs)
-- [Non-interactive / CI mode](#non-interactive--ci-mode)
-- [Tracing / verbose logging](#tracing--verbose-logging)
-- [Recipes](#recipes)
-- [Installation](#installation)
-- [Configuration guide](#configuration-guide)
- - [Basic configuration parameters](#basic-configuration-parameters)
- - [Custom AI provider configuration](#custom-ai-provider-configuration)
- - [History configuration](#history-configuration)
- - [Configuration examples](#configuration-examples)
- - [Full configuration example](#full-configuration-example)
- - [Custom instructions](#custom-instructions)
- - [Environment variables setup](#environment-variables-setup)
-- [FAQ](#faq)
-- [Zero data retention (ZDR) usage](#zero-data-retention-zdr-usage)
-- [Codex open source fund](#codex-open-source-fund)
-- [Contributing](#contributing)
- - [Development workflow](#development-workflow)
- - [Git hooks with Husky](#git-hooks-with-husky)
- - [Debugging](#debugging)
- - [Writing high-impact code changes](#writing-high-impact-code-changes)
- - [Opening a pull request](#opening-a-pull-request)
- - [Review process](#review-process)
- - [Community values](#community-values)
- - [Getting help](#getting-help)
- - [Contributor license agreement (CLA)](#contributor-license-agreement-cla)
- - [Quick fixes](#quick-fixes)
- - [Releasing `codex`](#releasing-codex)
- - [Alternative build options](#alternative-build-options)
- - [Nix flake development](#nix-flake-development)
-- [Security & responsible AI](#security--responsible-ai)
-- [License](#license)
-
-
-
-
-
----
-
-## Experimental technology disclaimer
-
-Codex CLI is an experimental project under active development. It is not yet stable, may contain bugs, incomplete features, or undergo breaking changes. We're building it in the open with the community and welcome:
-
-- Bug reports
-- Feature requests
-- Pull requests
-- Good vibes
-
-Help us improve by filing issues or submitting PRs (see the section below for how to contribute)!
-
-## Quickstart
-
-Install globally:
-
-```shell
-npm install -g @openai/codex
-```
-
-Next, set your OpenAI API key as an environment variable:
-
-```shell
-export OPENAI_API_KEY="your-api-key-here"
-```
-
-> **Note:** This command sets the key only for your current terminal session. You can add the `export` line to your shell's configuration file (e.g., `~/.zshrc`) but we recommend setting for the session. **Tip:** You can also place your API key into a `.env` file at the root of your project:
->
-> ```env
-> OPENAI_API_KEY=your-api-key-here
-> ```
->
-> The CLI will automatically load variables from `.env` (via `dotenv/config`).
-
-
-Use --provider to use other models
-
-> Codex also allows you to use other providers that support the OpenAI Chat Completions API. You can set the provider in the config file or use the `--provider` flag. The possible options for `--provider` are:
->
-> - openai (default)
-> - openrouter
-> - azure
-> - gemini
-> - ollama
-> - mistral
-> - deepseek
-> - xai
-> - groq
-> - arceeai
-> - any other provider that is compatible with the OpenAI API
->
-> If you use a provider other than OpenAI, you will need to set the API key for the provider in the config file or in the environment variable as:
->
-> ```shell
-> export _API_KEY="your-api-key-here"
-> ```
->
-> If you use a provider not listed above, you must also set the base URL for the provider:
->
-> ```shell
-> export _BASE_URL="https://your-provider-api-base-url"
-> ```
-
-
-
-
-Run interactively:
-
-```shell
-codex
-```
-
-Or, run with a prompt as input (and optionally in `Full Auto` mode):
-
-```shell
-codex "explain this codebase to me"
-```
-
-```shell
-codex --approval-mode full-auto "create the fanciest todo-list app"
-```
-
-That's it - Codex will scaffold a file, run it inside a sandbox, install any
-missing dependencies, and show you the live result. Approve the changes and
-they'll be committed to your working directory.
-
----
-
-## Why Codex?
-
-Codex CLI is built for developers who already **live in the terminal** and want
-ChatGPT-level reasoning **plus** the power to actually run code, manipulate
-files, and iterate - all under version control. In short, it's _chat-driven
-development_ that understands and executes your repo.
-
-- **Zero setup** - bring your OpenAI API key and it just works!
-- **Full auto-approval, while safe + secure** by running network-disabled and directory-sandboxed
-- **Multimodal** - pass in screenshots or diagrams to implement features โจ
-
-And it's **fully open-source** so you can see and contribute to how it develops!
-
----
-
-## Security model & permissions
-
-Codex lets you decide _how much autonomy_ the agent receives and auto-approval policy via the
-`--approval-mode` flag (or the interactive onboarding prompt):
-
-| Mode | What the agent may do without asking | Still requires approval |
-| ------------------------- | --------------------------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------- |
-| **Suggest**
(default) | Read any file in the repo | **All** file writes/patches **Any** arbitrary shell commands (aside from reading files) |
-| **Auto Edit** | Read **and** apply-patch writes to files | **All** shell commands |
-| **Full Auto** | Read/write files Execute shell commands (network disabled, writes limited to your workdir) | - |
-
-In **Full Auto** every command is run **network-disabled** and confined to the
-current working directory (plus temporary files) for defense-in-depth. Codex
-will also show a warning/confirmation if you start in **auto-edit** or
-**full-auto** while the directory is _not_ tracked by Git, so you always have a
-safety net.
-
-Coming soon: you'll be able to whitelist specific commands to auto-execute with
-the network enabled, once we're confident in additional safeguards.
-
-### Platform sandboxing details
-
-The hardening mechanism Codex uses depends on your OS:
-
-- **macOS 12+** - commands are wrapped with **Apple Seatbelt** (`sandbox-exec`).
-
- - Everything is placed in a read-only jail except for a small set of
- writable roots (`$PWD`, `$TMPDIR`, `~/.codex`, etc.).
- - Outbound network is _fully blocked_ by default - even if a child process
- tries to `curl` somewhere it will fail.
-
-- **Linux** - there is no sandboxing by default.
- We recommend using Docker for sandboxing, where Codex launches itself inside a **minimal
- container image** and mounts your repo _read/write_ at the same path. A
- custom `iptables`/`ipset` firewall script denies all egress except the
- OpenAI API. This gives you deterministic, reproducible runs without needing
- root on the host. You can use the [`run_in_container.sh`](../codex-cli/scripts/run_in_container.sh) script to set up the sandbox.
-
----
-
-## System requirements
-
-| Requirement | Details |
-| --------------------------- | --------------------------------------------------------------- |
-| Operating systems | macOS 12+, Ubuntu 20.04+/Debian 10+, or Windows 11 **via WSL2** |
-| Node.js | **16 or newer** (Node 20 LTS recommended) |
-| Git (optional, recommended) | 2.23+ for built-in PR helpers |
-| RAM | 4-GB minimum (8-GB recommended) |
-
-> Never run `sudo npm install -g`; fix npm permissions instead.
-
----
-
-## CLI reference
-
-| Command | Purpose | Example |
-| ------------------------------------ | ----------------------------------- | ------------------------------------ |
-| `codex` | Interactive REPL | `codex` |
-| `codex "..."` | Initial prompt for interactive REPL | `codex "fix lint errors"` |
-| `codex -q "..."` | Non-interactive "quiet mode" | `codex -q --json "explain utils.ts"` |
-| `codex completion ` | Print shell completion script | `codex completion bash` |
-
-Key flags: `--model/-m`, `--approval-mode/-a`, `--quiet/-q`, and `--notify`.
-
----
-
-## Memory & project docs
-
-You can give Codex extra instructions and guidance using `AGENTS.md` files. Codex looks for `AGENTS.md` files in the following places, and merges them top-down:
-
-1. `~/.codex/AGENTS.md` - personal global guidance
-2. `AGENTS.md` at repo root - shared project notes
-3. `AGENTS.md` in the current working directory - sub-folder/feature specifics
-
-Disable loading of these files with `--no-project-doc` or the environment variable `CODEX_DISABLE_PROJECT_DOC=1`.
-
----
-
-## Non-interactive / CI mode
-
-Run Codex head-less in pipelines. Example GitHub Action step:
-
-```yaml
-- name: Update changelog via Codex
- run: |
- npm install -g @openai/codex
- export OPENAI_API_KEY="${{ secrets.OPENAI_KEY }}"
- codex -a auto-edit --quiet "update CHANGELOG for next release"
-```
-
-Set `CODEX_QUIET_MODE=1` to silence interactive UI noise.
-
-## Tracing / verbose logging
-
-Setting the environment variable `DEBUG=true` prints full API request and response details:
-
-```shell
-DEBUG=true codex
-```
-
----
-
-## Recipes
-
-Below are a few bite-size examples you can copy-paste. Replace the text in quotes with your own task. See the [prompting guide](https://github.com/openai/codex/blob/main/codex-cli/examples/prompting_guide.md) for more tips and usage patterns.
-
-| โจ | What you type | What happens |
-| --- | ------------------------------------------------------------------------------- | -------------------------------------------------------------------------- |
-| 1 | `codex "Refactor the Dashboard component to React Hooks"` | Codex rewrites the class component, runs `npm test`, and shows the diff. |
-| 2 | `codex "Generate SQL migrations for adding a users table"` | Infers your ORM, creates migration files, and runs them in a sandboxed DB. |
-| 3 | `codex "Write unit tests for utils/date.ts"` | Generates tests, executes them, and iterates until they pass. |
-| 4 | `codex "Bulk-rename *.jpeg -> *.jpg with git mv"` | Safely renames files and updates imports/usages. |
-| 5 | `codex "Explain what this regex does: ^(?=.*[A-Z]).{8,}$"` | Outputs a step-by-step human explanation. |
-| 6 | `codex "Carefully review this repo, and propose 3 high impact well-scoped PRs"` | Suggests impactful PRs in the current codebase. |
-| 7 | `codex "Look for vulnerabilities and create a security review report"` | Finds and explains security bugs. |
-
----
-
-## Installation
-
-
-From npm (Recommended)
-
-```bash
-npm install -g @openai/codex
-# or
-yarn global add @openai/codex
-# or
-bun install -g @openai/codex
-# or
-pnpm add -g @openai/codex
-```
-
-
-
-
-Build from source
-
-```bash
-# Clone the repository and navigate to the CLI package
-git clone https://github.com/openai/codex.git
-cd codex/codex-cli
-
-# Enable corepack
-corepack enable
-
-# Install dependencies and build
-pnpm install
-pnpm build
-
-# Linux-only: download prebuilt sandboxing binaries (requires gh and zstd).
-./scripts/install_native_deps.sh
-
-# Get the usage and the options
-node ./dist/cli.js --help
-
-# Run the locally-built CLI directly
-node ./dist/cli.js
-
-# Or link the command globally for convenience
-pnpm link
-```
-
-
-
----
-
-## Configuration guide
-
-Codex configuration files can be placed in the `~/.codex/` directory, supporting both YAML and JSON formats.
-
-### Basic configuration parameters
-
-| Parameter | Type | Default | Description | Available Options |
-| ------------------- | ------- | ---------- | -------------------------------- | ---------------------------------------------------------------------------------------------- |
-| `model` | string | `o4-mini` | AI model to use | Any model name supporting OpenAI API |
-| `approvalMode` | string | `suggest` | AI assistant's permission mode | `suggest` (suggestions only)
`auto-edit` (automatic edits)
`full-auto` (fully automatic) |
-| `fullAutoErrorMode` | string | `ask-user` | Error handling in full-auto mode | `ask-user` (prompt for user input)
`ignore-and-continue` (ignore and proceed) |
-| `notify` | boolean | `true` | Enable desktop notifications | `true`/`false` |
-
-### Custom AI provider configuration
-
-In the `providers` object, you can configure multiple AI service providers. Each provider requires the following parameters:
-
-| Parameter | Type | Description | Example |
-| --------- | ------ | --------------------------------------- | ----------------------------- |
-| `name` | string | Display name of the provider | `"OpenAI"` |
-| `baseURL` | string | API service URL | `"https://api.openai.com/v1"` |
-| `envKey` | string | Environment variable name (for API key) | `"OPENAI_API_KEY"` |
-
-### History configuration
-
-In the `history` object, you can configure conversation history settings:
-
-| Parameter | Type | Description | Example Value |
-| ------------------- | ------- | ------------------------------------------------------ | ------------- |
-| `maxSize` | number | Maximum number of history entries to save | `1000` |
-| `saveHistory` | boolean | Whether to save history | `true` |
-| `sensitivePatterns` | array | Patterns of sensitive information to filter in history | `[]` |
-
-### Configuration examples
-
-1. YAML format (save as `~/.codex/config.yaml`):
-
-```yaml
-model: o4-mini
-approvalMode: suggest
-fullAutoErrorMode: ask-user
-notify: true
-```
-
-2. JSON format (save as `~/.codex/config.json`):
-
-```json
-{
- "model": "o4-mini",
- "approvalMode": "suggest",
- "fullAutoErrorMode": "ask-user",
- "notify": true
-}
-```
-
-### Full configuration example
-
-Below is a comprehensive example of `config.json` with multiple custom providers:
-
-```json
-{
- "model": "o4-mini",
- "provider": "openai",
- "providers": {
- "openai": {
- "name": "OpenAI",
- "baseURL": "https://api.openai.com/v1",
- "envKey": "OPENAI_API_KEY"
- },
- "azure": {
- "name": "AzureOpenAI",
- "baseURL": "https://YOUR_PROJECT_NAME.openai.azure.com/openai",
- "envKey": "AZURE_OPENAI_API_KEY"
- },
- "openrouter": {
- "name": "OpenRouter",
- "baseURL": "https://openrouter.ai/api/v1",
- "envKey": "OPENROUTER_API_KEY"
- },
- "gemini": {
- "name": "Gemini",
- "baseURL": "https://generativelanguage.googleapis.com/v1beta/openai",
- "envKey": "GEMINI_API_KEY"
- },
- "ollama": {
- "name": "Ollama",
- "baseURL": "http://localhost:11434/v1",
- "envKey": "OLLAMA_API_KEY"
- },
- "mistral": {
- "name": "Mistral",
- "baseURL": "https://api.mistral.ai/v1",
- "envKey": "MISTRAL_API_KEY"
- },
- "deepseek": {
- "name": "DeepSeek",
- "baseURL": "https://api.deepseek.com",
- "envKey": "DEEPSEEK_API_KEY"
- },
- "xai": {
- "name": "xAI",
- "baseURL": "https://api.x.ai/v1",
- "envKey": "XAI_API_KEY"
- },
- "groq": {
- "name": "Groq",
- "baseURL": "https://api.groq.com/openai/v1",
- "envKey": "GROQ_API_KEY"
- },
- "arceeai": {
- "name": "ArceeAI",
- "baseURL": "https://conductor.arcee.ai/v1",
- "envKey": "ARCEEAI_API_KEY"
- }
- },
- "history": {
- "maxSize": 1000,
- "saveHistory": true,
- "sensitivePatterns": []
- }
-}
-```
-
-### Custom instructions
-
-You can create a `~/.codex/AGENTS.md` file to define custom guidance for the agent:
-
-```markdown
-- Always respond with emojis
-- Only use git commands when explicitly requested
-```
-
-### Environment variables setup
-
-For each AI provider, you need to set the corresponding API key in your environment variables. For example:
-
-```bash
-# OpenAI
-export OPENAI_API_KEY="your-api-key-here"
-
-# Azure OpenAI
-export AZURE_OPENAI_API_KEY="your-azure-api-key-here"
-export AZURE_OPENAI_API_VERSION="2025-04-01-preview" (Optional)
-
-# OpenRouter
-export OPENROUTER_API_KEY="your-openrouter-key-here"
-
-# Similarly for other providers
-```
-
----
-
-## FAQ
-
-
-OpenAI released a model called Codex in 2021 - is this related?
-
-In 2021, OpenAI released Codex, an AI system designed to generate code from natural language prompts. That original Codex model was deprecated as of March 2023 and is separate from the CLI tool.
-
-
-
-
-Which models are supported?
-
-Any model available with [Responses API](https://platform.openai.com/docs/api-reference/responses). The default is `o4-mini`, but pass `--model gpt-4.1` or set `model: gpt-4.1` in your config file to override.
-
-
-
-Why does o3 or o4-mini not work for me?
-
-It's possible that your [API account needs to be verified](https://help.openai.com/en/articles/10910291-api-organization-verification) in order to start streaming responses and seeing chain of thought summaries from the API. If you're still running into issues, please let us know!
-
-
-
-
-How do I stop Codex from editing my files?
-
-Codex runs model-generated commands in a sandbox. If a proposed command or file change doesn't look right, you can simply type **n** to deny the command or give the model feedback.
-
-
-
-Does it work on Windows?
-
-Not directly. It requires [Windows Subsystem for Linux (WSL2)](https://learn.microsoft.com/en-us/windows/wsl/install) - Codex is regularly tested on macOS and Linux with Node 20+, and also supports Node 16.
-
-
-
----
-
-## Zero data retention (ZDR) usage
-
-Codex CLI **does** support OpenAI organizations with [Zero Data Retention (ZDR)](https://platform.openai.com/docs/guides/your-data#zero-data-retention) enabled. If your OpenAI organization has Zero Data Retention enabled and you still encounter errors such as:
-
-```
-OpenAI rejected the request. Error details: Status: 400, Code: unsupported_parameter, Type: invalid_request_error, Message: 400 Previous response cannot be used for this organization due to Zero Data Retention.
-```
-
-You may need to upgrade to a more recent version with: `npm i -g @openai/codex@latest`
-
----
-
-## Codex open source fund
-
-We're excited to launch a **$1 million initiative** supporting open source projects that use Codex CLI and other OpenAI models.
-
-- Grants are awarded up to **$25,000** API credits.
-- Applications are reviewed **on a rolling basis**.
-
-**Interested? [Apply here](https://openai.com/form/codex-open-source-fund/).**
-
----
-
-## Contributing
-
-This project is under active development and the code will likely change pretty significantly. We'll update this message once that's complete!
-
-More broadly we welcome contributions - whether you are opening your very first pull request or you're a seasoned maintainer. At the same time we care about reliability and long-term maintainability, so the bar for merging code is intentionally **high**. The guidelines below spell out what "high-quality" means in practice and should make the whole process transparent and friendly.
-
-### Development workflow
-
-- Create a _topic branch_ from `main` - e.g. `feat/interactive-prompt`.
-- Keep your changes focused. Multiple unrelated fixes should be opened as separate PRs.
-- Use `pnpm test:watch` during development for super-fast feedback.
-- We use **Vitest** for unit tests, **ESLint** + **Prettier** for style, and **TypeScript** for type-checking.
-- Before pushing, run the full test/type/lint suite:
-
-### Git hooks with Husky
-
-This project uses [Husky](https://typicode.github.io/husky/) to enforce code quality checks:
-
-- **Pre-commit hook**: Automatically runs lint-staged to format and lint files before committing
-- **Pre-push hook**: Runs tests and type checking before pushing to the remote
-
-These hooks help maintain code quality and prevent pushing code with failing tests. For more details, see [HUSKY.md](./HUSKY.md).
-
-```bash
-pnpm test && pnpm run lint && pnpm run typecheck
-```
-
-- If you have **not** yet signed the Contributor License Agreement (CLA), add a PR comment containing the exact text
-
- ```text
- I have read the CLA Document and I hereby sign the CLA
- ```
-
- The CLA-Assistant bot will turn the PR status green once all authors have signed.
-
-```bash
-# Watch mode (tests rerun on change)
-pnpm test:watch
-
-# Type-check without emitting files
-pnpm typecheck
-
-# Automatically fix lint + prettier issues
-pnpm lint:fix
-pnpm format:fix
-```
-
-### Debugging
-
-To debug the CLI with a visual debugger, do the following in the `codex-cli` folder:
-
-- Run `pnpm run build` to build the CLI, which will generate `cli.js.map` alongside `cli.js` in the `dist` folder.
-- Run the CLI with `node --inspect-brk ./dist/cli.js` The program then waits until a debugger is attached before proceeding. Options:
- - In VS Code, choose **Debug: Attach to Node Process** from the command palette and choose the option in the dropdown with debug port `9229` (likely the first option)
- - Go to in Chrome and find **localhost:9229** and click **trace**
-
-### Writing high-impact code changes
-
-1. **Start with an issue.** Open a new one or comment on an existing discussion so we can agree on the solution before code is written.
-2. **Add or update tests.** Every new feature or bug-fix should come with test coverage that fails before your change and passes afterwards. 100% coverage is not required, but aim for meaningful assertions.
-3. **Document behaviour.** If your change affects user-facing behaviour, update the README, inline help (`codex --help`), or relevant example projects.
-4. **Keep commits atomic.** Each commit should compile and the tests should pass. This makes reviews and potential rollbacks easier.
-
-### Opening a pull request
-
-- Fill in the PR template (or include similar information) - **What? Why? How?**
-- Run **all** checks locally (`npm test && npm run lint && npm run typecheck`). CI failures that could have been caught locally slow down the process.
-- Make sure your branch is up-to-date with `main` and that you have resolved merge conflicts.
-- Mark the PR as **Ready for review** only when you believe it is in a merge-able state.
-
-### Review process
-
-1. One maintainer will be assigned as a primary reviewer.
-2. We may ask for changes - please do not take this personally. We value the work, we just also value consistency and long-term maintainability.
-3. When there is consensus that the PR meets the bar, a maintainer will squash-and-merge.
-
-### Community values
-
-- **Be kind and inclusive.** Treat others with respect; we follow the [Contributor Covenant](https://www.contributor-covenant.org/).
-- **Assume good intent.** Written communication is hard - err on the side of generosity.
-- **Teach & learn.** If you spot something confusing, open an issue or PR with improvements.
-
-### Getting help
-
-If you run into problems setting up the project, would like feedback on an idea, or just want to say _hi_ - please open a Discussion or jump into the relevant issue. We are happy to help.
-
-Together we can make Codex CLI an incredible tool. **Happy hacking!** :rocket:
-
-### Contributor license agreement (CLA)
-
-All contributors **must** accept the CLA. The process is lightweight:
-
-1. Open your pull request.
-2. Paste the following comment (or reply `recheck` if you've signed before):
-
- ```text
- I have read the CLA Document and I hereby sign the CLA
- ```
-
-3. The CLA-Assistant bot records your signature in the repo and marks the status check as passed.
-
-No special Git commands, email attachments, or commit footers required.
-
-#### Quick fixes
-
-| Scenario | Command |
-| ----------------- | ------------------------------------------------ |
-| Amend last commit | `git commit --amend -s --no-edit && git push -f` |
-
-The **DCO check** blocks merges until every commit in the PR carries the footer (with squash this is just the one).
-
-### Releasing `codex`
-
-To publish a new version of the CLI you first need to stage the npm package. A
-helper script in `codex-cli/scripts/` does all the heavy lifting. Inside the
-`codex-cli` folder run:
-
-```bash
-# Classic, JS implementation that includes small, native binaries for Linux sandboxing.
-pnpm stage-release
-
-# Optionally specify the temp directory to reuse between runs.
-RELEASE_DIR=$(mktemp -d)
-pnpm stage-release --tmp "$RELEASE_DIR"
-
-# "Fat" package that additionally bundles the native Rust CLI binaries for
-# Linux. End-users can then opt-in at runtime by setting CODEX_RUST=1.
-pnpm stage-release --native
-```
-
-Go to the folder where the release is staged and verify that it works as intended. If so, run the following from the temp folder:
-
-```
-cd "$RELEASE_DIR"
-npm publish
-```
-
-### Alternative build options
-
-#### Nix flake development
-
-Prerequisite: Nix >= 2.4 with flakes enabled (`experimental-features = nix-command flakes` in `~/.config/nix/nix.conf`).
-
-Enter a Nix development shell:
-
-```bash
-# Use either one of the commands according to which implementation you want to work with
-nix develop .#codex-cli # For entering codex-cli specific shell
-nix develop .#codex-rs # For entering codex-rs specific shell
-```
-
-This shell includes Node.js, installs dependencies, builds the CLI, and provides a `codex` command alias.
-
-Build and run the CLI directly:
-
-```bash
-# Use either one of the commands according to which implementation you want to work with
-nix build .#codex-cli # For building codex-cli
-nix build .#codex-rs # For building codex-rs
-./result/bin/codex --help
-```
-
-Run the CLI via the flake app:
-
-```bash
-# Use either one of the commands according to which implementation you want to work with
-nix run .#codex-cli # For running codex-cli
-nix run .#codex-rs # For running codex-rs
-```
-
-Use direnv with flakes
-
-If you have direnv installed, you can use the following `.envrc` to automatically enter the Nix shell when you `cd` into the project directory:
-
-```bash
-cd codex-rs
-echo "use flake ../flake.nix#codex-cli" >> .envrc && direnv allow
-cd codex-cli
-echo "use flake ../flake.nix#codex-rs" >> .envrc && direnv allow
-```
-
----
-
-## Security & responsible AI
-
-Have you discovered a vulnerability or have concerns about model output? Please e-mail **security@openai.com** and we will respond promptly.
-
----
-
-## License
-
-This repository is licensed under the [Apache-2.0 License](LICENSE).
+> This directory contains the legacy TypeScript CLI wrapper. The main implementation is in the `codex-rs` directory (Rust). See the [README in the root of the repository](https://github.com/Recusive/Orbit-CLI/blob/main/README.md) for details.
diff --git a/codex-cli/package.json b/codex-cli/package.json
index ee2c2a7c7..a2f5e1d1b 100644
--- a/codex-cli/package.json
+++ b/codex-cli/package.json
@@ -1,9 +1,9 @@
{
- "name": "@openai/codex",
+ "name": "@recursive/orbit-cli",
"version": "0.0.0-dev",
"license": "Apache-2.0",
"bin": {
- "codex": "bin/codex.js"
+ "orbit": "bin/codex.js"
},
"type": "module",
"engines": {
@@ -15,7 +15,7 @@
],
"repository": {
"type": "git",
- "url": "git+https://github.com/openai/codex.git",
+ "url": "git+https://github.com/Recusive/Orbit-CLI.git",
"directory": "codex-cli"
},
"packageManager": "pnpm@10.29.3+sha512.498e1fb4cca5aa06c1dcf2611e6fafc50972ffe7189998c409e90de74566444298ffe43e6cd2acdc775ba1aa7cc5e092a8b7054c811ba8c5770f84693d33d2dc"
diff --git a/codex-rs/app-server-protocol/src/bin/export.rs b/codex-rs/app-server-protocol/src/bin/export.rs
index d029ecbff..826bce555 100644
--- a/codex-rs/app-server-protocol/src/bin/export.rs
+++ b/codex-rs/app-server-protocol/src/bin/export.rs
@@ -4,7 +4,7 @@ use std::path::PathBuf;
#[derive(Parser, Debug)]
#[command(
- about = "Generate TypeScript bindings and JSON Schemas for the Codex app-server protocol"
+ about = "Generate TypeScript bindings and JSON Schemas for the Orbit CLI app-server protocol"
)]
struct Args {
/// Output directory where generated files will be written
diff --git a/codex-rs/app-server-protocol/src/protocol/common.rs b/codex-rs/app-server-protocol/src/protocol/common.rs
index 3af297610..6b1b9db66 100644
--- a/codex-rs/app-server-protocol/src/protocol/common.rs
+++ b/codex-rs/app-server-protocol/src/protocol/common.rs
@@ -943,7 +943,7 @@ mod tests {
params: v1::InitializeParams {
client_info: v1::ClientInfo {
name: "codex_vscode".to_string(),
- title: Some("Codex VS Code Extension".to_string()),
+ title: Some("Orbit CLI VS Code Extension".to_string()),
version: "0.1.0".to_string(),
},
capabilities: Some(v1::InitializeCapabilities {
@@ -963,7 +963,7 @@ mod tests {
"params": {
"clientInfo": {
"name": "codex_vscode",
- "title": "Codex VS Code Extension",
+ "title": "Orbit CLI VS Code Extension",
"version": "0.1.0"
},
"capabilities": {
@@ -988,7 +988,7 @@ mod tests {
"params": {
"clientInfo": {
"name": "codex_vscode",
- "title": "Codex VS Code Extension",
+ "title": "Orbit CLI VS Code Extension",
"version": "0.1.0"
},
"capabilities": {
@@ -1008,7 +1008,7 @@ mod tests {
params: v1::InitializeParams {
client_info: v1::ClientInfo {
name: "codex_vscode".to_string(),
- title: Some("Codex VS Code Extension".to_string()),
+ title: Some("Orbit CLI VS Code Extension".to_string()),
version: "0.1.0".to_string(),
},
capabilities: Some(v1::InitializeCapabilities {
diff --git a/codex-rs/app-server-test-client/src/lib.rs b/codex-rs/app-server-test-client/src/lib.rs
index 27203c601..fc61a97b2 100644
--- a/codex-rs/app-server-test-client/src/lib.rs
+++ b/codex-rs/app-server-test-client/src/lib.rs
@@ -105,9 +105,9 @@ const NOTIFICATIONS_TO_OPT_OUT: &[&str] = &[
"item/reasoning/textDelta",
];
-/// Minimal launcher that initializes the Codex app-server and logs the handshake.
+/// Minimal launcher that initializes the Orbit CLI app-server and logs the handshake.
#[derive(Parser)]
-#[command(author = "Codex", version, about = "Bootstrap Codex app-server", long_about = None)]
+#[command(author = "Orbit CLI", version, about = "Bootstrap Orbit CLI app-server", long_about = None)]
struct Cli {
/// Path to the `codex` CLI binary. When set, requests use stdio by
/// spawning `codex app-server` as a child process.
@@ -1071,7 +1071,7 @@ impl CodexClient {
params: InitializeParams {
client_info: ClientInfo {
name: "codex-toy-app-server".to_string(),
- title: Some("Codex Toy App Server".to_string()),
+ title: Some("Orbit CLI Toy App Server".to_string()),
version: env!("CARGO_PKG_VERSION").to_string(),
},
capabilities: Some(InitializeCapabilities {
diff --git a/codex-rs/app-server/tests/suite/codex_message_processor_flow.rs b/codex-rs/app-server/tests/suite/codex_message_processor_flow.rs
index f6d3b9efb..f04f341c0 100644
--- a/codex-rs/app-server/tests/suite/codex_message_processor_flow.rs
+++ b/codex-rs/app-server/tests/suite/codex_message_processor_flow.rs
@@ -42,7 +42,7 @@ const DEFAULT_READ_TIMEOUT: std::time::Duration = std::time::Duration::from_secs
async fn test_codex_jsonrpc_conversation_flow() -> Result<()> {
if env::var(CODEX_SANDBOX_NETWORK_DISABLED_ENV_VAR).is_ok() {
println!(
- "Skipping test because it cannot execute when network is disabled in a Codex sandbox."
+ "Skipping test because it cannot execute when network is disabled in an Orbit CLI sandbox."
);
return Ok(());
}
@@ -192,7 +192,7 @@ async fn test_codex_jsonrpc_conversation_flow() -> Result<()> {
async fn test_send_user_turn_changes_approval_policy_behavior() -> Result<()> {
if env::var(CODEX_SANDBOX_NETWORK_DISABLED_ENV_VAR).is_ok() {
println!(
- "Skipping test because it cannot execute when network is disabled in a Codex sandbox."
+ "Skipping test because it cannot execute when network is disabled in an Orbit CLI sandbox."
);
return Ok(());
}
@@ -366,7 +366,7 @@ async fn test_send_user_turn_changes_approval_policy_behavior() -> Result<()> {
async fn test_send_user_turn_updates_sandbox_and_cwd_between_turns() -> Result<()> {
if env::var(CODEX_SANDBOX_NETWORK_DISABLED_ENV_VAR).is_ok() {
println!(
- "Skipping test because it cannot execute when network is disabled in a Codex sandbox."
+ "Skipping test because it cannot execute when network is disabled in an Orbit CLI sandbox."
);
return Ok(());
}
diff --git a/codex-rs/app-server/tests/suite/v2/initialize.rs b/codex-rs/app-server/tests/suite/v2/initialize.rs
index 2edc83a7f..d4073e11d 100644
--- a/codex-rs/app-server/tests/suite/v2/initialize.rs
+++ b/codex-rs/app-server/tests/suite/v2/initialize.rs
@@ -28,7 +28,7 @@ async fn initialize_uses_client_info_name_as_originator() -> Result<()> {
DEFAULT_READ_TIMEOUT,
mcp.initialize_with_client_info(ClientInfo {
name: "codex_vscode".to_string(),
- title: Some("Codex VS Code Extension".to_string()),
+ title: Some("Orbit CLI VS Code Extension".to_string()),
version: "0.1.0".to_string(),
}),
)
@@ -62,7 +62,7 @@ async fn initialize_respects_originator_override_env_var() -> Result<()> {
DEFAULT_READ_TIMEOUT,
mcp.initialize_with_client_info(ClientInfo {
name: "codex_vscode".to_string(),
- title: Some("Codex VS Code Extension".to_string()),
+ title: Some("Orbit CLI VS Code Extension".to_string()),
version: "0.1.0".to_string(),
}),
)
@@ -125,7 +125,7 @@ async fn initialize_opt_out_notification_methods_filters_notifications() -> Resu
mcp.initialize_with_capabilities(
ClientInfo {
name: "codex_vscode".to_string(),
- title: Some("Codex VS Code Extension".to_string()),
+ title: Some("Orbit CLI VS Code Extension".to_string()),
version: "0.1.0".to_string(),
},
Some(InitializeCapabilities {
diff --git a/codex-rs/app-server/tests/suite/v2/thread_resume.rs b/codex-rs/app-server/tests/suite/v2/thread_resume.rs
index 15bc4012e..df8095559 100644
--- a/codex-rs/app-server/tests/suite/v2/thread_resume.rs
+++ b/codex-rs/app-server/tests/suite/v2/thread_resume.rs
@@ -34,7 +34,7 @@ use tempfile::TempDir;
use tokio::time::timeout;
const DEFAULT_READ_TIMEOUT: std::time::Duration = std::time::Duration::from_secs(10);
-const CODEX_5_2_INSTRUCTIONS_TEMPLATE_DEFAULT: &str = "You are Codex, a coding agent based on GPT-5. You and the user share the same workspace and collaborate to achieve the user's goals.";
+const CODEX_5_2_INSTRUCTIONS_TEMPLATE_DEFAULT: &str = "You are Orbit CLI, a coding agent based on GPT-5. You and the user share the same workspace and collaborate to achieve the user's goals.";
#[tokio::test]
async fn thread_resume_rejects_unmaterialized_thread() -> Result<()> {
diff --git a/codex-rs/app-server/tests/suite/v2/thread_status.rs b/codex-rs/app-server/tests/suite/v2/thread_status.rs
index ad90e4900..6071b3e30 100644
--- a/codex-rs/app-server/tests/suite/v2/thread_status.rs
+++ b/codex-rs/app-server/tests/suite/v2/thread_status.rs
@@ -140,7 +140,7 @@ async fn thread_status_changed_can_be_opted_out() -> Result<()> {
mcp.initialize_with_capabilities(
ClientInfo {
name: "codex_vscode".to_string(),
- title: Some("Codex VS Code Extension".to_string()),
+ title: Some("Orbit CLI VS Code Extension".to_string()),
version: "0.1.0".to_string(),
},
Some(InitializeCapabilities {
diff --git a/codex-rs/app-server/tests/suite/v2/turn_start.rs b/codex-rs/app-server/tests/suite/v2/turn_start.rs
index f396aa8c4..8cb11a8dc 100644
--- a/codex-rs/app-server/tests/suite/v2/turn_start.rs
+++ b/codex-rs/app-server/tests/suite/v2/turn_start.rs
@@ -84,7 +84,7 @@ async fn turn_start_sends_originator_header() -> Result<()> {
DEFAULT_READ_TIMEOUT,
mcp.initialize_with_client_info(ClientInfo {
name: TEST_ORIGINATOR.to_string(),
- title: Some("Codex VS Code Extension".to_string()),
+ title: Some("Orbit CLI VS Code Extension".to_string()),
version: "0.1.0".to_string(),
}),
)
diff --git a/codex-rs/cli/src/app_cmd.rs b/codex-rs/cli/src/app_cmd.rs
index cb761c131..2af62fb90 100644
--- a/codex-rs/cli/src/app_cmd.rs
+++ b/codex-rs/cli/src/app_cmd.rs
@@ -5,7 +5,7 @@ const DEFAULT_CODEX_DMG_URL: &str = "https://persistent.oaistatic.com/codex-app-
#[derive(Debug, Parser)]
pub struct AppCommand {
- /// Workspace path to open in Codex Desktop.
+ /// Workspace path to open in Orbit CLI Desktop.
#[arg(value_name = "PATH", default_value = ".")]
pub path: PathBuf,
diff --git a/codex-rs/cli/src/desktop_app/mac.rs b/codex-rs/cli/src/desktop_app/mac.rs
index d404f5b7c..44f9dfe84 100644
--- a/codex-rs/cli/src/desktop_app/mac.rs
+++ b/codex-rs/cli/src/desktop_app/mac.rs
@@ -10,18 +10,18 @@ pub async fn run_mac_app_open_or_install(
) -> anyhow::Result<()> {
if let Some(app_path) = find_existing_codex_app_path() {
eprintln!(
- "Opening Codex Desktop at {app_path}...",
+ "Opening Orbit CLI Desktop at {app_path}...",
app_path = app_path.display()
);
open_codex_app(&app_path, &workspace).await?;
return Ok(());
}
- eprintln!("Codex Desktop not found; downloading installer...");
+ eprintln!("Orbit CLI Desktop not found; downloading installer...");
let installed_app = download_and_install_codex_to_user_applications(&download_url)
.await
- .context("failed to download/install Codex Desktop")?;
+ .context("failed to download/install Orbit CLI Desktop")?;
eprintln!(
- "Launching Codex Desktop from {installed_app}...",
+ "Launching Orbit CLI Desktop from {installed_app}...",
installed_app = installed_app.display()
);
open_codex_app(&installed_app, &workspace).await?;
@@ -35,9 +35,9 @@ fn find_existing_codex_app_path() -> Option {
}
fn candidate_codex_app_paths() -> Vec {
- let mut paths = vec![PathBuf::from("/Applications/Codex.app")];
+ let mut paths = vec![PathBuf::from("/Applications/Orbit.app")];
if let Some(home) = std::env::var_os("HOME") {
- paths.push(PathBuf::from(home).join("Applications").join("Codex.app"));
+ paths.push(PathBuf::from(home).join("Applications").join("Orbit.app"));
}
paths
}
@@ -74,10 +74,10 @@ async fn download_and_install_codex_to_user_applications(dmg_url: &str) -> anyho
let tmp_root = temp_dir.path().to_path_buf();
let _temp_dir = temp_dir;
- let dmg_path = tmp_root.join("Codex.dmg");
+ let dmg_path = tmp_root.join("Orbit.dmg");
download_dmg(dmg_url, &dmg_path).await?;
- eprintln!("Mounting Codex Desktop installer...");
+ eprintln!("Mounting Orbit CLI Desktop installer...");
let mount_point = mount_dmg(&dmg_path).await?;
eprintln!(
"Installer mounted at {mount_point}.",
@@ -85,7 +85,7 @@ async fn download_and_install_codex_to_user_applications(dmg_url: &str) -> anyho
);
let result = async {
let app_in_volume = find_codex_app_in_mount(&mount_point)
- .context("failed to locate Codex.app in mounted dmg")?;
+ .context("failed to locate Orbit.app in mounted dmg")?;
install_codex_app_bundle(&app_in_volume).await
}
.await;
@@ -104,7 +104,7 @@ async fn download_and_install_codex_to_user_applications(dmg_url: &str) -> anyho
async fn install_codex_app_bundle(app_in_volume: &Path) -> anyhow::Result {
for applications_dir in candidate_applications_dirs()? {
eprintln!(
- "Installing Codex Desktop into {applications_dir}...",
+ "Installing Orbit CLI Desktop into {applications_dir}...",
applications_dir = applications_dir.display()
);
std::fs::create_dir_all(&applications_dir).with_context(|| {
@@ -114,7 +114,7 @@ async fn install_codex_app_bundle(app_in_volume: &Path) -> anyhow::Result anyhow::Result return Ok(dest_app),
Err(err) => {
eprintln!(
- "warning: failed to install Codex.app to {applications_dir}: {err}",
+ "warning: failed to install Orbit.app to {applications_dir}: {err}",
applications_dir = applications_dir.display()
);
}
}
}
- anyhow::bail!("failed to install Codex.app to any applications directory");
+ anyhow::bail!("failed to install Orbit.app to any applications directory");
}
fn candidate_applications_dirs() -> anyhow::Result> {
@@ -199,7 +199,7 @@ async fn detach_dmg(mount_point: &Path) -> anyhow::Result<()> {
}
fn find_codex_app_in_mount(mount_point: &Path) -> anyhow::Result {
- let direct = mount_point.join("Codex.app");
+ let direct = mount_point.join("Orbit.app");
if direct.is_dir() {
return Ok(direct);
}
diff --git a/codex-rs/cli/src/main.rs b/codex-rs/cli/src/main.rs
index 42ded11c0..82d8eec39 100644
--- a/codex-rs/cli/src/main.rs
+++ b/codex-rs/cli/src/main.rs
@@ -50,7 +50,7 @@ use codex_core::features::Stage;
use codex_core::features::is_known_feature_key;
use codex_core::terminal::TerminalName;
-/// Codex CLI
+/// Orbit CLI
///
/// If no subcommand is specified, options will be forwarded to the interactive CLI.
#[derive(Debug, Parser)]
@@ -81,7 +81,7 @@ struct MultitoolCli {
#[derive(Debug, clap::Subcommand)]
enum Subcommand {
- /// Run Codex non-interactively.
+ /// Run Orbit CLI non-interactively.
#[clap(visible_alias = "e")]
Exec(ExecCli),
@@ -94,23 +94,23 @@ enum Subcommand {
/// Remove stored authentication credentials.
Logout(LogoutCommand),
- /// Manage external MCP servers for Codex.
+ /// Manage external MCP servers for Orbit CLI.
Mcp(McpCli),
- /// Start Codex as an MCP server (stdio).
+ /// Start Orbit CLI as an MCP server (stdio).
McpServer,
/// [experimental] Run the app server or related tooling.
AppServer(AppServerCommand),
- /// Launch the Codex desktop app (downloads the macOS installer if missing).
+ /// Launch the Orbit CLI desktop app (downloads the macOS installer if missing).
#[cfg(target_os = "macos")]
App(app_cmd::AppCommand),
/// Generate shell completion scripts.
Completion(CompletionCommand),
- /// Run commands within a Codex-provided sandbox.
+ /// Run commands within an Orbit CLI-provided sandbox.
Sandbox(SandboxArgs),
/// Debugging tools.
@@ -120,7 +120,7 @@ enum Subcommand {
#[clap(hide = true)]
Execpolicy(ExecpolicyCommand),
- /// Apply the latest diff produced by Codex agent as a `git apply` to your local working tree.
+ /// Apply the latest diff produced by Orbit CLI agent as a `git apply` to your local working tree.
#[clap(visible_alias = "a")]
Apply(ApplyCommand),
@@ -130,7 +130,7 @@ enum Subcommand {
/// Fork a previous interactive session (picker by default; use --last to fork the most recent).
Fork(ForkCommand),
- /// [EXPERIMENTAL] Browse tasks from Codex Cloud and apply changes locally.
+ /// [EXPERIMENTAL] Browse tasks from Orbit CLI Cloud and apply changes locally.
#[clap(name = "cloud", alias = "cloud-tasks")]
Cloud(CloudTasksCli),
@@ -330,7 +330,7 @@ struct AppServerCommand {
/// enabled = false
/// ```
///
- /// See https://developers.openai.com/codex/config-advanced/#metrics for more details.
+ /// See https://developers.recursive.com/orbit-cli/config-advanced/#metrics for more details.
#[arg(long = "analytics-default-enabled")]
analytics_default_enabled: bool,
}
@@ -433,7 +433,7 @@ fn handle_app_exit(exit_info: AppExitInfo) -> anyhow::Result<()> {
fn run_update_action(action: UpdateAction) -> anyhow::Result<()> {
println!();
let cmd_str = action.command_str();
- println!("Updating Codex via `{cmd_str}`...");
+ println!("Updating Orbit CLI via `{cmd_str}`...");
let status = {
#[cfg(windows)]
@@ -459,7 +459,7 @@ fn run_update_action(action: UpdateAction) -> anyhow::Result<()> {
if !status.success() {
anyhow::bail!("`{cmd_str}` failed with status {status}");
}
- println!("\n๐ Update ran successfully! Please restart Codex.");
+ println!("\n๐ Update ran successfully! Please restart Orbit CLI.");
Ok(())
}
@@ -905,7 +905,7 @@ async fn run_interactive_tui(
}
eprintln!(
- "WARNING: TERM is set to \"dumb\". Codex's interactive TUI may not work in this terminal."
+ "WARNING: TERM is set to \"dumb\". Orbit CLI's interactive TUI may not work in this terminal."
);
if !confirm("Continue anyway? [y/N]: ")? {
return Ok(AppExitInfo::fatal(
diff --git a/codex-rs/cloud-tasks/src/cli.rs b/codex-rs/cloud-tasks/src/cli.rs
index e2c3a2444..96e7fd090 100644
--- a/codex-rs/cloud-tasks/src/cli.rs
+++ b/codex-rs/cloud-tasks/src/cli.rs
@@ -14,21 +14,21 @@ pub struct Cli {
#[derive(Debug, clap::Subcommand)]
pub enum Command {
- /// Submit a new Codex Cloud task without launching the TUI.
+ /// Submit a new Orbit CLI Cloud task without launching the TUI.
Exec(ExecCommand),
- /// Show the status of a Codex Cloud task.
+ /// Show the status of an Orbit CLI Cloud task.
Status(StatusCommand),
- /// List Codex Cloud tasks.
+ /// List Orbit CLI Cloud tasks.
List(ListCommand),
- /// Apply the diff for a Codex Cloud task locally.
+ /// Apply the diff for an Orbit CLI Cloud task locally.
Apply(ApplyCommand),
- /// Show the unified diff for a Codex Cloud task.
+ /// Show the unified diff for an Orbit CLI Cloud task.
Diff(DiffCommand),
}
#[derive(Debug, Args)]
pub struct ExecCommand {
- /// Task prompt to run in Codex Cloud.
+ /// Task prompt to run in Orbit CLI Cloud.
#[arg(value_name = "QUERY")]
pub query: Option,
@@ -44,7 +44,7 @@ pub struct ExecCommand {
)]
pub attempts: usize,
- /// Git branch to run in Codex Cloud (defaults to current branch).
+ /// Git branch to run in Orbit CLI Cloud (defaults to current branch).
#[arg(long = "branch", value_name = "BRANCH")]
pub branch: Option,
}
@@ -73,7 +73,7 @@ fn parse_limit(input: &str) -> Result {
#[derive(Debug, Args)]
pub struct StatusCommand {
- /// Codex Cloud task identifier to inspect.
+ /// Orbit CLI Cloud task identifier to inspect.
#[arg(value_name = "TASK_ID")]
pub task_id: String,
}
@@ -99,7 +99,7 @@ pub struct ListCommand {
#[derive(Debug, Args)]
pub struct ApplyCommand {
- /// Codex Cloud task identifier to apply.
+ /// Orbit CLI Cloud task identifier to apply.
#[arg(value_name = "TASK_ID")]
pub task_id: String,
@@ -110,7 +110,7 @@ pub struct ApplyCommand {
#[derive(Debug, Args)]
pub struct DiffCommand {
- /// Codex Cloud task identifier to display.
+ /// Orbit CLI Cloud task identifier to display.
#[arg(value_name = "TASK_ID")]
pub task_id: String,
diff --git a/codex-rs/config/src/requirements_exec_policy.rs b/codex-rs/config/src/requirements_exec_policy.rs
index 64d60f881..3a506b4f9 100644
--- a/codex-rs/config/src/requirements_exec_policy.rs
+++ b/codex-rs/config/src/requirements_exec_policy.rs
@@ -114,7 +114,7 @@ pub enum RequirementsExecPolicyParseError {
MissingDecision { rule_index: usize },
#[error(
- "rules prefix_rule at index {rule_index} has decision 'allow', which is not permitted in requirements.toml: Codex merges these rules with other config and uses the most restrictive result (use 'prompt' or 'forbidden')"
+ "rules prefix_rule at index {rule_index} has decision 'allow', which is not permitted in requirements.toml: Orbit CLI merges these rules with other config and uses the most restrictive result (use 'prompt' or 'forbidden')"
)]
AllowDecisionNotAllowed { rule_index: usize },
}
diff --git a/codex-rs/core/gpt-5.1-codex-max_prompt.md b/codex-rs/core/gpt-5.1-codex-max_prompt.md
index 8e3f08fb5..efd9bb9ee 100644
--- a/codex-rs/core/gpt-5.1-codex-max_prompt.md
+++ b/codex-rs/core/gpt-5.1-codex-max_prompt.md
@@ -1,4 +1,4 @@
-You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
+You are Orbit CLI, based on GPT-5. You are running as a coding agent in the Orbit CLI on a user's computer.
## General
diff --git a/codex-rs/core/gpt-5.2-codex_prompt.md b/codex-rs/core/gpt-5.2-codex_prompt.md
index 8e3f08fb5..efd9bb9ee 100644
--- a/codex-rs/core/gpt-5.2-codex_prompt.md
+++ b/codex-rs/core/gpt-5.2-codex_prompt.md
@@ -1,4 +1,4 @@
-You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
+You are Orbit CLI, based on GPT-5. You are running as a coding agent in the Orbit CLI on a user's computer.
## General
diff --git a/codex-rs/core/gpt_5_1_prompt.md b/codex-rs/core/gpt_5_1_prompt.md
index 440422ae6..1e6e18be1 100644
--- a/codex-rs/core/gpt_5_1_prompt.md
+++ b/codex-rs/core/gpt_5_1_prompt.md
@@ -1,4 +1,4 @@
-You are GPT-5.1 running in the Codex CLI, a terminal-based coding assistant. Codex CLI is an open source project led by OpenAI. You are expected to be precise, safe, and helpful.
+You are GPT-5.1 running in the Orbit CLI, a terminal-based coding assistant. Orbit CLI is an open source project led by Recursive. You are expected to be precise, safe, and helpful.
Your capabilities:
@@ -6,7 +6,7 @@ Your capabilities:
- Communicate with the user by streaming thinking & responses, and by making & updating plans.
- Emit function calls to run terminal commands and apply patches. Depending on how this specific run is configured, you can request that these function calls be escalated to the user for approval before running. More on this in the "Sandbox and approvals" section.
-Within this context, Codex refers to the open-source agentic coding interface (not the old Codex language model built by OpenAI).
+Within this context, Orbit CLI refers to the open-source agentic coding interface.
# How you work
diff --git a/codex-rs/core/gpt_5_2_prompt.md b/codex-rs/core/gpt_5_2_prompt.md
index 7dd684bf0..934675a94 100644
--- a/codex-rs/core/gpt_5_2_prompt.md
+++ b/codex-rs/core/gpt_5_2_prompt.md
@@ -1,4 +1,4 @@
-You are GPT-5.2 running in the Codex CLI, a terminal-based coding assistant. Codex CLI is an open source project led by OpenAI. You are expected to be precise, safe, and helpful.
+You are GPT-5.2 running in the Orbit CLI, a terminal-based coding assistant. Orbit CLI is an open source project led by Recursive. You are expected to be precise, safe, and helpful.
Your capabilities:
@@ -6,7 +6,7 @@ Your capabilities:
- Communicate with the user by streaming thinking & responses, and by making & updating plans.
- Emit function calls to run terminal commands and apply patches. Depending on how this specific run is configured, you can request that these function calls be escalated to the user for approval before running. More on this in the "Sandbox and approvals" section.
-Within this context, Codex refers to the open-source agentic coding interface (not the old Codex language model built by OpenAI).
+Within this context, Orbit CLI refers to the open-source agentic coding interface.
# How you work
diff --git a/codex-rs/core/gpt_5_codex_prompt.md b/codex-rs/core/gpt_5_codex_prompt.md
index 88a569fa7..0e95be255 100644
--- a/codex-rs/core/gpt_5_codex_prompt.md
+++ b/codex-rs/core/gpt_5_codex_prompt.md
@@ -1,4 +1,4 @@
-You are Codex, based on GPT-5. You are running as a coding agent in the Codex CLI on a user's computer.
+You are Orbit CLI, based on GPT-5. You are running as a coding agent in the Orbit CLI on a user's computer.
## General
diff --git a/codex-rs/core/prompt.md b/codex-rs/core/prompt.md
index 4886c7ef4..5edca867d 100644
--- a/codex-rs/core/prompt.md
+++ b/codex-rs/core/prompt.md
@@ -1,4 +1,4 @@
-You are a coding agent running in the Codex CLI, a terminal-based coding assistant. Codex CLI is an open source project led by OpenAI. You are expected to be precise, safe, and helpful.
+You are a coding agent running in the Orbit CLI, a terminal-based coding assistant. Orbit CLI is an open source project led by Recursive. You are expected to be precise, safe, and helpful.
Your capabilities:
@@ -6,7 +6,7 @@ Your capabilities:
- Communicate with the user by streaming thinking & responses, and by making & updating plans.
- Emit function calls to run terminal commands and apply patches. Depending on how this specific run is configured, you can request that these function calls be escalated to the user for approval before running. More on this in the "Sandbox and approvals" section.
-Within this context, Codex refers to the open-source agentic coding interface (not the old Codex language model built by OpenAI).
+Within this context, Orbit CLI refers to the open-source agentic coding interface.
# How you work
diff --git a/codex-rs/core/prompt_with_apply_patch_instructions.md b/codex-rs/core/prompt_with_apply_patch_instructions.md
index f9c308fbd..166ae2a82 100644
--- a/codex-rs/core/prompt_with_apply_patch_instructions.md
+++ b/codex-rs/core/prompt_with_apply_patch_instructions.md
@@ -1,4 +1,4 @@
-You are a coding agent running in the Codex CLI, a terminal-based coding assistant. Codex CLI is an open source project led by OpenAI. You are expected to be precise, safe, and helpful.
+You are a coding agent running in the Orbit CLI, a terminal-based coding assistant. Orbit CLI is an open source project led by Recursive. You are expected to be precise, safe, and helpful.
Your capabilities:
@@ -6,7 +6,7 @@ Your capabilities:
- Communicate with the user by streaming thinking & responses, and by making & updating plans.
- Emit function calls to run terminal commands and apply patches. Depending on how this specific run is configured, you can request that these function calls be escalated to the user for approval before running. More on this in the "Sandbox and approvals" section.
-Within this context, Codex refers to the open-source agentic coding interface (not the old Codex language model built by OpenAI).
+Within this context, Orbit CLI refers to the open-source agentic coding interface.
# How you work
diff --git a/codex-rs/core/src/auth/storage.rs b/codex-rs/core/src/auth/storage.rs
index 81d17e4e1..3bf53360e 100644
--- a/codex-rs/core/src/auth/storage.rs
+++ b/codex-rs/core/src/auth/storage.rs
@@ -132,7 +132,7 @@ impl AuthStorageBackend for FileAuthStorage {
}
}
-const KEYRING_SERVICE: &str = "Codex Auth";
+const KEYRING_SERVICE: &str = "Orbit CLI Auth";
// turns codex_home path into a stable, short key string
fn compute_store_key(codex_home: &Path) -> std::io::Result {
diff --git a/codex-rs/core/src/codex.rs b/codex-rs/core/src/codex.rs
index b2145afae..2b167475b 100644
--- a/codex-rs/core/src/codex.rs
+++ b/codex-rs/core/src/codex.rs
@@ -305,7 +305,7 @@ pub struct CodexSpawnOk {
pub(crate) const INITIAL_SUBMIT_ID: &str = "";
pub(crate) const SUBMISSION_CHANNEL_CAPACITY: usize = 512;
const CYBER_VERIFY_URL: &str = "https://chatgpt.com/cyber";
-const CYBER_SAFETY_URL: &str = "https://developers.openai.com/codex/concepts/cyber-safety";
+const CYBER_SAFETY_URL: &str = "https://developers.recursive.com/orbit-cli/concepts/cyber-safety";
impl Codex {
/// Spawn a new [`Codex`] and initialize the session.
@@ -1709,7 +1709,7 @@ impl Session {
EventMsg::Warning(WarningEvent {
message: format!(
"This session was recorded with model `{prev}` but is resuming with `{curr}`. \
- Consider switching back to `{prev}` as it may affect Codex performance."
+ Consider switching back to `{prev}` as it may affect Orbit CLI performance."
),
}),
)
@@ -4480,7 +4480,7 @@ mod handlers {
.unified_exec_manager
.terminate_all_processes()
.await;
- info!("Shutting down Codex instance");
+ info!("Shutting down Orbit CLI instance");
let history = sess.clone_history().await;
let turn_count = history
.raw_items()
diff --git a/codex-rs/core/src/commit_attribution.rs b/codex-rs/core/src/commit_attribution.rs
index a2c9104b2..3e9a199db 100644
--- a/codex-rs/core/src/commit_attribution.rs
+++ b/codex-rs/core/src/commit_attribution.rs
@@ -1,4 +1,4 @@
-const DEFAULT_ATTRIBUTION_VALUE: &str = "Codex ";
+const DEFAULT_ATTRIBUTION_VALUE: &str = "Orbit CLI ";
fn build_commit_message_trailer(config_attribution: Option<&str>) -> Option {
let value = resolve_attribution_value(config_attribution)?;
@@ -44,7 +44,7 @@ mod tests {
fn default_attribution_uses_codex_trailer() {
assert_eq!(
build_commit_message_trailer(None).as_deref(),
- Some("Co-authored-by: Codex ")
+ Some("Co-authored-by: Orbit CLI ")
);
}
@@ -52,7 +52,7 @@ mod tests {
fn resolve_value_handles_default_custom_and_blank() {
assert_eq!(
resolve_attribution_value(None),
- Some("Codex ".to_string())
+ Some("Orbit CLI ".to_string())
);
assert_eq!(
resolve_attribution_value(Some("MyAgent ")),
diff --git a/codex-rs/core/src/config/mod.rs b/codex-rs/core/src/config/mod.rs
index 306ba49c1..d9a769bec 100644
--- a/codex-rs/core/src/config/mod.rs
+++ b/codex-rs/core/src/config/mod.rs
@@ -254,13 +254,13 @@ pub struct Config {
/// Example `~/.codex/config.toml` snippet:
///
/// ```toml
- /// notify = ["notify-send", "Codex"]
+ /// notify = ["notify-send", "Orbit CLI"]
/// ```
///
/// which will be invoked as:
///
/// ```shell
- /// notify-send Codex '{"type":"agent-turn-complete","turn-id":"12345"}'
+ /// notify-send 'Orbit CLI' '{"type":"agent-turn-complete","turn-id":"12345"}'
/// ```
///
/// If unset the feature is disabled.
diff --git a/codex-rs/core/src/config/service.rs b/codex-rs/core/src/config/service.rs
index da675d238..d6934a1f0 100644
--- a/codex-rs/core/src/config/service.rs
+++ b/codex-rs/core/src/config/service.rs
@@ -760,7 +760,7 @@ X-Doc = "42"
#[tokio::test]
async fn write_value_preserves_comments_and_order() -> Result<()> {
let tmp = tempdir().expect("tempdir");
- let original = r#"# Codex user configuration
+ let original = r#"# Orbit CLI user configuration
model = "gpt-5"
approval_policy = "on-request"
@@ -787,7 +787,7 @@ unified_exec = true
let updated =
std::fs::read_to_string(tmp.path().join(CONFIG_TOML_FILE)).expect("read config");
- let expected = r#"# Codex user configuration
+ let expected = r#"# Orbit CLI user configuration
model = "gpt-5"
approval_policy = "on-request"
diff --git a/codex-rs/core/src/config_loader/mod.rs b/codex-rs/core/src/config_loader/mod.rs
index 70014c03b..84d83933b 100644
--- a/codex-rs/core/src/config_loader/mod.rs
+++ b/codex-rs/core/src/config_loader/mod.rs
@@ -83,7 +83,7 @@ pub(crate) async fn first_layer_config_error_from_entries(
/// - cloud: managed cloud requirements
/// - admin: managed preferences (*)
/// - system `/etc/codex/requirements.toml` (Unix) or
-/// `%ProgramData%\OpenAI\Codex\requirements.toml` (Windows)
+/// `%ProgramData%\Recursive\Codex\requirements.toml` (Windows)
///
/// For backwards compatibility, we also load from
/// `managed_config.toml` and map it to `requirements.toml`.
@@ -92,7 +92,7 @@ pub(crate) async fn first_layer_config_error_from_entries(
///
/// - admin: managed preferences (*)
/// - system `/etc/codex/config.toml` (Unix) or
-/// `%ProgramData%\OpenAI\Codex\config.toml` (Windows)
+/// `%ProgramData%\Recursive\Codex\config.toml` (Windows)
/// - user `${CODEX_HOME}/config.toml`
/// - cwd `${PWD}/config.toml` (loaded but disabled when the directory is untrusted)
/// - tree parent directories up to root looking for `./.codex/config.toml` (loaded but disabled when untrusted)
@@ -101,7 +101,7 @@ pub(crate) async fn first_layer_config_error_from_entries(
///
/// (*) Only available on macOS via managed device profiles.
///
-/// See https://developers.openai.com/codex/security for details.
+/// See https://developers.recursive.com/orbit-cli/security for details.
///
/// When loading the config stack for a thread, there should be a `cwd`
/// associated with it such that `cwd` should be `Some(...)`. Only for
@@ -412,7 +412,7 @@ fn windows_codex_system_dir() -> PathBuf {
);
PathBuf::from(DEFAULT_PROGRAM_DATA_DIR_WINDOWS)
});
- program_data.join("OpenAI").join("Codex")
+ program_data.join("Recursive").join("Codex")
}
#[cfg(windows)]
diff --git a/codex-rs/core/src/default_client.rs b/codex-rs/core/src/default_client.rs
index aa490e826..832406ef3 100644
--- a/codex-rs/core/src/default_client.rs
+++ b/codex-rs/core/src/default_client.rs
@@ -111,7 +111,7 @@ pub fn originator() -> Originator {
pub fn is_first_party_originator(originator_value: &str) -> bool {
originator_value == DEFAULT_ORIGINATOR
|| originator_value == "codex_vscode"
- || originator_value.starts_with("Codex ")
+ || originator_value.starts_with("Orbit CLI ")
}
pub fn is_first_party_chat_originator(originator_value: &str) -> bool {
@@ -160,17 +160,17 @@ fn sanitize_user_agent(candidate: String, fallback: &str) -> String {
.collect();
if !sanitized.is_empty() && HeaderValue::from_str(sanitized.as_str()).is_ok() {
tracing::warn!(
- "Sanitized Codex user agent because provided suffix contained invalid header characters"
+ "Sanitized Orbit CLI user agent because provided suffix contained invalid header characters"
);
sanitized
} else if HeaderValue::from_str(fallback).is_ok() {
tracing::warn!(
- "Falling back to base Codex user agent because provided suffix could not be sanitized"
+ "Falling back to base Orbit CLI user agent because provided suffix could not be sanitized"
);
fallback.to_string()
} else {
tracing::warn!(
- "Falling back to default Codex originator because base user agent string is invalid"
+ "Falling back to default Orbit CLI originator because base user agent string is invalid"
);
originator().value
}
@@ -233,7 +233,7 @@ mod tests {
fn is_first_party_originator_matches_known_values() {
assert_eq!(is_first_party_originator(DEFAULT_ORIGINATOR), true);
assert_eq!(is_first_party_originator("codex_vscode"), true);
- assert_eq!(is_first_party_originator("Codex Something Else"), true);
+ assert_eq!(is_first_party_originator("Orbit CLI Something Else"), true);
assert_eq!(is_first_party_originator("codex_cli"), false);
assert_eq!(is_first_party_originator("Other"), false);
}
diff --git a/codex-rs/core/src/error.rs b/codex-rs/core/src/error.rs
index ad49c611f..d177b07f1 100644
--- a/codex-rs/core/src/error.rs
+++ b/codex-rs/core/src/error.rs
@@ -75,7 +75,7 @@ pub enum CodexErr {
Stream(String, Option),
#[error(
- "Codex ran out of room in the model's context window. Start a new thread or clear earlier history before retrying."
+ "Orbit CLI ran out of room in the model's context window. Start a new thread or clear earlier history before retrying."
)]
ContextWindowExceeded,
@@ -130,7 +130,7 @@ pub enum CodexErr {
QuotaExceeded,
#[error(
- "To use Codex with your ChatGPT plan, upgrade to Plus: https://chatgpt.com/explore/plus."
+ "To use Orbit CLI with your plan, upgrade to Plus."
)]
UsageNotIncluded,
@@ -444,7 +444,7 @@ impl std::fmt::Display for UsageLimitReachedError {
let message = match self.plan_type.as_ref() {
Some(PlanType::Known(KnownPlan::Plus)) => format!(
- "You've hit your usage limit. Upgrade to Pro (https://chatgpt.com/explore/pro), visit https://chatgpt.com/codex/settings/usage to purchase more credits{}",
+ "You've hit your usage limit. Upgrade to Pro{}",
retry_suffix_after_or(self.resets_at.as_ref())
),
Some(PlanType::Known(KnownPlan::Team)) | Some(PlanType::Known(KnownPlan::Business)) => {
@@ -455,12 +455,12 @@ impl std::fmt::Display for UsageLimitReachedError {
}
Some(PlanType::Known(KnownPlan::Free)) | Some(PlanType::Known(KnownPlan::Go)) => {
format!(
- "You've hit your usage limit. Upgrade to Plus to continue using Codex (https://chatgpt.com/explore/plus),{}",
+ "You've hit your usage limit. Upgrade to Plus to continue using Orbit CLI,{}",
retry_suffix_after_or(self.resets_at.as_ref())
)
}
Some(PlanType::Known(KnownPlan::Pro)) => format!(
- "You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits{}",
+ "You've hit your usage limit. Please try again{}",
retry_suffix_after_or(self.resets_at.as_ref())
),
Some(PlanType::Known(KnownPlan::Enterprise))
@@ -715,7 +715,7 @@ mod tests {
};
assert_eq!(
err.to_string(),
- "You've hit your usage limit. Upgrade to Pro (https://chatgpt.com/explore/pro), visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again later."
+ "You've hit your usage limit. Upgrade to Pro or try again later."
);
}
@@ -836,7 +836,7 @@ mod tests {
};
assert_eq!(
err.to_string(),
- "You've hit your usage limit. Upgrade to Plus to continue using Codex (https://chatgpt.com/explore/plus), or try again later."
+ "You've hit your usage limit. Upgrade to Plus to continue using Orbit CLI, or try again later."
);
}
@@ -850,7 +850,7 @@ mod tests {
};
assert_eq!(
err.to_string(),
- "You've hit your usage limit. Upgrade to Plus to continue using Codex (https://chatgpt.com/explore/plus), or try again later."
+ "You've hit your usage limit. Upgrade to Plus to continue using Orbit CLI, or try again later."
);
}
@@ -928,7 +928,7 @@ mod tests {
promo_message: None,
};
let expected = format!(
- "You've hit your usage limit. Visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at {expected_time}."
+ "You've hit your usage limit. Please try again or try again at {expected_time}."
);
assert_eq!(err.to_string(), expected);
});
@@ -949,7 +949,7 @@ mod tests {
..rate_limit_snapshot()
})),
promo_message: Some(
- "Visit https://chatgpt.com/codex/settings/usage to purchase more credits"
+ "Please try again later"
.to_string(),
),
};
@@ -1082,7 +1082,7 @@ mod tests {
promo_message: None,
};
let expected = format!(
- "You've hit your usage limit. Upgrade to Pro (https://chatgpt.com/explore/pro), visit https://chatgpt.com/codex/settings/usage to purchase more credits or try again at {expected_time}."
+ "You've hit your usage limit. Upgrade to Pro or try again at {expected_time}."
);
assert_eq!(err.to_string(), expected);
});
@@ -1134,11 +1134,11 @@ mod tests {
resets_at: Some(resets_at),
rate_limits: Some(Box::new(rate_limit_snapshot())),
promo_message: Some(
- "To continue using Codex, start a free trial of today".to_string(),
+ "To continue using Orbit CLI, start a free trial of today".to_string(),
),
};
let expected = format!(
- "You've hit your usage limit. To continue using Codex, start a free trial of today, or try again at {expected_time}."
+ "You've hit your usage limit. To continue using Orbit CLI, start a free trial of today, or try again at {expected_time}."
);
assert_eq!(err.to_string(), expected);
});
diff --git a/codex-rs/core/src/external_agent_config.rs b/codex-rs/core/src/external_agent_config.rs
index 1d466e6f4..e746ba13c 100644
--- a/codex-rs/core/src/external_agent_config.rs
+++ b/codex-rs/core/src/external_agent_config.rs
@@ -423,7 +423,7 @@ fn rewrite_claude_terms(content: &str) -> String {
"claudecode",
"claude",
] {
- rewritten = replace_case_insensitive_with_boundaries(&rewritten, from, "Codex");
+ rewritten = replace_case_insensitive_with_boundaries(&rewritten, from, "Orbit CLI");
}
rewritten
}
@@ -749,7 +749,7 @@ mod tests {
assert_eq!(
fs::read_to_string(codex_home.join("AGENTS.md")).expect("read agents"),
- "Codex guidance"
+ "Orbit CLI guidance"
);
let parsed_config: TomlValue = toml::from_str(
@@ -772,7 +772,7 @@ mod tests {
assert_eq!(
fs::read_to_string(agents_skills.join("skill-a").join("SKILL.md"))
.expect("read copied skill"),
- "Use Codex and Codex utilities."
+ "Use Orbit CLI and Orbit CLI utilities."
);
}
@@ -887,7 +887,7 @@ mod tests {
assert_eq!(
fs::read_to_string(repo_root.join("AGENTS.md")).expect("read target"),
- "Codex\nCodex\nCodex\nSee AGENTS.md\n"
+ "Orbit CLI\nOrbit CLI\nOrbit CLI\nSee AGENTS.md\n"
);
assert_eq!(
fs::read_to_string(repo_with_existing_target.join("AGENTS.md"))
@@ -914,7 +914,7 @@ mod tests {
assert_eq!(
fs::read_to_string(repo_root.join("AGENTS.md")).expect("read target"),
- "Codex guidance"
+ "Orbit CLI guidance"
);
}
}
diff --git a/codex-rs/core/src/features.rs b/codex-rs/core/src/features.rs
index 8f8178d20..00580cb9c 100644
--- a/codex-rs/core/src/features.rs
+++ b/codex-rs/core/src/features.rs
@@ -383,7 +383,7 @@ fn legacy_usage_notice(alias: &str, feature: Feature) -> (String, Option
None
} else {
Some(format!(
- "Enable it with `--enable {canonical}` or `[features].{canonical}` in config.toml. See https://developers.openai.com/codex/config-basic#feature-flags for details."
+ "Enable it with `--enable {canonical}` or `[features].{canonical}` in config.toml. See https://developers.recursive.com/orbit-cli/config-basic#feature-flags for details."
))
};
(summary, details)
@@ -464,7 +464,7 @@ pub const FEATURES: &[FeatureSpec] = &[
stage: Stage::Experimental {
name: "JavaScript REPL",
menu_description: "Enable a persistent Node-backed JavaScript REPL for interactive website debugging and other inline JavaScript execution capabilities. Requires Node >= v22.22.0 installed.",
- announcement: "NEW: JavaScript REPL is now available in /experimental. Enable it, then start a new chat or restart Codex to use it.",
+ announcement: "NEW: JavaScript REPL is now available in /experimental. Enable it, then start a new chat or restart Orbit CLI to use it.",
},
default_enabled: false,
},
@@ -542,7 +542,7 @@ pub const FEATURES: &[FeatureSpec] = &[
stage: Stage::Experimental {
name: "Bubblewrap sandbox",
menu_description: "Try the new linux sandbox based on bubblewrap.",
- announcement: "NEW: Linux bubblewrap sandbox offers stronger filesystem and network controls than Landlock alone, including keeping .git and .codex read-only inside writable workspaces. Enable it in /experimental and restart Codex to try it.",
+ announcement: "NEW: Linux bubblewrap sandbox offers stronger filesystem and network controls than Landlock alone, including keeping .git and .codex read-only inside writable workspaces. Enable it in /experimental and restart Orbit CLI to try it.",
},
#[cfg(not(target_os = "linux"))]
stage: Stage::UnderDevelopment,
@@ -595,8 +595,8 @@ pub const FEATURES: &[FeatureSpec] = &[
key: "multi_agent",
stage: Stage::Experimental {
name: "Multi-agents",
- menu_description: "Ask Codex to spawn multiple agents to parallelize the work and win in efficiency.",
- announcement: "NEW: Multi-agents can now be spawned by Codex. Enable in /experimental and restart Codex!",
+ menu_description: "Ask Orbit CLI to spawn multiple agents to parallelize the work and win in efficiency.",
+ announcement: "NEW: Multi-agents can now be spawned by Orbit CLI. Enable in /experimental and restart Orbit CLI!",
},
default_enabled: false,
},
@@ -605,8 +605,8 @@ pub const FEATURES: &[FeatureSpec] = &[
key: "apps",
stage: Stage::Experimental {
name: "Apps",
- menu_description: "Use a connected ChatGPT App using \"$\". Install Apps via /apps command. Restart Codex after enabling.",
- announcement: "NEW: Use ChatGPT Apps (Connectors) in Codex via $ mentions. Enable in /experimental and restart Codex!",
+ menu_description: "Use a connected ChatGPT App using \"$\". Install Apps via /apps command. Restart Orbit CLI after enabling.",
+ announcement: "NEW: Use ChatGPT Apps (Connectors) in Orbit CLI via $ mentions. Enable in /experimental and restart Orbit CLI!",
},
default_enabled: false,
},
@@ -674,7 +674,7 @@ pub const FEATURES: &[FeatureSpec] = &[
)) {
Stage::Experimental {
name: "Prevent sleep while running",
- menu_description: "Keep your computer awake while Codex is running a thread.",
+ menu_description: "Keep your computer awake while Orbit CLI is running a thread.",
announcement: "NEW: Prevent sleep while running is now available in /experimental.",
}
} else {
diff --git a/codex-rs/core/src/mcp_connection_manager.rs b/codex-rs/core/src/mcp_connection_manager.rs
index 12e3d325d..99f89d696 100644
--- a/codex-rs/core/src/mcp_connection_manager.rs
+++ b/codex-rs/core/src/mcp_connection_manager.rs
@@ -1248,7 +1248,7 @@ async fn start_server_task(
client_info: Implementation {
name: "codex-mcp-client".to_owned(),
version: env!("CARGO_PKG_VERSION").to_owned(),
- title: Some("Codex".into()),
+ title: Some("Orbit CLI".into()),
description: None,
icons: None,
website_url: None,
diff --git a/codex-rs/core/src/memories/prompts.rs b/codex-rs/core/src/memories/prompts.rs
index 9b341c1ff..0b92b6d51 100644
--- a/codex-rs/core/src/memories/prompts.rs
+++ b/codex-rs/core/src/memories/prompts.rs
@@ -37,7 +37,7 @@ pub(super) fn build_consolidation_prompt(memory_root: &Path) -> String {
};
template.render().unwrap_or_else(|err| {
warn!("failed to render memories consolidation prompt template: {err}");
- format!("## Memory Phase 2 (Consolidation)\nConsolidate Codex memories in: {memory_root}")
+ format!("## Memory Phase 2 (Consolidation)\nConsolidate Orbit CLI memories in: {memory_root}")
})
}
diff --git a/codex-rs/core/src/model_provider_info.rs b/codex-rs/core/src/model_provider_info.rs
index 5d5ee3669..63f52afd2 100644
--- a/codex-rs/core/src/model_provider_info.rs
+++ b/codex-rs/core/src/model_provider_info.rs
@@ -27,9 +27,9 @@ const MAX_STREAM_MAX_RETRIES: u64 = 100;
const MAX_REQUEST_MAX_RETRIES: u64 = 100;
const OPENAI_PROVIDER_NAME: &str = "OpenAI";
-const CHAT_WIRE_API_REMOVED_ERROR: &str = "`wire_api = \"chat\"` is no longer supported.\nHow to fix: set `wire_api = \"responses\"` in your provider config.\nMore info: https://github.com/openai/codex/discussions/7782";
+const CHAT_WIRE_API_REMOVED_ERROR: &str = "`wire_api = \"chat\"` is no longer supported.\nHow to fix: set `wire_api = \"responses\"` in your provider config.\nMore info: https://github.com/Recusive/Orbit-CLI/discussions/7782";
pub(crate) const LEGACY_OLLAMA_CHAT_PROVIDER_ID: &str = "ollama-chat";
-pub(crate) const OLLAMA_CHAT_PROVIDER_REMOVED_ERROR: &str = "`ollama-chat` is no longer supported.\nHow to fix: replace `ollama-chat` with `ollama` in `model_provider`, `oss_provider`, or `--local-provider`.\nMore info: https://github.com/openai/codex/discussions/7782";
+pub(crate) const OLLAMA_CHAT_PROVIDER_REMOVED_ERROR: &str = "`ollama-chat` is no longer supported.\nHow to fix: replace `ollama-chat` with `ollama` in `model_provider`, `oss_provider`, or `--local-provider`.\nMore info: https://github.com/Recusive/Orbit-CLI/discussions/7782";
/// Wire protocol that the provider speaks.
#[derive(Debug, Clone, Copy, Default, PartialEq, Eq, Serialize, JsonSchema)]
diff --git a/codex-rs/core/src/models_manager/model_info.rs b/codex-rs/core/src/models_manager/model_info.rs
index 19a945f95..33832309a 100644
--- a/codex-rs/core/src/models_manager/model_info.rs
+++ b/codex-rs/core/src/models_manager/model_info.rs
@@ -13,7 +13,7 @@ use crate::truncate::approx_bytes_for_tokens;
use tracing::warn;
pub const BASE_INSTRUCTIONS: &str = include_str!("../../prompt.md");
-const DEFAULT_PERSONALITY_HEADER: &str = "You are Codex, a coding agent based on GPT-5. You and the user share the same workspace and collaborate to achieve the user's goals.";
+const DEFAULT_PERSONALITY_HEADER: &str = "You are Orbit CLI, a coding agent based on GPT-5. You and the user share the same workspace and collaborate to achieve the user's goals.";
const LOCAL_FRIENDLY_TEMPLATE: &str =
"You optimize for team morale and being a supportive teammate as much as code quality.";
const LOCAL_PRAGMATIC_TEMPLATE: &str = "You are a deeply pragmatic, effective software engineer.";
diff --git a/codex-rs/core/src/network_proxy_loader.rs b/codex-rs/core/src/network_proxy_loader.rs
index ce865756e..9b5f2e9a4 100644
--- a/codex-rs/core/src/network_proxy_loader.rs
+++ b/codex-rs/core/src/network_proxy_loader.rs
@@ -51,7 +51,7 @@ async fn build_config_state_with_mtimes() -> Result<(ConfigState, Vec (policy, None),
diff --git a/codex-rs/core/src/rollout/error.rs b/codex-rs/core/src/rollout/error.rs
index ee48bb202..96bb4736e 100644
--- a/codex-rs/core/src/rollout/error.rs
+++ b/codex-rs/core/src/rollout/error.rs
@@ -20,16 +20,16 @@ fn map_rollout_io_error(io_err: &std::io::Error, codex_home: &Path) -> Option format!(
- "Codex cannot access session files at {} (permission denied). If sessions were created using sudo, fix ownership: sudo chown -R $(whoami) {}",
+ "Orbit CLI cannot access session files at {} (permission denied). If sessions were created using sudo, fix ownership: sudo chown -R $(whoami) {}",
sessions_dir.display(),
codex_home.display()
),
ErrorKind::NotFound => format!(
- "Session storage missing at {}. Create the directory or choose a different Codex home.",
+ "Session storage missing at {}. Create the directory or choose a different Orbit CLI home.",
sessions_dir.display()
),
ErrorKind::AlreadyExists => format!(
- "Session storage path {} is blocked by an existing file. Remove or rename it so Codex can create sessions.",
+ "Session storage path {} is blocked by an existing file. Remove or rename it so Orbit CLI can create sessions.",
sessions_dir.display()
),
ErrorKind::InvalidData | ErrorKind::InvalidInput => format!(
diff --git a/codex-rs/core/templates/agents/orchestrator.md b/codex-rs/core/templates/agents/orchestrator.md
index e0976f52e..b54a1fca1 100644
--- a/codex-rs/core/templates/agents/orchestrator.md
+++ b/codex-rs/core/templates/agents/orchestrator.md
@@ -1,4 +1,4 @@
-You are Codex, a coding agent based on GPT-5. You and the user share the same workspace and collaborate to achieve the user's goals.
+You are Orbit CLI, a coding agent based on GPT-5. You and the user share the same workspace and collaborate to achieve the user's goals.
# Personality
You are a collaborative, highly capable pair-programmer AI. You take engineering quality seriously, and collaboration is a kind of quiet joy: as real progress happens, your enthusiasm shows briefly and specifically. Your default personality and tone is concise, direct, and friendly. You communicate efficiently, always keeping the user clearly informed about ongoing actions without unnecessary detail. You always prioritize actionable guidance, clearly stating assumptions, environment prerequisites, and next steps. Unless explicitly asked, you avoid excessively verbose explanations about your work.
diff --git a/codex-rs/core/templates/memories/consolidation.md b/codex-rs/core/templates/memories/consolidation.md
index b880bdfd6..66ab76682 100644
--- a/codex-rs/core/templates/memories/consolidation.md
+++ b/codex-rs/core/templates/memories/consolidation.md
@@ -302,7 +302,7 @@ Keep it **fun but useful**: crisp narrative voice, high-signal, and easy to skim
For example, include (when known):
- What they do / care about most (roles, recurring projects, goals)
-- Typical workflows and tools (how they like to work, how they use Codex/agents, preferred formats)
+- Typical workflows and tools (how they like to work, how they use Orbit CLI/agents, preferred formats)
- Communication preferences (tone, structure, what annoys them, what โgoodโ looks like)
- Reusable constraints and gotchas (env quirks, constraints, defaults, โalways/neverโ rules)
diff --git a/codex-rs/core/templates/model_instructions/gpt-5.2-codex_instructions_template.md b/codex-rs/core/templates/model_instructions/gpt-5.2-codex_instructions_template.md
index 23ad1ed69..34b2d371d 100644
--- a/codex-rs/core/templates/model_instructions/gpt-5.2-codex_instructions_template.md
+++ b/codex-rs/core/templates/model_instructions/gpt-5.2-codex_instructions_template.md
@@ -1,4 +1,4 @@
-You are Codex, a coding agent based on GPT-5. You and the user share the same workspace and collaborate to achieve the user's goals.
+You are Orbit CLI, a coding agent based on GPT-5. You and the user share the same workspace and collaborate to achieve the user's goals.
{{ personality }}
diff --git a/codex-rs/core/tests/common/lib.rs b/codex-rs/core/tests/common/lib.rs
index a26cd5ae7..3203f872c 100644
--- a/codex-rs/core/tests/common/lib.rs
+++ b/codex-rs/core/tests/common/lib.rs
@@ -459,7 +459,7 @@ macro_rules! skip_if_no_network {
() => {{
if ::std::env::var($crate::sandbox_network_env_var()).is_ok() {
println!(
- "Skipping test because it cannot execute when network is disabled in a Codex sandbox."
+ "Skipping test because it cannot execute when network is disabled in an Orbit CLI sandbox."
);
return;
}
@@ -467,7 +467,7 @@ macro_rules! skip_if_no_network {
($return_value:expr $(,)?) => {{
if ::std::env::var($crate::sandbox_network_env_var()).is_ok() {
println!(
- "Skipping test because it cannot execute when network is disabled in a Codex sandbox."
+ "Skipping test because it cannot execute when network is disabled in an Orbit CLI sandbox."
);
return $return_value;
}
diff --git a/codex-rs/core/tests/suite/undo.rs b/codex-rs/core/tests/suite/undo.rs
index e129a815b..a0cce476b 100644
--- a/codex-rs/core/tests/suite/undo.rs
+++ b/codex-rs/core/tests/suite/undo.rs
@@ -65,12 +65,12 @@ fn init_git_repo(path: &Path) -> Result<()> {
// CI variance (default-branch hints, line ending differences, etc.).
git(path, &["init", "--initial-branch=main"])?;
git(path, &["config", "core.autocrlf", "false"])?;
- git(path, &["config", "user.name", "Codex Tests"])?;
- git(path, &["config", "user.email", "codex-tests@example.com"])?;
+ git(path, &["config", "user.name", "Orbit CLI Tests"])?;
+ git(path, &["config", "user.email", "orbit-cli-tests@example.com"])?;
// Create README.txt
let readme_path = path.join("README.txt");
- fs::write(&readme_path, "Test repository initialized by Codex.\n")?;
+ fs::write(&readme_path, "Test repository initialized by Orbit CLI.\n")?;
// Stage and commit
git(path, &["add", "README.txt"])?;
diff --git a/codex-rs/core/tests/suite/view_image.rs b/codex-rs/core/tests/suite/view_image.rs
index 36ccf1a25..064b5a2a5 100644
--- a/codex-rs/core/tests/suite/view_image.rs
+++ b/codex-rs/core/tests/suite/view_image.rs
@@ -556,7 +556,7 @@ async fn view_image_tool_placeholder_for_non_image_files() -> anyhow::Result<()>
.expect("placeholder text present");
assert!(
- placeholder.contains("Codex could not read the local image at")
+ placeholder.contains("Orbit CLI could not read the local image at")
&& placeholder.contains("unsupported MIME type `application/json`"),
"placeholder should describe the unsupported file type: {placeholder}"
);
diff --git a/codex-rs/debug-client/src/main.rs b/codex-rs/debug-client/src/main.rs
index e51376fb5..d7c3aab89 100644
--- a/codex-rs/debug-client/src/main.rs
+++ b/codex-rs/debug-client/src/main.rs
@@ -24,7 +24,7 @@ use crate::output::Output;
use crate::state::ReaderEvent;
#[derive(Parser)]
-#[command(author = "Codex", version, about = "Minimal app-server client")]
+#[command(author = "Orbit CLI", version, about = "Minimal app-server client")]
struct Cli {
/// Path to the `codex` CLI binary.
#[arg(long, default_value = "codex")]
diff --git a/codex-rs/default.nix b/codex-rs/default.nix
index 80896689f..70060b7ed 100644
--- a/codex-rs/default.nix
+++ b/codex-rs/default.nix
@@ -48,7 +48,7 @@ rustPlatform.buildRustPackage (_: {
};
meta = with lib; {
- description = "OpenAI Codex commandโline interface rust implementation";
+ description = "Orbit CLI rust implementation";
license = licenses.asl20;
homepage = "https://github.com/openai/codex";
mainProgram = "codex";
diff --git a/codex-rs/exec/src/cli.rs b/codex-rs/exec/src/cli.rs
index 6cda7e408..980a5bdf2 100644
--- a/codex-rs/exec/src/cli.rs
+++ b/codex-rs/exec/src/cli.rs
@@ -63,7 +63,7 @@ pub struct Cli {
#[clap(long = "cd", short = 'C', value_name = "DIR")]
pub cwd: Option,
- /// Allow running Codex outside a Git repository.
+ /// Allow running Orbit CLI outside a Git repository.
#[arg(long = "skip-git-repo-check", global = true, default_value_t = false)]
pub skip_git_repo_check: bool,
diff --git a/codex-rs/exec/src/event_processor_with_human_output.rs b/codex-rs/exec/src/event_processor_with_human_output.rs
index a3a29852b..8f8d19505 100644
--- a/codex-rs/exec/src/event_processor_with_human_output.rs
+++ b/codex-rs/exec/src/event_processor_with_human_output.rs
@@ -181,7 +181,7 @@ impl EventProcessor for EventProcessorWithHumanOutput {
const VERSION: &str = env!("CARGO_PKG_VERSION");
ts_msg!(
self,
- "OpenAI Codex v{} (research preview)\n--------",
+ "Orbit CLI v{}\n--------",
VERSION
);
diff --git a/codex-rs/exec/src/lib.rs b/codex-rs/exec/src/lib.rs
index 1dca110af..29d447ce5 100644
--- a/codex-rs/exec/src/lib.rs
+++ b/codex-rs/exec/src/lib.rs
@@ -492,7 +492,7 @@ pub async fn run_main(cli: Cli, arg0_paths: Arg0DispatchPaths) -> anyhow::Result
// is using.
event_processor.print_config_summary(&config, &prompt_summary, &session_configured);
- info!("Codex initialized with event: {session_configured:?}");
+ info!("Orbit CLI initialized with event: {session_configured:?}");
let (tx, mut rx) = tokio::sync::mpsc::unbounded_channel::();
let attached_threads = Arc::new(Mutex::new(HashSet::from([primary_thread_id])));
diff --git a/codex-rs/feedback/src/lib.rs b/codex-rs/feedback/src/lib.rs
index a4fe6cc18..2a67e0364 100644
--- a/codex-rs/feedback/src/lib.rs
+++ b/codex-rs/feedback/src/lib.rs
@@ -285,7 +285,7 @@ impl CodexLogSnapshot {
let mut envelope = Envelope::new();
let title = format!(
- "[{}]: Codex session {}",
+ "[{}]: Orbit CLI session {}",
display_classification(classification),
self.thread_id
);
diff --git a/codex-rs/login/src/device_code_auth.rs b/codex-rs/login/src/device_code_auth.rs
index 9bf477181..73afa1384 100644
--- a/codex-rs/login/src/device_code_auth.rs
+++ b/codex-rs/login/src/device_code_auth.rs
@@ -83,7 +83,7 @@ async fn request_user_code(
if status == StatusCode::NOT_FOUND {
return Err(io::Error::new(
io::ErrorKind::NotFound,
- "device code login is not enabled for this Codex server. Use the browser login or verify the server URL.",
+ "device code login is not enabled for this Orbit CLI server. Use the browser login or verify the server URL.",
));
}
@@ -149,7 +149,7 @@ async fn poll_for_token(
fn print_device_code_prompt(verification_url: &str, code: &str) {
let version = env!("CARGO_PKG_VERSION");
println!(
- "\nWelcome to Codex [v{ANSI_GRAY}{version}{ANSI_RESET}]\n{ANSI_GRAY}OpenAI's command-line coding agent{ANSI_RESET}\n\
+ "\nWelcome to Orbit CLI [v{ANSI_GRAY}{version}{ANSI_RESET}]\n{ANSI_GRAY}Recursive's command-line coding agent{ANSI_RESET}\n\
\nFollow these steps to sign in with ChatGPT using device code authorization:\n\
\n1. Open this link in your browser and sign in to your account\n {ANSI_BLUE}{verification_url}{ANSI_RESET}\n\
\n2. Enter this one-time code {ANSI_GRAY}(expires in 15 minutes){ANSI_RESET}\n {ANSI_BLUE}{code}{ANSI_RESET}\n\
diff --git a/codex-rs/login/src/server.rs b/codex-rs/login/src/server.rs
index 53b4ad360..8ae1075f1 100644
--- a/codex-rs/login/src/server.rs
+++ b/codex-rs/login/src/server.rs
@@ -329,7 +329,7 @@ async fn process_request(
match tiny_http::Header::from_bytes(&b"Location"[..], success_url.as_bytes()) {
Ok(header) => HandledRequest::RedirectWithHeader(header),
Err(_) => login_error_response(
- "Sign-in completed but redirecting back to Codex failed.",
+ "Sign-in completed but redirecting back to Orbit CLI failed.",
io::ErrorKind::Other,
Some("redirect_failed"),
None,
@@ -747,7 +747,7 @@ fn is_missing_codex_entitlement_error(error_code: &str, error_description: Optio
/// Converts OAuth callback errors into a user-facing message.
fn oauth_callback_error_message(error_code: &str, error_description: Option<&str>) -> String {
if is_missing_codex_entitlement_error(error_code, error_description) {
- return "Codex is not enabled for your workspace. Contact your workspace administrator to request access to Codex.".to_string();
+ return "Orbit CLI is not enabled for your workspace. Contact your workspace administrator to request access to Orbit CLI.".to_string();
}
if let Some(description) = error_description
@@ -800,11 +800,11 @@ fn render_login_error_page(
let (title, display_message, display_description, help_text) =
if is_missing_codex_entitlement_error(code, error_description) {
(
- "You do not have access to Codex".to_string(),
- "This account is not currently authorized to use Codex in this workspace."
+ "You do not have access to Orbit CLI".to_string(),
+ "This account is not currently authorized to use Orbit CLI in this workspace."
.to_string(),
- "Contact your workspace administrator to request access to Codex.".to_string(),
- "Contact your workspace administrator to get access to Codex, then return to Codex and try again."
+ "Contact your workspace administrator to request access to Orbit CLI.".to_string(),
+ "Contact your workspace administrator to get access to Orbit CLI, then return to Orbit CLI and try again."
.to_string(),
)
} else {
@@ -812,7 +812,7 @@ fn render_login_error_page(
"Sign-in could not be completed".to_string(),
message.to_string(),
error_description.unwrap_or(message).to_string(),
- "Return to Codex to retry, switch accounts, or contact your workspace admin if access is restricted."
+ "Return to Orbit CLI to retry, switch accounts, or contact your workspace admin if access is restricted."
.to_string(),
)
};
diff --git a/codex-rs/login/tests/suite/login_server_e2e.rs b/codex-rs/login/tests/suite/login_server_e2e.rs
index cdd4019f7..50f865a59 100644
--- a/codex-rs/login/tests/suite/login_server_e2e.rs
+++ b/codex-rs/login/tests/suite/login_server_e2e.rs
@@ -287,8 +287,8 @@ async fn oauth_access_denied_missing_entitlement_blocks_login_with_clear_error()
assert!(resp.status().is_success());
let body = resp.text().await?;
assert!(
- body.contains("You do not have access to Codex"),
- "error body should clearly explain the Codex access denial"
+ body.contains("You do not have access to Orbit CLI"),
+ "error body should clearly explain the Orbit CLI access denial"
);
assert!(
body.contains("Contact your workspace administrator"),
@@ -362,7 +362,7 @@ async fn oauth_access_denied_unknown_reason_uses_generic_error_page() -> Result<
"generic oauth denial should preserve the oauth error details"
);
assert!(
- body.contains("Return to Codex to retry"),
+ body.contains("Return to Orbit CLI to retry"),
"generic oauth denial should keep the generic help text"
);
assert!(
@@ -374,11 +374,11 @@ async fn oauth_access_denied_unknown_reason_uses_generic_error_page() -> Result<
"generic oauth denial should include the oauth error description"
);
assert!(
- !body.contains("You do not have access to Codex"),
+ !body.contains("You do not have access to Orbit CLI"),
"generic oauth denial should not show the entitlement-specific title"
);
assert!(
- !body.contains("get access to Codex"),
+ !body.contains("get access to Orbit CLI"),
"generic oauth denial should not show the entitlement-specific admin guidance"
);
diff --git a/codex-rs/mcp-server/src/codex_tool_config.rs b/codex-rs/mcp-server/src/codex_tool_config.rs
index f3f66b555..9d78ada7a 100644
--- a/codex-rs/mcp-server/src/codex_tool_config.rs
+++ b/codex-rs/mcp-server/src/codex_tool_config.rs
@@ -21,7 +21,7 @@ use std::sync::Arc;
#[derive(Debug, Clone, Serialize, Deserialize, JsonSchema, Default)]
#[serde(rename_all = "kebab-case")]
pub struct CodexToolCallParam {
- /// The *initial user prompt* to start the Codex conversation.
+ /// The *initial user prompt* to start the Orbit CLI conversation.
pub prompt: String,
/// Optional override for the model name (e.g. 'gpt-5.2', 'gpt-5.2-codex').
@@ -116,15 +116,15 @@ pub(crate) fn create_tool_for_codex_tool_call_param() -> Tool {
.into_generator()
.into_root_schema_for::();
- let input_schema = create_tool_input_schema(schema, "Codex tool schema should serialize");
+ let input_schema = create_tool_input_schema(schema, "Orbit CLI tool schema should serialize");
Tool {
name: "codex".into(),
- title: Some("Codex".to_string()),
+ title: Some("Orbit CLI".to_string()),
input_schema,
output_schema: Some(codex_tool_output_schema()),
description: Some(
- "Run a Codex session. Accepts configuration parameters matching the Codex Config struct."
+ "Run an Orbit CLI session. Accepts configuration parameters matching the Orbit CLI Config struct."
.into(),
),
annotations: None,
@@ -204,13 +204,13 @@ pub struct CodexToolCallReplyParam {
#[serde(default, skip_serializing_if = "Option::is_none")]
conversation_id: Option,
- /// The thread id for this Codex session.
+ /// The thread id for this Orbit CLI session.
/// This field is required, but we keep it optional here for backward
/// compatibility for clients that still use conversationId.
#[serde(default, skip_serializing_if = "Option::is_none")]
thread_id: Option,
- /// The *next user prompt* to continue the Codex conversation.
+ /// The *next user prompt* to continue the Orbit CLI conversation.
pub prompt: String,
}
@@ -240,15 +240,15 @@ pub(crate) fn create_tool_for_codex_tool_call_reply_param() -> Tool {
.into_generator()
.into_root_schema_for::();
- let input_schema = create_tool_input_schema(schema, "Codex reply tool schema should serialize");
+ let input_schema = create_tool_input_schema(schema, "Orbit CLI reply tool schema should serialize");
Tool {
name: "codex-reply".into(),
- title: Some("Codex Reply".to_string()),
+ title: Some("Orbit CLI Reply".to_string()),
input_schema,
output_schema: Some(codex_tool_output_schema()),
description: Some(
- "Continue a Codex conversation by providing the thread id and prompt.".into(),
+ "Continue an Orbit CLI conversation by providing the thread id and prompt.".into(),
),
annotations: None,
execution: None,
@@ -302,7 +302,7 @@ mod tests {
let tool = create_tool_for_codex_tool_call_param();
let tool_json = serde_json::to_value(&tool).expect("tool serializes");
let expected_tool_json = serde_json::json!({
- "description": "Run a Codex session. Accepts configuration parameters matching the Codex Config struct.",
+ "description": "Run an Orbit CLI session. Accepts configuration parameters matching the Orbit CLI Config struct.",
"inputSchema": {
"properties": {
"approval-policy": {
@@ -345,7 +345,7 @@ mod tests {
"type": "string"
},
"prompt": {
- "description": "The *initial user prompt* to start the Codex conversation.",
+ "description": "The *initial user prompt* to start the Orbit CLI conversation.",
"type": "string"
},
"sandbox": {
@@ -379,7 +379,7 @@ mod tests {
],
"type": "object"
},
- "title": "Codex"
+ "title": "Orbit CLI"
});
assert_eq!(expected_tool_json, tool_json);
}
@@ -389,7 +389,7 @@ mod tests {
let tool = create_tool_for_codex_tool_call_reply_param();
let tool_json = serde_json::to_value(&tool).expect("tool serializes");
let expected_tool_json = serde_json::json!({
- "description": "Continue a Codex conversation by providing the thread id and prompt.",
+ "description": "Continue an Orbit CLI conversation by providing the thread id and prompt.",
"inputSchema": {
"properties": {
"conversationId": {
@@ -397,11 +397,11 @@ mod tests {
"type": "string"
},
"prompt": {
- "description": "The *next user prompt* to continue the Codex conversation.",
+ "description": "The *next user prompt* to continue the Orbit CLI conversation.",
"type": "string"
},
"threadId": {
- "description": "The thread id for this Codex session. This field is required, but we keep it optional here for backward compatibility for clients that still use conversationId.",
+ "description": "The thread id for this Orbit CLI session. This field is required, but we keep it optional here for backward compatibility for clients that still use conversationId.",
"type": "string"
}
},
@@ -426,7 +426,7 @@ mod tests {
],
"type": "object"
},
- "title": "Codex Reply",
+ "title": "Orbit CLI Reply",
});
assert_eq!(expected_tool_json, tool_json);
}
diff --git a/codex-rs/mcp-server/src/codex_tool_runner.rs b/codex-rs/mcp-server/src/codex_tool_runner.rs
index e624fe2b1..f6eba82e9 100644
--- a/codex-rs/mcp-server/src/codex_tool_runner.rs
+++ b/codex-rs/mcp-server/src/codex_tool_runner.rs
@@ -72,7 +72,7 @@ pub async fn run_codex_tool_session(
Ok(res) => res,
Err(e) => {
let result = CallToolResult {
- content: vec![Content::text(format!("Failed to start Codex session: {e}"))],
+ content: vec![Content::text(format!("Failed to start Orbit CLI session: {e}"))],
is_error: Some(true),
structured_content: None,
meta: None,
@@ -394,7 +394,7 @@ async fn run_codex_tool_session_inner(
Err(e) => {
let result = create_call_tool_result_with_thread_id(
thread_id,
- format!("Codex runtime error: {e}"),
+ format!("Orbit CLI runtime error: {e}"),
Some(true),
);
outgoing.send_response(request_id.clone(), result).await;
diff --git a/codex-rs/mcp-server/src/exec_approval.rs b/codex-rs/mcp-server/src/exec_approval.rs
index 3b5ef87cd..c62498265 100644
--- a/codex-rs/mcp-server/src/exec_approval.rs
+++ b/codex-rs/mcp-server/src/exec_approval.rs
@@ -64,7 +64,7 @@ pub(crate) async fn handle_exec_approval_request(
let escaped_command =
shlex::try_join(command.iter().map(String::as_str)).unwrap_or_else(|_| command.join(" "));
let message = format!(
- "Allow Codex to run `{escaped_command}` in `{cwd}`?",
+ "Allow Orbit CLI to run `{escaped_command}` in `{cwd}`?",
cwd = cwd.to_string_lossy()
);
diff --git a/codex-rs/mcp-server/src/message_processor.rs b/codex-rs/mcp-server/src/message_processor.rs
index 6b634e194..1c596666b 100644
--- a/codex-rs/mcp-server/src/message_processor.rs
+++ b/codex-rs/mcp-server/src/message_processor.rs
@@ -214,7 +214,7 @@ impl MessageProcessor {
let server_info = Implementation {
name: "codex-mcp-server".to_string(),
- title: Some("Codex".to_string()),
+ title: Some("Orbit CLI".to_string()),
version: env!("CARGO_PKG_VERSION").to_string(),
description: None,
icons: None,
@@ -363,7 +363,7 @@ impl MessageProcessor {
Err(e) => {
let result = CallToolResult {
content: vec![rmcp::model::Content::text(format!(
- "Failed to load Codex configuration from overrides: {e}"
+ "Failed to load Orbit CLI configuration from overrides: {e}"
))],
structured_content: None,
is_error: Some(true),
@@ -376,7 +376,7 @@ impl MessageProcessor {
Err(e) => {
let result = CallToolResult {
content: vec![rmcp::model::Content::text(format!(
- "Failed to parse configuration for Codex tool: {e}"
+ "Failed to parse configuration for Orbit CLI tool: {e}"
))],
structured_content: None,
is_error: Some(true),
@@ -434,10 +434,10 @@ impl MessageProcessor {
Some(json_val) => match serde_json::from_value::(json_val) {
Ok(params) => params,
Err(e) => {
- tracing::error!("Failed to parse Codex tool call reply parameters: {e}");
+ tracing::error!("Failed to parse Orbit CLI tool call reply parameters: {e}");
let result = CallToolResult {
content: vec![rmcp::model::Content::text(format!(
- "Failed to parse configuration for Codex tool: {e}"
+ "Failed to parse configuration for Orbit CLI tool: {e}"
))],
structured_content: None,
is_error: Some(true),
@@ -579,7 +579,7 @@ impl MessageProcessor {
})
.await
{
- tracing::error!("Failed to submit interrupt to Codex: {e}");
+ tracing::error!("Failed to submit interrupt to Orbit CLI: {e}");
return;
}
// unregister the id so we don't keep it in the map
diff --git a/codex-rs/mcp-server/src/patch_approval.rs b/codex-rs/mcp-server/src/patch_approval.rs
index e392694d3..a18d904ab 100644
--- a/codex-rs/mcp-server/src/patch_approval.rs
+++ b/codex-rs/mcp-server/src/patch_approval.rs
@@ -58,7 +58,7 @@ pub(crate) async fn handle_patch_approval_request(
if let Some(r) = &reason {
message_lines.push(r.clone());
}
- message_lines.push("Allow Codex to apply proposed code changes?".to_string());
+ message_lines.push("Allow Orbit CLI to apply proposed code changes?".to_string());
let params = PatchApprovalElicitRequestParams {
message: message_lines.join("\n"),
diff --git a/codex-rs/mcp-server/tests/common/mcp_process.rs b/codex-rs/mcp-server/tests/common/mcp_process.rs
index 92b5caa65..ed64fd020 100644
--- a/codex-rs/mcp-server/tests/common/mcp_process.rs
+++ b/codex-rs/mcp-server/tests/common/mcp_process.rs
@@ -178,7 +178,7 @@ impl McpProcess {
},
"serverInfo": {
"name": "codex-mcp-server",
- "title": "Codex",
+ "title": "Orbit CLI",
"version": "0.0.0",
"user_agent": user_agent
},
diff --git a/codex-rs/mcp-server/tests/suite/codex_tool.rs b/codex-rs/mcp-server/tests/suite/codex_tool.rs
index 041fcc021..50dcd00e8 100644
--- a/codex-rs/mcp-server/tests/suite/codex_tool.rs
+++ b/codex-rs/mcp-server/tests/suite/codex_tool.rs
@@ -39,7 +39,7 @@ const DEFAULT_READ_TIMEOUT: std::time::Duration = std::time::Duration::from_secs
async fn test_shell_command_approval_triggers_elicitation() {
if env::var(CODEX_SANDBOX_NETWORK_DISABLED_ENV_VAR).is_ok() {
println!(
- "Skipping test because it cannot execute when network is disabled in a Codex sandbox."
+ "Skipping test because it cannot execute when network is disabled in an Orbit CLI sandbox."
);
return;
}
@@ -183,7 +183,7 @@ fn create_expected_elicitation_request_params(
thread_id: codex_protocol::ThreadId,
) -> anyhow::Result {
let expected_message = format!(
- "Allow Codex to run `{}` in `{}`?",
+ "Allow Orbit CLI to run `{}` in `{}`?",
shlex::try_join(command.iter().map(std::convert::AsRef::as_ref))?,
workdir.to_string_lossy()
);
@@ -209,7 +209,7 @@ fn create_expected_elicitation_request_params(
async fn test_patch_approval_triggers_elicitation() {
if env::var(CODEX_SANDBOX_NETWORK_DISABLED_ENV_VAR).is_ok() {
println!(
- "Skipping test because it cannot execute when network is disabled in a Codex sandbox."
+ "Skipping test because it cannot execute when network is disabled in an Orbit CLI sandbox."
);
return;
}
@@ -442,7 +442,7 @@ fn create_expected_patch_approval_elicitation_request_params(
if let Some(r) = &reason {
message_lines.push(r.clone());
}
- message_lines.push("Allow Codex to apply proposed code changes?".to_string());
+ message_lines.push("Allow Orbit CLI to apply proposed code changes?".to_string());
let params_json = serde_json::to_value(PatchApprovalElicitRequestParams {
message: message_lines.join("\n"),
requested_schema: json!({"type":"object","properties":{}}),
diff --git a/codex-rs/network-proxy/src/proxy.rs b/codex-rs/network-proxy/src/proxy.rs
index 0e4a246fe..fda7049a7 100644
--- a/codex-rs/network-proxy/src/proxy.rs
+++ b/codex-rs/network-proxy/src/proxy.rs
@@ -19,7 +19,7 @@ use tokio::task::JoinHandle;
use tracing::warn;
#[derive(Debug, Clone, Parser)]
-#[command(name = "codex-network-proxy", about = "Codex network sandbox proxy")]
+#[command(name = "codex-network-proxy", about = "Orbit CLI network sandbox proxy")]
pub struct Args {}
#[derive(Debug)]
diff --git a/codex-rs/network-proxy/src/responses.rs b/codex-rs/network-proxy/src/responses.rs
index fa002195f..24a107081 100644
--- a/codex-rs/network-proxy/src/responses.rs
+++ b/codex-rs/network-proxy/src/responses.rs
@@ -60,17 +60,17 @@ pub fn blocked_header_value(reason: &str) -> &'static str {
pub fn blocked_message(reason: &str) -> &'static str {
match reason {
REASON_NOT_ALLOWED => {
- "Codex blocked this request: domain not in allowlist (this is not a denylist block)."
+ "Orbit CLI blocked this request: domain not in allowlist (this is not a denylist block)."
}
REASON_NOT_ALLOWED_LOCAL => {
- "Codex blocked this request: local/private addresses not allowed."
+ "Orbit CLI blocked this request: local/private addresses not allowed."
}
- REASON_DENIED => "Codex blocked this request: domain denied by policy.",
+ REASON_DENIED => "Orbit CLI blocked this request: domain denied by policy.",
REASON_METHOD_NOT_ALLOWED => {
- "Codex blocked this request: method not allowed in limited mode."
+ "Orbit CLI blocked this request: method not allowed in limited mode."
}
- REASON_MITM_REQUIRED => "Codex blocked this request: MITM required for limited HTTPS.",
- _ => "Codex blocked this request by network policy.",
+ REASON_MITM_REQUIRED => "Orbit CLI blocked this request: MITM required for limited HTTPS.",
+ _ => "Orbit CLI blocked this request by network policy.",
}
}
@@ -119,7 +119,7 @@ mod tests {
let message = blocked_message_with_policy(REASON_NOT_ALLOWED, &details);
assert_eq!(
message,
- "Codex blocked this request: domain not in allowlist (this is not a denylist block)."
+ "Orbit CLI blocked this request: domain not in allowlist (this is not a denylist block)."
);
}
}
diff --git a/codex-rs/ollama/src/lib.rs b/codex-rs/ollama/src/lib.rs
index 02f375458..31872f346 100644
--- a/codex-rs/ollama/src/lib.rs
+++ b/codex-rs/ollama/src/lib.rs
@@ -71,7 +71,7 @@ pub async fn ensure_responses_supported(provider: &ModelProviderInfo) -> std::io
let min = min_responses_version();
Err(std::io::Error::other(format!(
- "Ollama {version} is too old. Codex requires Ollama {min} or newer."
+ "Ollama {version} is too old. Orbit CLI requires Ollama {min} or newer."
)))
}
diff --git a/codex-rs/protocol/src/models.rs b/codex-rs/protocol/src/models.rs
index ff5030c75..a3ce94a7b 100644
--- a/codex-rs/protocol/src/models.rs
+++ b/codex-rs/protocol/src/models.rs
@@ -587,7 +587,7 @@ fn local_image_error_placeholder(
) -> ContentItem {
ContentItem::InputText {
text: format!(
- "Codex could not read the local image at `{}`: {}",
+ "Orbit CLI could not read the local image at `{}`: {}",
path.display(),
error
),
@@ -652,7 +652,7 @@ fn invalid_image_error_placeholder(
fn unsupported_image_error_placeholder(path: &std::path::Path, mime: &str) -> ContentItem {
ContentItem::InputText {
text: format!(
- "Codex cannot attach image at `{}`: unsupported image format `{}`.",
+ "Orbit CLI cannot attach image at `{}`: unsupported image format `{}`.",
path.display(),
mime
),
@@ -1868,7 +1868,7 @@ mod tests {
ResponseInputItem::Message { content, .. } => {
assert_eq!(content.len(), 1);
let expected = format!(
- "Codex cannot attach image at `{}`: unsupported image format `image/svg+xml`.",
+ "Orbit CLI cannot attach image at `{}`: unsupported image format `image/svg+xml`.",
svg_path.display()
);
match &content[0] {
diff --git a/codex-rs/protocol/src/prompts/base_instructions/default.md b/codex-rs/protocol/src/prompts/base_instructions/default.md
index 4886c7ef4..5edca867d 100644
--- a/codex-rs/protocol/src/prompts/base_instructions/default.md
+++ b/codex-rs/protocol/src/prompts/base_instructions/default.md
@@ -1,4 +1,4 @@
-You are a coding agent running in the Codex CLI, a terminal-based coding assistant. Codex CLI is an open source project led by OpenAI. You are expected to be precise, safe, and helpful.
+You are a coding agent running in the Orbit CLI, a terminal-based coding assistant. Orbit CLI is an open source project led by Recursive. You are expected to be precise, safe, and helpful.
Your capabilities:
@@ -6,7 +6,7 @@ Your capabilities:
- Communicate with the user by streaming thinking & responses, and by making & updating plans.
- Emit function calls to run terminal commands and apply patches. Depending on how this specific run is configured, you can request that these function calls be escalated to the user for approval before running. More on this in the "Sandbox and approvals" section.
-Within this context, Codex refers to the open-source agentic coding interface (not the old Codex language model built by OpenAI).
+Within this context, Orbit CLI refers to the open-source agentic coding interface.
# How you work
diff --git a/codex-rs/protocol/src/protocol.rs b/codex-rs/protocol/src/protocol.rs
index 1928f1bee..b2b4dcc65 100644
--- a/codex-rs/protocol/src/protocol.rs
+++ b/codex-rs/protocol/src/protocol.rs
@@ -70,7 +70,7 @@ pub const ENVIRONMENT_CONTEXT_OPEN_TAG: &str = "";
pub const ENVIRONMENT_CONTEXT_CLOSE_TAG: &str = "";
pub const COLLABORATION_MODE_OPEN_TAG: &str = "";
pub const COLLABORATION_MODE_CLOSE_TAG: &str = "";
-pub const USER_MESSAGE_BEGIN: &str = "## My request for Codex:";
+pub const USER_MESSAGE_BEGIN: &str = "## My request for Orbit CLI:";
/// Submission Queue Entry - requests from user
#[derive(Debug, Clone, Deserialize, Serialize, JsonSchema)]
diff --git a/codex-rs/responses-api-proxy/npm/package.json b/codex-rs/responses-api-proxy/npm/package.json
index 80a060754..0d6111ec7 100644
--- a/codex-rs/responses-api-proxy/npm/package.json
+++ b/codex-rs/responses-api-proxy/npm/package.json
@@ -1,9 +1,9 @@
{
- "name": "@openai/codex-responses-api-proxy",
+ "name": "@recursive/orbit-responses-api-proxy",
"version": "0.0.0-dev",
"license": "Apache-2.0",
"bin": {
- "codex-responses-api-proxy": "bin/codex-responses-api-proxy.js"
+ "orbit-responses-api-proxy": "bin/codex-responses-api-proxy.js"
},
"type": "module",
"engines": {
@@ -15,7 +15,7 @@
],
"repository": {
"type": "git",
- "url": "git+https://github.com/openai/codex.git",
+ "url": "git+https://github.com/Recusive/Orbit-CLI.git",
"directory": "codex-rs/responses-api-proxy/npm"
},
"packageManager": "pnpm@10.29.3+sha512.498e1fb4cca5aa06c1dcf2611e6fafc50972ffe7189998c409e90de74566444298ffe43e6cd2acdc775ba1aa7cc5e092a8b7054c811ba8c5770f84693d33d2dc"
diff --git a/codex-rs/rmcp-client/src/bin/test_stdio_server.rs b/codex-rs/rmcp-client/src/bin/test_stdio_server.rs
index d7708bf5e..2cca65f53 100644
--- a/codex-rs/rmcp-client/src/bin/test_stdio_server.rs
+++ b/codex-rs/rmcp-client/src/bin/test_stdio_server.rs
@@ -166,7 +166,7 @@ impl TestToolServer {
let raw = RawResourceTemplate {
uri_template: "memo://codex/{slug}".to_string(),
name: "codex-memo".to_string(),
- title: Some("Codex Memo".to_string()),
+ title: Some("Orbit CLI Memo".to_string()),
description: Some(
"Template for memo://codex/{slug} resources used in tests.".to_string(),
),
diff --git a/codex-rs/rmcp-client/src/bin/test_streamable_http_server.rs b/codex-rs/rmcp-client/src/bin/test_streamable_http_server.rs
index 821850d2a..68fbe181d 100644
--- a/codex-rs/rmcp-client/src/bin/test_streamable_http_server.rs
+++ b/codex-rs/rmcp-client/src/bin/test_streamable_http_server.rs
@@ -101,7 +101,7 @@ impl TestToolServer {
let raw = RawResourceTemplate {
uri_template: "memo://codex/{slug}".to_string(),
name: "codex-memo".to_string(),
- title: Some("Codex Memo".to_string()),
+ title: Some("Orbit CLI Memo".to_string()),
description: Some(
"Template for memo://codex/{slug} resources used in tests.".to_string(),
),
diff --git a/codex-rs/rmcp-client/src/oauth.rs b/codex-rs/rmcp-client/src/oauth.rs
index cdb64ff15..3271ad274 100644
--- a/codex-rs/rmcp-client/src/oauth.rs
+++ b/codex-rs/rmcp-client/src/oauth.rs
@@ -50,7 +50,7 @@ use tokio::sync::Mutex;
use codex_utils_home_dir::find_codex_home;
-const KEYRING_SERVICE: &str = "Codex MCP Credentials";
+const KEYRING_SERVICE: &str = "Orbit CLI MCP Credentials";
const REFRESH_SKEW_MILLIS: u64 = 30_000;
#[derive(Debug, Clone, Serialize, Deserialize, PartialEq)]
diff --git a/codex-rs/rmcp-client/src/perform_oauth_login.rs b/codex-rs/rmcp-client/src/perform_oauth_login.rs
index 62a9c3b01..4937ab53c 100644
--- a/codex-rs/rmcp-client/src/perform_oauth_login.rs
+++ b/codex-rs/rmcp-client/src/perform_oauth_login.rs
@@ -338,7 +338,7 @@ impl OauthLoginFlow {
let mut oauth_state = OAuthState::new(server_url, Some(http_client)).await?;
let scope_refs: Vec<&str> = scopes.iter().map(String::as_str).collect();
oauth_state
- .start_authorization(&scope_refs, &redirect_uri, Some("Codex"))
+ .start_authorization(&scope_refs, &redirect_uri, Some("Orbit CLI"))
.await?;
let auth_url = oauth_state.get_authorization_url().await?;
let timeout_secs = timeout_secs.unwrap_or(DEFAULT_OAUTH_TIMEOUT_SECS).max(1);
diff --git a/codex-rs/rmcp-client/tests/resources.rs b/codex-rs/rmcp-client/tests/resources.rs
index 9e357bfcb..e337798ee 100644
--- a/codex-rs/rmcp-client/tests/resources.rs
+++ b/codex-rs/rmcp-client/tests/resources.rs
@@ -44,7 +44,7 @@ fn init_params() -> InitializeRequestParams {
client_info: Implementation {
name: "codex-test".into(),
version: "0.0.0-test".into(),
- title: Some("Codex rmcp resource test".into()),
+ title: Some("Orbit CLI rmcp resource test".into()),
description: None,
icons: None,
website_url: None,
@@ -114,7 +114,7 @@ async fn rmcp_client_can_list_and_read_resources() -> anyhow::Result<()> {
rmcp::model::RawResourceTemplate {
uri_template: "memo://codex/{slug}".to_string(),
name: "codex-memo".to_string(),
- title: Some("Codex Memo".to_string()),
+ title: Some("Orbit CLI Memo".to_string()),
description: Some(
"Template for memo://codex/{slug} resources used in tests.".to_string(),
),
diff --git a/codex-rs/skills/src/assets/samples/skill-creator/SKILL.md b/codex-rs/skills/src/assets/samples/skill-creator/SKILL.md
index 72bc0b97e..5677a2d72 100644
--- a/codex-rs/skills/src/assets/samples/skill-creator/SKILL.md
+++ b/codex-rs/skills/src/assets/samples/skill-creator/SKILL.md
@@ -1,6 +1,6 @@
---
name: skill-creator
-description: Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Codex's capabilities with specialized knowledge, workflows, or tool integrations.
+description: Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Orbit CLI's capabilities with specialized knowledge, workflows, or tool integrations.
metadata:
short-description: Create or update a skill
---
@@ -11,9 +11,9 @@ This skill provides guidance for creating effective skills.
## About Skills
-Skills are modular, self-contained folders that extend Codex's capabilities by providing
+Skills are modular, self-contained folders that extend Orbit CLI's capabilities by providing
specialized knowledge, workflows, and tools. Think of them as "onboarding guides" for specific
-domains or tasksโthey transform Codex from a general-purpose agent into a specialized agent
+domains or tasksโthey transform Orbit CLI from a general-purpose agent into a specialized agent
equipped with procedural knowledge that no model can fully possess.
### What Skills Provide
@@ -27,9 +27,9 @@ equipped with procedural knowledge that no model can fully possess.
### Concise is Key
-The context window is a public good. Skills share the context window with everything else Codex needs: system prompt, conversation history, other Skills' metadata, and the actual user request.
+The context window is a public good. Skills share the context window with everything else Orbit CLI needs: system prompt, conversation history, other Skills' metadata, and the actual user request.
-**Default assumption: Codex is already very smart.** Only add context Codex doesn't already have. Challenge each piece of information: "Does Codex really need this explanation?" and "Does this paragraph justify its token cost?"
+**Default assumption: Orbit CLI is already very smart.** Only add context Orbit CLI doesn't already have. Challenge each piece of information: "Does Orbit CLI really need this explanation?" and "Does this paragraph justify its token cost?"
Prefer concise examples over verbose explanations.
@@ -43,7 +43,7 @@ Match the level of specificity to the task's fragility and variability:
**Low freedom (specific scripts, few parameters)**: Use when operations are fragile and error-prone, consistency is critical, or a specific sequence must be followed.
-Think of Codex as exploring a path: a narrow bridge with cliffs needs specific guardrails (low freedom), while an open field allows many routes (high freedom).
+Think of Orbit CLI as exploring a path: a narrow bridge with cliffs needs specific guardrails (low freedom), while an open field allows many routes (high freedom).
### Anatomy of a Skill
@@ -68,7 +68,7 @@ skill-name/
Every SKILL.md consists of:
-- **Frontmatter** (YAML): Contains `name` and `description` fields. These are the only fields that Codex reads to determine when the skill gets used, thus it is very important to be clear and comprehensive in describing what the skill is, and when it should be used.
+- **Frontmatter** (YAML): Contains `name` and `description` fields. These are the only fields that Orbit CLI reads to determine when the skill gets used, thus it is very important to be clear and comprehensive in describing what the skill is, and when it should be used.
- **Body** (Markdown): Instructions and guidance for using the skill. Only loaded AFTER the skill triggers (if at all).
#### Agents metadata (recommended)
@@ -90,27 +90,27 @@ Executable code (Python/Bash/etc.) for tasks that require deterministic reliabil
- **When to include**: When the same code is being rewritten repeatedly or deterministic reliability is needed
- **Example**: `scripts/rotate_pdf.py` for PDF rotation tasks
- **Benefits**: Token efficient, deterministic, may be executed without loading into context
-- **Note**: Scripts may still need to be read by Codex for patching or environment-specific adjustments
+- **Note**: Scripts may still need to be read by Orbit CLI for patching or environment-specific adjustments
##### References (`references/`)
-Documentation and reference material intended to be loaded as needed into context to inform Codex's process and thinking.
+Documentation and reference material intended to be loaded as needed into context to inform Orbit CLI's process and thinking.
-- **When to include**: For documentation that Codex should reference while working
+- **When to include**: For documentation that Orbit CLI should reference while working
- **Examples**: `references/finance.md` for financial schemas, `references/mnda.md` for company NDA template, `references/policies.md` for company policies, `references/api_docs.md` for API specifications
- **Use cases**: Database schemas, API documentation, domain knowledge, company policies, detailed workflow guides
-- **Benefits**: Keeps SKILL.md lean, loaded only when Codex determines it's needed
+- **Benefits**: Keeps SKILL.md lean, loaded only when Orbit CLI determines it's needed
- **Best practice**: If files are large (>10k words), include grep search patterns in SKILL.md
- **Avoid duplication**: Information should live in either SKILL.md or references files, not both. Prefer references files for detailed information unless it's truly core to the skillโthis keeps SKILL.md lean while making information discoverable without hogging the context window. Keep only essential procedural instructions and workflow guidance in SKILL.md; move detailed reference material, schemas, and examples to references files.
##### Assets (`assets/`)
-Files not intended to be loaded into context, but rather used within the output Codex produces.
+Files not intended to be loaded into context, but rather used within the output Orbit CLI produces.
- **When to include**: When the skill needs files that will be used in the final output
- **Examples**: `assets/logo.png` for brand assets, `assets/slides.pptx` for PowerPoint templates, `assets/frontend-template/` for HTML/React boilerplate, `assets/font.ttf` for typography
- **Use cases**: Templates, images, icons, boilerplate code, fonts, sample documents that get copied or modified
-- **Benefits**: Separates output resources from documentation, enables Codex to use files without loading them into context
+- **Benefits**: Separates output resources from documentation, enables Orbit CLI to use files without loading them into context
#### What to Not Include in a Skill
@@ -130,7 +130,7 @@ Skills use a three-level loading system to manage context efficiently:
1. **Metadata (name + description)** - Always in context (~100 words)
2. **SKILL.md body** - When skill triggers (<5k words)
-3. **Bundled resources** - As needed by Codex (Unlimited because scripts can be executed without reading into context window)
+3. **Bundled resources** - As needed by Orbit CLI (Unlimited because scripts can be executed without reading into context window)
#### Progressive Disclosure Patterns
@@ -155,7 +155,7 @@ Extract text with pdfplumber:
- **Examples**: See [EXAMPLES.md](EXAMPLES.md) for common patterns
```
-Codex loads FORMS.md, REFERENCE.md, or EXAMPLES.md only when needed.
+Orbit CLI loads FORMS.md, REFERENCE.md, or EXAMPLES.md only when needed.
**Pattern 2: Domain-specific organization**
@@ -171,7 +171,7 @@ bigquery-skill/
โโโ marketing.md (campaigns, attribution)
```
-When a user asks about sales metrics, Codex only reads sales.md.
+When a user asks about sales metrics, Orbit CLI only reads sales.md.
Similarly, for skills supporting multiple frameworks or variants, organize by variant:
@@ -184,7 +184,7 @@ cloud-deploy/
โโโ azure.md (Azure deployment patterns)
```
-When the user chooses AWS, Codex only reads aws.md.
+When the user chooses AWS, Orbit CLI only reads aws.md.
**Pattern 3: Conditional details**
@@ -205,12 +205,12 @@ For simple edits, modify the XML directly.
**For OOXML details**: See [OOXML.md](OOXML.md)
```
-Codex reads REDLINING.md or OOXML.md only when the user needs those features.
+Orbit CLI reads REDLINING.md or OOXML.md only when the user needs those features.
**Important guidelines:**
- **Avoid deeply nested references** - Keep references one level deep from SKILL.md. All reference files should link directly from SKILL.md.
-- **Structure longer reference files** - For files longer than 100 lines, include a table of contents at the top so Codex can see the full scope when previewing.
+- **Structure longer reference files** - For files longer than 100 lines, include a table of contents at the top so Orbit CLI can see the full scope when previewing.
## Skill Creation Process
@@ -316,7 +316,7 @@ Only include other optional interface fields when the user explicitly provides t
### Step 4: Edit the Skill
-When editing the (newly-generated or existing) skill, remember that the skill is being created for another instance of Codex to use. Include information that would be beneficial and non-obvious to Codex. Consider what procedural knowledge, domain-specific details, or reusable assets would help another Codex instance execute these tasks more effectively.
+When editing the (newly-generated or existing) skill, remember that the skill is being created for another instance of Orbit CLI to use. Include information that would be beneficial and non-obvious to Orbit CLI. Consider what procedural knowledge, domain-specific details, or reusable assets would help another Orbit CLI instance execute these tasks more effectively.
#### Start with Reusable Skill Contents
@@ -335,10 +335,10 @@ If you used `--examples`, delete any placeholder files that are not needed for t
Write the YAML frontmatter with `name` and `description`:
- `name`: The skill name
-- `description`: This is the primary triggering mechanism for your skill, and helps Codex understand when to use the skill.
+- `description`: This is the primary triggering mechanism for your skill, and helps Orbit CLI understand when to use the skill.
- Include both what the Skill does and specific triggers/contexts for when to use it.
- - Include all "when to use" information here - Not in the body. The body is only loaded after triggering, so "When to Use This Skill" sections in the body are not helpful to Codex.
- - Example description for a `docx` skill: "Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. Use when Codex needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks"
+ - Include all "when to use" information here - Not in the body. The body is only loaded after triggering, so "When to Use This Skill" sections in the body are not helpful to Orbit CLI.
+ - Example description for a `docx` skill: "Comprehensive document creation, editing, and analysis with support for tracked changes, comments, formatting preservation, and text extraction. Use when Orbit CLI needs to work with professional documents (.docx files) for: (1) Creating new documents, (2) Modifying or editing content, (3) Working with tracked changes, (4) Adding comments, or any other document tasks"
Do not include any other fields in YAML frontmatter.
diff --git a/codex-rs/skills/src/assets/samples/skill-installer/SKILL.md b/codex-rs/skills/src/assets/samples/skill-installer/SKILL.md
index 313626ac2..e10df3ae4 100644
--- a/codex-rs/skills/src/assets/samples/skill-installer/SKILL.md
+++ b/codex-rs/skills/src/assets/samples/skill-installer/SKILL.md
@@ -1,6 +1,6 @@
---
name: skill-installer
-description: 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).
+description: Install Orbit CLI 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).
metadata:
short-description: Install curated skills from openai/skills or other repos
---
@@ -27,7 +27,7 @@ Skills from {repo}:
Which ones would you like installed?
"""
-After installing a skill, tell the user: "Restart Codex to pick up new skills."
+After installing a skill, tell the user: "Restart Orbit CLI to pick up new skills."
## Scripts
diff --git a/codex-rs/state/src/bin/logs_client.rs b/codex-rs/state/src/bin/logs_client.rs
index 6b0039ee9..646c9e9a7 100644
--- a/codex-rs/state/src/bin/logs_client.rs
+++ b/codex-rs/state/src/bin/logs_client.rs
@@ -12,7 +12,7 @@ use owo_colors::OwoColorize;
#[derive(Debug, Parser)]
#[command(name = "codex-state-logs")]
-#[command(about = "Tail Codex logs from the state SQLite DB with simple filters")]
+#[command(about = "Tail Orbit CLI logs from the state SQLite DB with simple filters")]
struct Args {
/// Path to CODEX_HOME. Defaults to $CODEX_HOME or ~/.codex.
#[arg(long, env = "CODEX_HOME")]
diff --git a/codex-rs/tui/src/app.rs b/codex-rs/tui/src/app.rs
index 6ed8670e0..f282b77c4 100644
--- a/codex-rs/tui/src/app.rs
+++ b/codex-rs/tui/src/app.rs
@@ -2346,7 +2346,7 @@ impl App {
Line::from(vec!["โข ".dim(), "Sandbox ready".into()]),
Line::from(vec![
" ".into(),
- "Codex can now safely edit files and execute commands in your computer"
+ "Orbit CLI can now safely edit files and execute commands in your computer"
.dark_gray(),
]),
]);
@@ -3137,7 +3137,7 @@ impl App {
Err(external_editor::EditorError::MissingEditor) => {
self.chat_widget
.add_to_history(history_cell::new_error_event(
- "Cannot open external editor: set $VISUAL or $EDITOR before starting Codex."
+ "Cannot open external editor: set $VISUAL or $EDITOR before starting Orbit CLI."
.to_string(),
));
self.reset_external_editor_state(tui);
diff --git a/codex-rs/tui/src/bottom_pane/approval_overlay.rs b/codex-rs/tui/src/bottom_pane/approval_overlay.rs
index 2ea3c10e9..49b51d117 100644
--- a/codex-rs/tui/src/bottom_pane/approval_overlay.rs
+++ b/codex-rs/tui/src/bottom_pane/approval_overlay.rs
@@ -521,7 +521,7 @@ fn exec_options(
additional_shortcuts: vec![key_hint::plain(KeyCode::Char('d'))],
}),
ReviewDecision::Abort => Some(ApprovalOption {
- label: "No, and tell Codex what to do differently".to_string(),
+ label: "No, and tell Orbit CLI what to do differently".to_string(),
decision: ApprovalDecision::Review(ReviewDecision::Abort),
display_shortcut: Some(key_hint::plain(KeyCode::Esc)),
additional_shortcuts: vec![key_hint::plain(KeyCode::Char('n'))],
@@ -575,7 +575,7 @@ fn patch_options() -> Vec {
additional_shortcuts: vec![key_hint::plain(KeyCode::Char('a'))],
},
ApprovalOption {
- label: "No, and tell Codex what to do differently".to_string(),
+ label: "No, and tell Orbit CLI what to do differently".to_string(),
decision: ApprovalDecision::Review(ReviewDecision::Abort),
display_shortcut: Some(key_hint::plain(KeyCode::Esc)),
additional_shortcuts: vec![key_hint::plain(KeyCode::Char('n'))],
@@ -819,7 +819,7 @@ mod tests {
"Yes, just this once".to_string(),
"Yes, and allow this host for this conversation".to_string(),
"Yes, and allow this host in the future".to_string(),
- "No, and tell Codex what to do differently".to_string(),
+ "No, and tell Orbit CLI what to do differently".to_string(),
]
);
}
@@ -842,7 +842,7 @@ mod tests {
vec![
"Yes, proceed".to_string(),
"Yes, and don't ask again for this command in this session".to_string(),
- "No, and tell Codex what to do differently".to_string(),
+ "No, and tell Orbit CLI what to do differently".to_string(),
]
);
}
@@ -867,7 +867,7 @@ mod tests {
labels,
vec![
"Yes, proceed".to_string(),
- "No, and tell Codex what to do differently".to_string(),
+ "No, and tell Orbit CLI what to do differently".to_string(),
]
);
}
diff --git a/codex-rs/tui/src/bottom_pane/chat_composer.rs b/codex-rs/tui/src/bottom_pane/chat_composer.rs
index 9943a2253..2dcc3d24b 100644
--- a/codex-rs/tui/src/bottom_pane/chat_composer.rs
+++ b/codex-rs/tui/src/bottom_pane/chat_composer.rs
@@ -4442,7 +4442,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -4496,7 +4496,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_footer_hint_override(Some(vec![("K".to_string(), "label".to_string())]));
@@ -4534,7 +4534,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_footer_hint_override(Some(vec![("K".to_string(), "label".to_string())]));
@@ -4583,7 +4583,7 @@ mod tests {
true,
sender,
enhanced_keys_supported,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
setup(&mut composer);
@@ -4844,7 +4844,7 @@ mod tests {
true,
sender,
true,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -4871,7 +4871,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -4894,7 +4894,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -4920,7 +4920,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -4982,7 +4982,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5025,7 +5025,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
let remote_image_url = "https://example.com/one.png".to_string();
@@ -5067,7 +5067,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5110,7 +5110,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5152,7 +5152,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5181,7 +5181,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_connectors_enabled(true);
@@ -5222,7 +5222,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_connectors_enabled(true);
@@ -5259,7 +5259,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5509,7 +5509,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5544,7 +5544,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5575,7 +5575,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5599,7 +5599,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5632,7 +5632,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5680,7 +5680,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5717,7 +5717,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5771,7 +5771,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5800,7 +5800,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5835,7 +5835,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5868,7 +5868,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5897,7 +5897,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5926,7 +5926,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -5960,7 +5960,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_steer_enabled(true);
@@ -5988,7 +5988,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_steer_enabled(true);
@@ -6030,7 +6030,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_steer_enabled(false);
@@ -6075,7 +6075,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -6116,7 +6116,7 @@ mod tests {
true,
sender.clone(),
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -6208,7 +6208,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -6236,7 +6236,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
type_chars_humanlike(&mut composer, &['/', 'm', 'o']);
@@ -6267,7 +6267,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -6292,7 +6292,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
type_chars_humanlike(&mut composer, &['/', 'r', 'e', 's']);
@@ -6348,7 +6348,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -6391,7 +6391,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_task_running(true);
@@ -6435,7 +6435,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
true,
);
composer.set_text_content("x".to_string(), Vec::new(), Vec::new());
@@ -6464,7 +6464,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_voice_transcription_enabled(true);
@@ -6496,7 +6496,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_voice_transcription_enabled(true);
@@ -6530,7 +6530,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_voice_transcription_enabled(true);
@@ -6564,7 +6564,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -6591,7 +6591,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -6661,7 +6661,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -6682,7 +6682,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -6720,7 +6720,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_collaboration_modes_enabled(true);
@@ -6742,7 +6742,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_collaboration_modes_enabled(true);
@@ -6763,7 +6763,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -6795,7 +6795,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -6823,7 +6823,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_task_running(false);
@@ -6852,7 +6852,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -6893,7 +6893,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_collaboration_modes_enabled(true);
@@ -6933,7 +6933,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7012,7 +7012,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7086,7 +7086,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7125,7 +7125,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7165,7 +7165,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7213,7 +7213,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
let path = PathBuf::from("/tmp/image1.png");
@@ -7251,7 +7251,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7284,7 +7284,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
let remote_image_url = "https://example.com/remote.png".to_string();
@@ -7318,7 +7318,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
let remote_image_urls = vec![
@@ -7350,7 +7350,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7393,7 +7393,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7415,7 +7415,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7458,7 +7458,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7501,7 +7501,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7544,7 +7544,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7590,7 +7590,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
let path = PathBuf::from("/tmp/image2.png");
@@ -7629,7 +7629,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
let path = PathBuf::from("/tmp/image_dup.png");
@@ -7652,7 +7652,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
let path = PathBuf::from("/tmp/image3.png");
@@ -7692,7 +7692,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7718,7 +7718,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7778,7 +7778,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7841,7 +7841,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7879,7 +7879,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7901,7 +7901,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7940,7 +7940,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -7975,7 +7975,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8014,7 +8014,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8069,7 +8069,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8125,7 +8125,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8173,7 +8173,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8237,7 +8237,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8295,7 +8295,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8331,7 +8331,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8363,7 +8363,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8413,7 +8413,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8468,7 +8468,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8506,7 +8506,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8544,7 +8544,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8587,7 +8587,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8627,7 +8627,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8668,7 +8668,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
composer.set_steer_enabled(true);
@@ -8751,7 +8751,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8787,7 +8787,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8823,7 +8823,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8861,7 +8861,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8904,7 +8904,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8933,7 +8933,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -8980,7 +8980,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9019,7 +9019,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9044,7 +9044,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9074,7 +9074,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9117,7 +9117,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9151,7 +9151,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9176,7 +9176,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9204,7 +9204,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9229,7 +9229,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9257,7 +9257,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9278,7 +9278,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9300,7 +9300,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9337,7 +9337,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9357,7 +9357,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
@@ -9396,7 +9396,7 @@ mod tests {
true,
sender,
false,
- "Ask Codex to do anything".to_string(),
+ "Ask Orbit CLI to do anything".to_string(),
false,
);
diff --git a/codex-rs/tui/src/bottom_pane/feedback_view.rs b/codex-rs/tui/src/bottom_pane/feedback_view.rs
index 03d3779c5..5fc9a976a 100644
--- a/codex-rs/tui/src/bottom_pane/feedback_view.rs
+++ b/codex-rs/tui/src/bottom_pane/feedback_view.rs
@@ -28,7 +28,7 @@ use super::textarea::TextArea;
use super::textarea::TextAreaState;
const BASE_BUG_ISSUE_URL: &str =
- "https://github.com/openai/codex/issues/new?template=2-bug-report.yml";
+ "https://github.com/Recusive/Orbit-CLI/issues/new?template=2-bug-report.yml";
/// Internal routing link for employee feedback follow-ups. This must not be shown to external users.
const CODEX_FEEDBACK_INTERNAL_URL: &str = "http://go/codex-feedback-internal";
@@ -527,7 +527,7 @@ pub(crate) fn feedback_upload_consent_params(
super::SelectionItem {
name: "Yes".to_string(),
description: Some(
- "Share the current Codex session logs with the team for troubleshooting."
+ "Share the current Orbit CLI session logs with the team for troubleshooting."
.to_string(),
),
actions: vec![yes_action],
diff --git a/codex-rs/tui/src/bottom_pane/list_selection_view.rs b/codex-rs/tui/src/bottom_pane/list_selection_view.rs
index 9a50a0783..e2c005411 100644
--- a/codex-rs/tui/src/bottom_pane/list_selection_view.rs
+++ b/codex-rs/tui/src/bottom_pane/list_selection_view.rs
@@ -1041,14 +1041,14 @@ mod tests {
let items = vec![
SelectionItem {
name: "Read Only".to_string(),
- description: Some("Codex can read files".to_string()),
+ description: Some("Orbit CLI can read files".to_string()),
is_current: true,
dismiss_on_select: true,
..Default::default()
},
SelectionItem {
name: "Full Access".to_string(),
- description: Some("Codex can edit files".to_string()),
+ description: Some("Orbit CLI can edit files".to_string()),
is_current: false,
dismiss_on_select: true,
..Default::default()
@@ -1156,7 +1156,7 @@ mod tests {
#[test]
fn renders_blank_line_between_subtitle_and_items() {
- let view = make_selection_view(Some("Switch between Codex approval presets"));
+ let view = make_selection_view(Some("Switch between Orbit CLI approval presets"));
assert_snapshot!("list_selection_spacing_with_subtitle", render_lines(&view));
}
@@ -1232,7 +1232,7 @@ mod tests {
let tx = AppEventSender::new(tx_raw);
let items = vec![SelectionItem {
name: "Read Only".to_string(),
- description: Some("Codex can read files".to_string()),
+ description: Some("Orbit CLI can read files".to_string()),
is_current: true,
dismiss_on_select: true,
..Default::default()
@@ -1264,7 +1264,7 @@ mod tests {
let tx = AppEventSender::new(tx_raw);
let items = vec![SelectionItem {
name: "Read Only".to_string(),
- description: Some("Codex can read files".to_string()),
+ description: Some("Orbit CLI can read files".to_string()),
is_current: false,
dismiss_on_select: true,
..Default::default()
@@ -1398,7 +1398,7 @@ mod tests {
SelectionItem {
name: "gpt-5.1-codex".to_string(),
description: Some(
- "Optimized for Codex. Balance of reasoning quality and coding ability."
+ "Optimized for Orbit CLI. Balance of reasoning quality and coding ability."
.to_string(),
),
is_current: true,
@@ -1408,7 +1408,7 @@ mod tests {
SelectionItem {
name: "gpt-5.1-codex-mini".to_string(),
description: Some(
- "Optimized for Codex. Cheaper, faster, but less capable.".to_string(),
+ "Optimized for Orbit CLI. Cheaper, faster, but less capable.".to_string(),
),
dismiss_on_select: true,
..Default::default()
@@ -1480,7 +1480,7 @@ mod tests {
SelectionItem {
name: "gpt-5.1-codex".to_string(),
description: Some(
- "Optimized for Codex. Balance of reasoning quality and coding ability."
+ "Optimized for Orbit CLI. Balance of reasoning quality and coding ability."
.to_string(),
),
is_current: true,
@@ -1490,7 +1490,7 @@ mod tests {
SelectionItem {
name: "gpt-5.1-codex-mini".to_string(),
description: Some(
- "Optimized for Codex. Cheaper, faster, but less capable.".to_string(),
+ "Optimized for Orbit CLI. Cheaper, faster, but less capable.".to_string(),
),
dismiss_on_select: true,
..Default::default()
diff --git a/codex-rs/tui/src/bottom_pane/mod.rs b/codex-rs/tui/src/bottom_pane/mod.rs
index e774e9c42..b3f8470e7 100644
--- a/codex-rs/tui/src/bottom_pane/mod.rs
+++ b/codex-rs/tui/src/bottom_pane/mod.rs
@@ -1132,7 +1132,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1155,7 +1155,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1189,7 +1189,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1236,7 +1236,7 @@ mod tests {
for x in 0..area.width {
row.push(buf[(x, y)].symbol().chars().next().unwrap_or(' '));
}
- if row.contains("Ask Codex") {
+ if row.contains("Ask Orbit CLI") {
found_composer = true;
break;
}
@@ -1256,7 +1256,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1283,7 +1283,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1314,7 +1314,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1337,7 +1337,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1366,7 +1366,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1399,7 +1399,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1427,7 +1427,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1454,7 +1454,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1483,7 +1483,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1506,7 +1506,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(vec![SkillMetadata {
@@ -1555,7 +1555,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1590,7 +1590,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1646,7 +1646,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
@@ -1694,7 +1694,7 @@ mod tests {
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: true,
skills: Some(Vec::new()),
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__approval_overlay__tests__approval_overlay_additional_permissions_prompt.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__approval_overlay__tests__approval_overlay_additional_permissions_prompt.snap
index 5b04b78b1..68dc58d08 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__approval_overlay__tests__approval_overlay_additional_permissions_prompt.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__approval_overlay__tests__approval_overlay_additional_permissions_prompt.snap
@@ -12,6 +12,6 @@ expression: "render_overlay_lines(&view, 120)"
$ cat /tmp/readme.txt
โบ 1. Yes, proceed (y)
- 2. No, and tell Codex what to do differently (esc)
+ 2. No, and tell Orbit CLI what to do differently (esc)
Press enter to confirm or esc to cancel
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__approval_overlay__tests__network_exec_prompt.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__approval_overlay__tests__network_exec_prompt.snap
index 612563fe1..08613fdc0 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__approval_overlay__tests__network_exec_prompt.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__approval_overlay__tests__network_exec_prompt.snap
@@ -15,7 +15,7 @@ Buffer {
"โบ 1. Yes, just this once (y) ",
" 2. Yes, and allow this host for this conversation (a) ",
" 3. Yes, and allow this host in the future (p) ",
- " 4. No, and tell Codex what to do differently (esc) ",
+ " 4. No, and tell Orbit CLI what to do differently (esc) ",
" ",
" Press enter to confirm or esc to cancel ",
],
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__empty.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__empty.snap
index 47c97c74d..52f1bfa8a 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__empty.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__empty.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_full.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_full.snap
index 4324d806e..e9576e905 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_full.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_full.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_mode_cycle_with_context.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_mode_cycle_with_context.snap
index ecaeb5814..1aa0a433a 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_mode_cycle_with_context.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_mode_cycle_with_context.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_mode_cycle_without_context.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_mode_cycle_without_context.snap
index 118ac2529..d2105e37b 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_mode_cycle_without_context.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_mode_cycle_without_context.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_mode_only.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_mode_only.snap
index 9c9500478..76781c231 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_mode_only.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_empty_mode_only.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anythin "
+"โบ Ask Orbit CLI to do anythin "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_full.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_full.snap
index f39aefad6..fd87e0e4d 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_full.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_full.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_mode_cycle_with_context.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_mode_cycle_with_context.snap
index 347ba3164..4af6af36e 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_mode_cycle_with_context.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_mode_cycle_with_context.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_mode_cycle_without_context.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_mode_cycle_without_context.snap
index 006e2a177..7e236835a 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_mode_cycle_without_context.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_mode_cycle_without_context.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_mode_only.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_mode_only.snap
index bea268c57..94e916dd9 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_mode_only.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_collapse_plan_empty_mode_only.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anythin "
+"โบ Ask Orbit CLI to do anythin "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_ctrl_c_interrupt.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_ctrl_c_interrupt.snap
index 7ecc5bba7..cd2826160 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_ctrl_c_interrupt.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_ctrl_c_interrupt.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_ctrl_c_quit.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_ctrl_c_quit.snap
index 7ecc5bba7..cd2826160 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_ctrl_c_quit.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_ctrl_c_quit.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_ctrl_c_then_esc_hint.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_ctrl_c_then_esc_hint.snap
index 9cad17b86..34c05ed15 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_ctrl_c_then_esc_hint.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_ctrl_c_then_esc_hint.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_esc_hint_backtrack.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_esc_hint_backtrack.snap
index 2fce42cc2..fd48c63e4 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_esc_hint_backtrack.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_esc_hint_backtrack.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_esc_hint_from_overlay.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_esc_hint_from_overlay.snap
index 9cad17b86..34c05ed15 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_esc_hint_from_overlay.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_esc_hint_from_overlay.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_overlay_then_external_esc_hint.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_overlay_then_external_esc_hint.snap
index 2fce42cc2..fd48c63e4 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_overlay_then_external_esc_hint.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_overlay_then_external_esc_hint.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_shortcut_overlay.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_shortcut_overlay.snap
index 8486a9ec6..479443866 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_shortcut_overlay.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__chat_composer__tests__footer_mode_shortcut_overlay.snap
@@ -3,7 +3,7 @@ source: tui/src/bottom_pane/chat_composer.rs
expression: terminal.backend()
---
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" "
" "
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__feedback_view__tests__feedback_view_render.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__feedback_view__tests__feedback_view_render.snap
index bafa94b09..42dac6f48 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__feedback_view__tests__feedback_view_render.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__feedback_view__tests__feedback_view_render.snap
@@ -4,14 +4,14 @@ expression: rendered
---
Do you want to upload logs before reporting issue?
- Logs may include the full conversation history of this Codex process
+ Logs may include the full conversation history of this Orbit CLI process
These logs are retained for 90 days and are used solely for troubles
You can review the exact content of the logs before theyโre uploaded
-โบ 1. Yes Share the current Codex session logs with the team for
+โบ 1. Yes Share the current Orbit CLI session logs with the team for
troubleshooting.
2. No
3. Cancel
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_footer_note_wraps.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_footer_note_wraps.snap
index 800fcf75c..01a5fc2a0 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_footer_note_wraps.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_footer_note_wraps.snap
@@ -6,7 +6,7 @@ expression: "render_lines_with_width(&view, 40)"
Select Approval Mode
-โบ 1. Read Only (current) Codex can
+โบ 1. Read Only (current) Orbit CLI can
read files
Note: Use /setup-default-sandbox to
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_model_picker_width_80.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_model_picker_width_80.snap
index be81978c8..e3413634a 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_model_picker_width_80.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_model_picker_width_80.snap
@@ -5,9 +5,9 @@ expression: "render_lines_with_width(&view, 80)"
Select Model and Effort
-โบ 1. gpt-5.1-codex (current) Optimized for Codex. Balance of reasoning
+โบ 1. gpt-5.1-codex (current) Optimized for Orbit CLI. Balance of reasoning
quality and coding ability.
- 2. gpt-5.1-codex-mini Optimized for Codex. Cheaper, faster, but less
+ 2. gpt-5.1-codex-mini Optimized for Orbit CLI. Cheaper, faster, but less
capable.
3. gpt-4.1-codex Legacy model. Use when you need compatibility
with older automations.
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_spacing_with_subtitle.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_spacing_with_subtitle.snap
index 512f6bbca..0b02c2fc9 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_spacing_with_subtitle.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_spacing_with_subtitle.snap
@@ -4,9 +4,9 @@ expression: render_lines(&view)
---
Select Approval Mode
- Switch between Codex approval presets
+ Switch between Orbit CLI approval presets
-โบ 1. Read Only (current) Codex can read files
- 2. Full Access Codex can edit files
+โบ 1. Read Only (current) Orbit CLI can read files
+ 2. Full Access Orbit CLI can edit files
Press enter to confirm or esc to go back
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_spacing_without_subtitle.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_spacing_without_subtitle.snap
index ddd0f90cd..09ff5e46f 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_spacing_without_subtitle.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__list_selection_view__tests__list_selection_spacing_without_subtitle.snap
@@ -5,7 +5,7 @@ expression: render_lines(&view)
Select Approval Mode
-โบ 1. Read Only (current) Codex can read files
- 2. Full Access Codex can edit files
+โบ 1. Read Only (current) Orbit CLI can read files
+ 2. Full Access Orbit CLI can edit files
Press enter to confirm or esc to go back
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__queued_messages_visible_when_status_hidden_snapshot.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__queued_messages_visible_when_status_hidden_snapshot.snap
index 47581631c..9d4470984 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__queued_messages_visible_when_status_hidden_snapshot.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__queued_messages_visible_when_status_hidden_snapshot.snap
@@ -5,6 +5,6 @@ expression: "render_snapshot(&pane, area)"
โณ Queued follow-up question
โฅ + โ edit
-โบ Ask Codex to do anything
+โบ Ask Orbit CLI to do anything
? for shortcuts 100% context left
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_and_composer_fill_height_without_bottom_padding.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_and_composer_fill_height_without_bottom_padding.snap
index 5c95c9f81..d2054b977 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_and_composer_fill_height_without_bottom_padding.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_and_composer_fill_height_without_bottom_padding.snap
@@ -5,6 +5,6 @@ expression: "render_snapshot(&pane, area)"
โข Working (0s โข esc to interrโฆ
-โบ Ask Codex to do anything
+โบ Ask Orbit CLI to do anything
100% context left
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_and_queued_messages_snapshot.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_and_queued_messages_snapshot.snap
index a82f6512c..f117f2796 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_and_queued_messages_snapshot.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_and_queued_messages_snapshot.snap
@@ -7,6 +7,6 @@ expression: "render_snapshot(&pane, area)"
โณ Queued follow-up question
โฅ + โ edit
-โบ Ask Codex to do anything
+โบ Ask Orbit CLI to do anything
? for shortcuts 100% context left
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_hidden_when_height_too_small_height_1.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_hidden_when_height_too_small_height_1.snap
index 52f96e855..f4a57622f 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_hidden_when_height_too_small_height_1.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_hidden_when_height_too_small_height_1.snap
@@ -2,4 +2,4 @@
source: tui/src/bottom_pane/mod.rs
expression: "render_snapshot(&pane, area1)"
---
-โบ Ask Codex to do a
+โบ Ask Orbit CLI to do a
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_only_snapshot.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_only_snapshot.snap
index 136c35805..bdeaf0e52 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_only_snapshot.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_only_snapshot.snap
@@ -5,6 +5,6 @@ expression: "render_snapshot(&pane, area)"
โข Working (0s โข esc to interrupt)
-โบ Ask Codex to do anything
+โบ Ask Orbit CLI to do anything
? for shortcuts 100% context left
diff --git a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_with_details_and_queued_messages_snapshot.snap b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_with_details_and_queued_messages_snapshot.snap
index b714c69d8..8b0be9709 100644
--- a/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_with_details_and_queued_messages_snapshot.snap
+++ b/codex-rs/tui/src/bottom_pane/snapshots/codex_tui__bottom_pane__tests__status_with_details_and_queued_messages_snapshot.snap
@@ -9,6 +9,6 @@ expression: "render_snapshot(&pane, area)"
โณ Queued follow-up question
โฅ + โ edit
-โบ Ask Codex to do anything
+โบ Ask Orbit CLI to do anything
? for shortcuts 100% context left
diff --git a/codex-rs/tui/src/bottom_pane/status_line_setup.rs b/codex-rs/tui/src/bottom_pane/status_line_setup.rs
index 29bcf7b9c..f7004a377 100644
--- a/codex-rs/tui/src/bottom_pane/status_line_setup.rs
+++ b/codex-rs/tui/src/bottom_pane/status_line_setup.rs
@@ -114,7 +114,7 @@ impl StatusLineItem {
StatusLineItem::WeeklyLimit => {
"Remaining usage on weekly usage limit (omitted when unavailable)"
}
- StatusLineItem::CodexVersion => "Codex application version",
+ StatusLineItem::CodexVersion => "Orbit CLI application version",
StatusLineItem::ContextWindowSize => {
"Total context window size in tokens (omitted when unknown)"
}
diff --git a/codex-rs/tui/src/chatwidget.rs b/codex-rs/tui/src/chatwidget.rs
index a4063ed3d..b57d37fec 100644
--- a/codex-rs/tui/src/chatwidget.rs
+++ b/codex-rs/tui/src/chatwidget.rs
@@ -1705,7 +1705,7 @@ impl ChatWidget {
self.finalize_turn();
let message = if message.trim().is_empty() {
- "Codex is currently experiencing high load.".to_string()
+ "Orbit CLI is currently experiencing high load.".to_string()
} else {
message
};
@@ -3660,7 +3660,7 @@ impl ChatWidget {
SlashCommand::Copy => {
let Some(text) = self.last_copyable_output.as_deref() else {
self.add_info_message(
- "`/copy` is unavailable before the first Codex output or right after a rollback."
+ "`/copy` is unavailable before the first Orbit CLI output or right after a rollback."
.to_string(),
None,
);
@@ -3676,7 +3676,7 @@ impl ChatWidget {
.to_string(),
);
self.add_info_message(
- "Copied latest Codex output to clipboard.".to_string(),
+ "Copied latest Orbit CLI output to clipboard.".to_string(),
hint,
);
}
@@ -5260,7 +5260,7 @@ impl ChatWidget {
let mut header = ColumnRenderable::new();
header.push(Line::from("Select Personality".bold()));
- header.push(Line::from("Choose a communication style for Codex.".dim()));
+ header.push(Line::from("Choose a communication style for Orbit CLI.".dim()));
self.bottom_pane.show_selection_view(SelectionViewParams {
header: Box::new(header),
@@ -6057,7 +6057,7 @@ impl ChatWidget {
let mut header_children: Vec> = Vec::new();
let title_line = Line::from("Enable full access?").bold();
let info_line = Line::from(vec![
- "When Codex runs with full access, it can edit any file on your computer and run commands with network, without your approval. "
+ "When Orbit CLI runs with full access, it can edit any file on your computer and run commands with network, without your approval. "
.into(),
"Exercise caution when enabling full access. This significantly increases the risk of data loss, leaks, or unexpected behavior."
.fg(Color::Red),
@@ -6251,7 +6251,7 @@ impl ChatWidget {
header.push(*Box::new(
Paragraph::new(vec![
line!["Agent mode on Windows uses an experimental sandbox to limit network and filesystem access.".bold()],
- line!["Learn more: https://developers.openai.com/codex/windows"],
+ line!["Learn more: https://developers.recursive.com/orbit-cli/windows"],
])
.wrap(Wrap { trim: false }),
));
@@ -6297,7 +6297,7 @@ impl ChatWidget {
let mut header = ColumnRenderable::new();
header.push(*Box::new(
Paragraph::new(vec![
- line!["Set up the Codex agent sandbox to protect your files and control network access. Learn more "],
+ line!["Set up the Orbit CLI agent sandbox to protect your files and control network access. Learn more "],
])
.wrap(Wrap { trim: false }),
));
@@ -6365,10 +6365,10 @@ impl ChatWidget {
]);
lines.push(line![""]);
lines.push(line![
- "You can still use Codex in a non-admin sandbox. It carries greater risk if prompt injected."
+ "You can still use Orbit CLI in a non-admin sandbox. It carries greater risk if prompt injected."
]);
lines.push(line![
- "Learn more "
+ "Learn more "
]);
let mut header = ColumnRenderable::new();
@@ -6395,7 +6395,7 @@ impl ChatWidget {
..Default::default()
},
SelectionItem {
- name: "Use Codex with non-admin sandbox".to_string(),
+ name: "Use Orbit CLI with non-admin sandbox".to_string(),
description: None,
actions: vec![Box::new({
let otel = self.otel_manager.clone();
@@ -7045,7 +7045,7 @@ impl ChatWidget {
let instructions = if connector.is_accessible {
"Manage this app in your browser."
} else {
- "Install this app in your browser, then reload Codex."
+ "Install this app in your browser, then reload Orbit CLI."
};
if let Some(install_url) = connector.install_url.clone() {
let app_id = connector.id.clone();
@@ -7761,7 +7761,7 @@ impl Notification {
}
Notification::EditApprovalRequested { cwd, changes } => {
format!(
- "Codex wants to edit {}",
+ "Orbit CLI wants to edit {}",
if changes.len() == 1 {
#[allow(clippy::unwrap_used)]
display_path_for(changes.first().unwrap(), cwd)
diff --git a/codex-rs/tui/src/chatwidget/realtime.rs b/codex-rs/tui/src/chatwidget/realtime.rs
index 2cf97188b..492825afe 100644
--- a/codex-rs/tui/src/chatwidget/realtime.rs
+++ b/codex-rs/tui/src/chatwidget/realtime.rs
@@ -6,7 +6,7 @@ use codex_protocol::protocol::RealtimeConversationRealtimeEvent;
use codex_protocol::protocol::RealtimeConversationStartedEvent;
use codex_protocol::protocol::RealtimeEvent;
-const REALTIME_CONVERSATION_PROMPT: &str = "You are in a realtime voice conversation in the Codex TUI. Respond conversationally and concisely.";
+const REALTIME_CONVERSATION_PROMPT: &str = "You are in a realtime voice conversation in the Orbit CLI TUI. Respond conversationally and concisely.";
#[derive(Clone, Copy, Debug, Default, PartialEq, Eq)]
pub(super) enum RealtimeConversationPhase {
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_exec.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_exec.snap
index 15511611a..3e795abff 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_exec.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_exec.snap
@@ -12,6 +12,6 @@ expression: terminal.backend().vt100().screen().contents()
โบ 1. Yes, proceed (y)
2. Yes, and don't ask again for commands that start with `echo hello world` (p)
- 3. No, and tell Codex what to do differently (esc)
+ 3. No, and tell Orbit CLI what to do differently (esc)
Press enter to confirm or esc to cancel
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_exec_multiline_prefix_no_execpolicy.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_exec_multiline_prefix_no_execpolicy.snap
index 3c256fe92..9896d1397 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_exec_multiline_prefix_no_execpolicy.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_exec_multiline_prefix_no_execpolicy.snap
@@ -11,6 +11,6 @@ expression: contents
PY
โบ 1. Yes, proceed (y)
- 2. No, and tell Codex what to do differently (esc)
+ 2. No, and tell Orbit CLI what to do differently (esc)
Press enter to confirm or esc to cancel
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_exec_no_reason.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_exec_no_reason.snap
index 2bbe9aefc..6f8d1ef30 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_exec_no_reason.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_exec_no_reason.snap
@@ -8,6 +8,6 @@ expression: terminal.backend().vt100().screen().contents()
โบ 1. Yes, proceed (y)
2. Yes, and don't ask again for commands that start with `echo hello world` (p)
- 3. No, and tell Codex what to do differently (esc)
+ 3. No, and tell Orbit CLI what to do differently (esc)
Press enter to confirm or esc to cancel
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_patch.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_patch.snap
index e394605dc..ca66db587 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_patch.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approval_modal_patch.snap
@@ -15,6 +15,6 @@ expression: terminal.backend().vt100().screen().contents()
โบ 1. Yes, proceed (y)
2. Yes, and don't ask again for these files (a)
- 3. No, and tell Codex what to do differently (esc)
+ 3. No, and tell Orbit CLI what to do differently (esc)
Press enter to confirm or esc to cancel
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approvals_selection_popup.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approvals_selection_popup.snap
index e6b067b4e..6df495414 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approvals_selection_popup.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approvals_selection_popup.snap
@@ -5,10 +5,10 @@ expression: popup
---
Update Model Permissions
-โบ 1. Default Codex can read and edit files in the current workspace, and
+โบ 1. Default Orbit CLI can read and edit files in the current workspace, and
run commands. Approval is required to access the internet or
edit other files.
- 2. Full Access Codex can edit files outside this workspace and access the
+ 2. Full Access Orbit CLI can edit files outside this workspace and access the
internet without asking for approval. Exercise caution when
using.
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approvals_selection_popup@windows.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approvals_selection_popup@windows.snap
index c25b68d1d..3a8212999 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approvals_selection_popup@windows.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approvals_selection_popup@windows.snap
@@ -5,13 +5,13 @@ expression: popup
---
Update Model Permissions
-โบ 1. Read Only (current) Codex can read files in the current workspace.
+โบ 1. Read Only (current) Orbit CLI can read files in the current workspace.
Approval is required to edit files or access the
internet.
- 2. Default Codex can read and edit files in the current
+ 2. Default Orbit CLI can read and edit files in the current
workspace, and run commands. Approval is required to
access the internet or edit other files.
- 3. Full Access Codex can edit files outside this workspace and
+ 3. Full Access Orbit CLI can edit files outside this workspace and
access the internet without asking for approval.
Exercise caution when using.
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approvals_selection_popup@windows_degraded.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approvals_selection_popup@windows_degraded.snap
index ecbe5de15..ed32798b4 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approvals_selection_popup@windows_degraded.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__approvals_selection_popup@windows_degraded.snap
@@ -5,14 +5,14 @@ expression: popup
---
Update Model Permissions
-โบ 1. Read Only (current) Codex can read files in the current
+โบ 1. Read Only (current) Orbit CLI can read files in the current
workspace. Approval is required to edit
files or access the internet.
- 2. Default (non-admin sandbox) Codex can read and edit files in the
+ 2. Default (non-admin sandbox) Orbit CLI can read and edit files in the
current workspace, and run commands.
Approval is required to access the
internet or edit other files.
- 3. Full Access Codex can edit files outside this
+ 3. Full Access Orbit CLI can edit files outside this
workspace and access the internet without
asking for approval. Exercise caution
when using.
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__chatwidget_tall.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__chatwidget_tall.snap
index ebffeb8f5..733e56d29 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__chatwidget_tall.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__chatwidget_tall.snap
@@ -23,6 +23,6 @@ expression: term.backend().vt100().screen().contents()
โณ Hello, world! 15
โณ Hello, world! 16
-โบ Ask Codex to do anything
+โบ Ask Orbit CLI to do anything
? for shortcuts 100% context left
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__exec_approval_modal_exec.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__exec_approval_modal_exec.snap
index 055a6292f..b21439983 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__exec_approval_modal_exec.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__exec_approval_modal_exec.snap
@@ -15,7 +15,7 @@ Buffer {
" $ echo hello world ",
" ",
"โบ 1. Yes, proceed (y) ",
- " 2. No, and tell Codex what to do differently (esc) ",
+ " 2. No, and tell Orbit CLI what to do differently (esc) ",
" ",
" Press enter to confirm or esc to cancel ",
],
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__feedback_upload_consent_popup.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__feedback_upload_consent_popup.snap
index cc3d8e375..49e73a923 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__feedback_upload_consent_popup.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__feedback_upload_consent_popup.snap
@@ -7,7 +7,7 @@ expression: popup
The following files will be sent:
โข codex-logs.log
-โบ 1. Yes Share the current Codex session logs with the team for
+โบ 1. Yes Share the current Orbit CLI session logs with the team for
troubleshooting.
2. No
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__full_access_confirmation_popup.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__full_access_confirmation_popup.snap
index 71dac5f59..3d64fc170 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__full_access_confirmation_popup.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__full_access_confirmation_popup.snap
@@ -3,7 +3,7 @@ source: tui/src/chatwidget/tests.rs
expression: popup
---
Enable full access?
- When Codex runs with full access, it can edit any file on your computer and
+ When Orbit CLI runs with full access, it can edit any file on your computer and
run commands with network, without your approval. Exercise caution when
enabling full access. This significantly increases the risk of data loss,
leaks, or unexpected behavior.
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__mcp_startup_header_booting.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__mcp_startup_header_booting.snap
index 6074ed1f2..02f3b2b71 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__mcp_startup_header_booting.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__mcp_startup_header_booting.snap
@@ -6,6 +6,6 @@ expression: terminal.backend()
"โข Booting MCP server: alpha (0s โข esc to interrupt) "
" "
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" ? for shortcuts 100% context left "
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__model_selection_popup.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__model_selection_popup.snap
index 9b5bb54b9..54eb60872 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__model_selection_popup.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__model_selection_popup.snap
@@ -7,7 +7,7 @@ expression: popup
โบ 1. gpt-5.3-codex (default) Latest frontier agentic coding model.
2. gpt-5.2-codex Frontier agentic coding model.
- 3. gpt-5.1-codex-max Codex-optimized flagship for deep and fast
+ 3. gpt-5.1-codex-max Orbit CLI-optimized flagship for deep and fast
reasoning.
4. gpt-5.2 Latest frontier model with improvements across
knowledge, reasoning and coding
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__personality_selection_popup.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__personality_selection_popup.snap
index d9a6e0a23..84bc368bb 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__personality_selection_popup.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__personality_selection_popup.snap
@@ -3,7 +3,7 @@ source: tui/src/chatwidget/tests.rs
expression: popup
---
Select Personality
- Choose a communication style for Codex.
+ Choose a communication style for Orbit CLI.
1. Friendly Warm, collaborative, and helpful.
โบ 2. Pragmatic (current) Concise, task-focused, and direct.
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__preamble_keeps_working_status.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__preamble_keeps_working_status.snap
index b240e4b5f..fc42ee858 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__preamble_keeps_working_status.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__preamble_keeps_working_status.snap
@@ -6,6 +6,6 @@ expression: terminal.backend()
"โข Working (0s โข esc to interrupt) "
" "
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" ? for shortcuts 100% context left "
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__replayed_interrupted_reconnect_footer_row.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__replayed_interrupted_reconnect_footer_row.snap
index eb3183f57..e439a06b8 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__replayed_interrupted_reconnect_footer_row.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__replayed_interrupted_reconnect_footer_row.snap
@@ -3,4 +3,4 @@ source: tui/src/chatwidget/tests.rs
assertion_line: 7060
expression: header
---
-โบ Ask Codex to do anything
+โบ Ask Orbit CLI to do anything
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__review_queues_user_messages_snapshot.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__review_queues_user_messages_snapshot.snap
index ce28175ea..ab29b9290 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__review_queues_user_messages_snapshot.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__review_queues_user_messages_snapshot.snap
@@ -17,6 +17,6 @@ expression: term.backend().vt100().screen().contents()
โณ Queued while /review is running.
โฅ + โ edit
-โบ Ask Codex to do anything
+โบ Ask Orbit CLI to do anything
? for shortcuts 100% context left
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__slash_copy_no_output_info_message.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__slash_copy_no_output_info_message.snap
index 7e24b570e..6d3869af2 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__slash_copy_no_output_info_message.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__slash_copy_no_output_info_message.snap
@@ -3,4 +3,4 @@ source: tui/src/chatwidget/tests.rs
assertion_line: 4430
expression: rendered.clone()
---
-โข `/copy` is unavailable before the first Codex output or right after a rollback.
+โข `/copy` is unavailable before the first Orbit CLI output or right after a rollback.
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__status_widget_active.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__status_widget_active.snap
index 3acfd95ee..95a8d2e52 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__status_widget_active.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__status_widget_active.snap
@@ -6,6 +6,6 @@ expression: terminal.backend()
"โข Analyzing (0s โข esc to interrupt) "
" "
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" ? for shortcuts 100% context left "
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__status_widget_and_approval_modal.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__status_widget_and_approval_modal.snap
index 5e6e33dec..54aeb7fbc 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__status_widget_and_approval_modal.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__status_widget_and_approval_modal.snap
@@ -12,6 +12,6 @@ expression: terminal.backend()
" "
"โบ 1. Yes, proceed (y) "
" 2. Yes, and don't ask again for commands that start with `echo 'hello world'` (p) "
-" 3. No, and tell Codex what to do differently (esc) "
+" 3. No, and tell Orbit CLI what to do differently (esc) "
" "
" Press enter to confirm or esc to cancel "
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__unified_exec_begin_restores_working_status.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__unified_exec_begin_restores_working_status.snap
index 3726917d2..1ed879c32 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__unified_exec_begin_restores_working_status.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__unified_exec_begin_restores_working_status.snap
@@ -6,6 +6,6 @@ expression: terminal.backend()
"โข Working (0s โข esc to interrupt) ยท 1 background terminal running ยท /ps to viewโฆ"
" "
" "
-"โบ Ask Codex to do anything "
+"โบ Ask Orbit CLI to do anything "
" "
" ? for shortcuts 100% context left "
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__unified_exec_wait_status_renders_command_in_single_details_row.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__unified_exec_wait_status_renders_command_in_single_details_row.snap
index 933bc7072..10becdd15 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__unified_exec_wait_status_renders_command_in_single_details_row.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__unified_exec_wait_status_renders_command_in_single_details_row.snap
@@ -6,6 +6,6 @@ expression: rendered
โ cargo test -p codex-core -- --exactโฆ
-โบ Ask Codex to do anything
+โบ Ask Orbit CLI to do anything
? for shortcuts 100% context left
diff --git a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__update_popup.snap b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__update_popup.snap
index 6a49cb253..463b87b6e 100644
--- a/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__update_popup.snap
+++ b/codex-rs/tui/src/chatwidget/snapshots/codex_tui__chatwidget__tests__update_popup.snap
@@ -4,7 +4,7 @@ expression: terminal.backend().vt100().screen().contents()
---
โจโNew version available! Would you like to update?
- Full release notes: https://github.com/openai/codex/releases/latest
+ Full release notes: https://github.com/Recusive/Orbit-CLI/releases/latest
โบ 1. Yes, update now
diff --git a/codex-rs/tui/src/chatwidget/tests.rs b/codex-rs/tui/src/chatwidget/tests.rs
index 48de3e368..289d8be53 100644
--- a/codex-rs/tui/src/chatwidget/tests.rs
+++ b/codex-rs/tui/src/chatwidget/tests.rs
@@ -1627,7 +1627,7 @@ async fn make_chatwidget_manual(
frame_requester: FrameRequester::test_dummy(),
has_input_focus: true,
enhanced_keys_supported: false,
- placeholder_text: "Ask Codex to do anything".to_string(),
+ placeholder_text: "Ask Orbit CLI to do anything".to_string(),
disable_paste_burst: false,
animations_enabled: cfg.animations,
skills: None,
@@ -4733,7 +4733,7 @@ async fn slash_copy_reports_when_no_copyable_output_exists() {
assert_snapshot!("slash_copy_no_output_info_message", rendered);
assert!(
rendered.contains(
- "`/copy` is unavailable before the first Codex output or right after a rollback."
+ "`/copy` is unavailable before the first Orbit CLI output or right after a rollback."
),
"expected no-output message, got {rendered:?}"
);
@@ -4805,7 +4805,7 @@ async fn slash_copy_is_unavailable_when_legacy_agent_message_is_not_repeated_on_
let rendered = lines_to_single_string(&cells[0]);
assert!(
rendered.contains(
- "`/copy` is unavailable before the first Codex output or right after a rollback."
+ "`/copy` is unavailable before the first Orbit CLI output or right after a rollback."
),
"expected unavailable message, got {rendered:?}"
);
@@ -4834,7 +4834,7 @@ async fn slash_copy_is_unavailable_when_legacy_agent_message_item_is_not_repeate
let rendered = lines_to_single_string(&cells[0]);
assert!(
rendered.contains(
- "`/copy` is unavailable before the first Codex output or right after a rollback."
+ "`/copy` is unavailable before the first Orbit CLI output or right after a rollback."
),
"expected unavailable message, got {rendered:?}"
);
@@ -4866,7 +4866,7 @@ async fn slash_copy_does_not_return_stale_output_after_thread_rollback() {
let rendered = lines_to_single_string(&cells[0]);
assert!(
rendered.contains(
- "`/copy` is unavailable before the first Codex output or right after a rollback."
+ "`/copy` is unavailable before the first Orbit CLI output or right after a rollback."
),
"expected rollback-cleared copy state message, got {rendered:?}"
);
diff --git a/codex-rs/tui/src/debug_config.rs b/codex-rs/tui/src/debug_config.rs
index a3e98d85c..d310f6fe4 100644
--- a/codex-rs/tui/src/debug_config.rs
+++ b/codex-rs/tui/src/debug_config.rs
@@ -477,7 +477,7 @@ mod tests {
#[test]
fn debug_config_output_lists_requirement_sources() {
let requirements_file = if cfg!(windows) {
- absolute_path("C:\\ProgramData\\OpenAI\\Codex\\requirements.toml")
+ absolute_path("C:\\ProgramData\\Recursive\\Codex\\requirements.toml")
} else {
absolute_path("/etc/codex/requirements.toml")
};
diff --git a/codex-rs/tui/src/history_cell.rs b/codex-rs/tui/src/history_cell.rs
index affbb7297..d3502f258 100644
--- a/codex-rs/tui/src/history_cell.rs
+++ b/codex-rs/tui/src/history_cell.rs
@@ -503,7 +503,7 @@ impl HistoryCell for UpdateAvailableHistoryCell {
} else {
line![
"See ",
- "https://github.com/openai/codex".cyan().underlined(),
+ "https://github.com/Recusive/Orbit-CLI".cyan().underlined(),
" for installation options."
]
};
@@ -518,7 +518,7 @@ impl HistoryCell for UpdateAvailableHistoryCell {
update_instruction,
"",
"See full release notes:",
- "https://github.com/openai/codex/releases/latest"
+ "https://github.com/Recusive/Orbit-CLI/releases/latest"
.cyan()
.underlined(),
];
@@ -837,7 +837,7 @@ pub fn new_approval_decision_cell(
vec![
"You ".into(),
"persisted".bold(),
- " Codex network access to ".into(),
+ " Orbit CLI network access to ".into(),
Span::from(network_policy_amendment.host).dim(),
],
),
@@ -1067,7 +1067,7 @@ pub(crate) fn new_session_info(
Line::from(vec![
" ".into(),
"/init".into(),
- " - create an AGENTS.md file with instructions for Codex".dim(),
+ " - create an AGENTS.md file with instructions for Orbit CLI".dim(),
]),
Line::from(vec![
" ".into(),
@@ -1077,7 +1077,7 @@ pub(crate) fn new_session_info(
Line::from(vec![
" ".into(),
"/permissions".into(),
- " - choose what Codex is allowed to do".dim(),
+ " - choose what Orbit CLI is allowed to do".dim(),
]),
Line::from(vec![
" ".into(),
@@ -1213,10 +1213,10 @@ impl HistoryCell for SessionHeaderHistoryCell {
let make_row = |spans: Vec>| Line::from(spans);
- // Title line rendered inside the box: ">_ OpenAI Codex (vX)"
+ // Title line rendered inside the box: ">_ Orbit CLI (vX)"
let title_spans: Vec> = vec![
Span::from(">_ ").dim(),
- Span::from("OpenAI Codex").bold(),
+ Span::from("Orbit CLI").bold(),
Span::from(" ").dim(),
Span::from(format!("(v{})", self.version)).dim(),
];
diff --git a/codex-rs/tui/src/model_migration.rs b/codex-rs/tui/src/model_migration.rs
index 9c28cc1ea..2cc0c0546 100644
--- a/codex-rs/tui/src/model_migration.rs
+++ b/codex-rs/tui/src/model_migration.rs
@@ -82,7 +82,7 @@ pub(crate) fn migration_copy_for_models(
}
let heading_text = Span::from(format!(
- "Codex just got an upgrade. Introducing {target_display_name}."
+ "Orbit CLI just got an upgrade. Introducing {target_display_name}."
))
.bold();
let description_line: Line<'static>;
@@ -334,7 +334,7 @@ impl ModelMigrationScreen {
fn render_menu(&self, column: &mut ColumnRenderable) {
column.push(Line::from(""));
column.push(
- Paragraph::new("Choose how you'd like Codex to proceed.")
+ Paragraph::new("Choose how you'd like Orbit CLI to proceed.")
.wrap(Wrap { trim: false })
.inset(Insets::tlbr(0, 2, 0, 0)),
);
@@ -428,7 +428,7 @@ mod tests {
),
None,
"gpt-5.1-codex-max".to_string(),
- Some("Codex-optimized flagship for deep and fast reasoning.".to_string()),
+ Some("Orbit CLI-optimized flagship for deep and fast reasoning.".to_string()),
true,
),
);
@@ -484,7 +484,7 @@ mod tests {
None,
None,
"gpt-5.1-codex-max".to_string(),
- Some("Codex-optimized flagship for deep and fast reasoning.".to_string()),
+ Some("Orbit CLI-optimized flagship for deep and fast reasoning.".to_string()),
false,
),
);
diff --git a/codex-rs/tui/src/onboarding/auth.rs b/codex-rs/tui/src/onboarding/auth.rs
index a0556fc31..c363a04ea 100644
--- a/codex-rs/tui/src/onboarding/auth.rs
+++ b/codex-rs/tui/src/onboarding/auth.rs
@@ -294,7 +294,7 @@ impl AuthModeWidget {
let mut lines: Vec = vec![
Line::from(vec![
" ".into(),
- "Sign in with ChatGPT to use Codex as part of your paid plan".into(),
+ "Sign in with ChatGPT to use Orbit CLI as part of your paid plan".into(),
]),
Line::from(vec![
" ".into(),
@@ -444,14 +444,14 @@ impl AuthModeWidget {
"".into(),
" Before you start:".into(),
"".into(),
- " Decide how much autonomy you want to grant Codex".into(),
+ " Decide how much autonomy you want to grant Orbit CLI".into(),
Line::from(vec![
" For more details see the ".into(),
- "\u{1b}]8;;https://developers.openai.com/codex/security\u{7}Codex docs\u{1b}]8;;\u{7}".underlined(),
+ "\u{1b}]8;;https://developers.recursive.com/orbit-cli/security\u{7}Orbit CLI docs\u{1b}]8;;\u{7}".underlined(),
])
.dim(),
"".into(),
- " Codex can make mistakes".into(),
+ " Orbit CLI can make mistakes".into(),
" Review the code it writes and commands it runs".dim().into(),
"".into(),
" Powered by your ChatGPT account".into(),
@@ -485,7 +485,7 @@ impl AuthModeWidget {
let lines = vec![
"โ API key configured".fg(Color::Green).into(),
"".into(),
- " Codex will use usage-based billing with your API key.".into(),
+ " Orbit CLI will use usage-based billing with your API key.".into(),
];
Paragraph::new(lines)
diff --git a/codex-rs/tui/src/onboarding/welcome.rs b/codex-rs/tui/src/onboarding/welcome.rs
index bdf4f9140..eb0829d2e 100644
--- a/codex-rs/tui/src/onboarding/welcome.rs
+++ b/codex-rs/tui/src/onboarding/welcome.rs
@@ -86,8 +86,8 @@ impl WidgetRef for &WelcomeWidget {
lines.push(Line::from(vec![
" ".into(),
"Welcome to ".into(),
- "Codex".bold(),
- ", OpenAI's command-line coding agent".into(),
+ "Orbit CLI".bold(),
+ ", Recursive's command-line coding agent".into(),
]));
Paragraph::new(lines)
diff --git a/codex-rs/tui/src/slash_command.rs b/codex-rs/tui/src/slash_command.rs
index 2799c80b2..6fe216805 100644
--- a/codex-rs/tui/src/slash_command.rs
+++ b/codex-rs/tui/src/slash_command.rs
@@ -65,19 +65,19 @@ impl SlashCommand {
match self {
SlashCommand::Feedback => "send logs to maintainers",
SlashCommand::New => "start a new chat during a conversation",
- SlashCommand::Init => "create an AGENTS.md file with instructions for Codex",
+ SlashCommand::Init => "create an AGENTS.md file with instructions for Orbit CLI",
SlashCommand::Compact => "summarize conversation to prevent hitting the context limit",
SlashCommand::Review => "review my current changes and find issues",
SlashCommand::Rename => "rename the current thread",
SlashCommand::Resume => "resume a saved chat",
SlashCommand::Clear => "clear the terminal and start a new chat",
SlashCommand::Fork => "fork the current chat",
- // SlashCommand::Undo => "ask Codex to undo a turn",
- SlashCommand::Quit | SlashCommand::Exit => "exit Codex",
+ // SlashCommand::Undo => "ask Orbit CLI to undo a turn",
+ SlashCommand::Quit | SlashCommand::Exit => "exit Orbit CLI",
SlashCommand::Diff => "show git diff (including untracked files)",
- SlashCommand::Copy => "copy the latest Codex output to your clipboard",
+ SlashCommand::Copy => "copy the latest Orbit CLI output to your clipboard",
SlashCommand::Mention => "mention a file",
- SlashCommand::Skills => "use skills to improve how Codex performs specific tasks",
+ SlashCommand::Skills => "use skills to improve how Orbit CLI performs specific tasks",
SlashCommand::Status => "show current session configuration and token usage",
SlashCommand::DebugConfig => "show config layers and requirement sources for debugging",
SlashCommand::Statusline => "configure which items appear in the status line",
@@ -87,13 +87,13 @@ impl SlashCommand {
SlashCommand::MemoryDrop => "DO NOT USE",
SlashCommand::MemoryUpdate => "DO NOT USE",
SlashCommand::Model => "choose what model and reasoning effort to use",
- SlashCommand::Personality => "choose a communication style for Codex",
+ SlashCommand::Personality => "choose a communication style for Orbit CLI",
SlashCommand::Realtime => "toggle realtime voice mode (experimental)",
SlashCommand::Plan => "switch to Plan mode",
SlashCommand::Collab => "change collaboration mode (experimental)",
SlashCommand::Agent => "switch the active agent thread",
- SlashCommand::Approvals => "choose what Codex is allowed to do",
- SlashCommand::Permissions => "choose what Codex is allowed to do",
+ SlashCommand::Approvals => "choose what Orbit CLI is allowed to do",
+ SlashCommand::Permissions => "choose what Orbit CLI is allowed to do",
SlashCommand::ElevateSandbox => "set up elevated agent sandbox",
SlashCommand::SandboxReadRoot => {
"let sandbox read a directory: /sandbox-add-read-dir "
@@ -101,7 +101,7 @@ impl SlashCommand {
SlashCommand::Experimental => "toggle experimental features",
SlashCommand::Mcp => "list configured MCP tools",
SlashCommand::Apps => "manage apps",
- SlashCommand::Logout => "log out of Codex",
+ SlashCommand::Logout => "log out of Orbit CLI",
SlashCommand::Rollout => "print the rollout file path",
SlashCommand::TestApproval => "test approval request",
}
diff --git a/codex-rs/tui/src/snapshots/codex_tui__app__tests__clear_ui_after_long_transcript_fresh_header_only.snap b/codex-rs/tui/src/snapshots/codex_tui__app__tests__clear_ui_after_long_transcript_fresh_header_only.snap
index abb423ff1..169fb2aec 100644
--- a/codex-rs/tui/src/snapshots/codex_tui__app__tests__clear_ui_after_long_transcript_fresh_header_only.snap
+++ b/codex-rs/tui/src/snapshots/codex_tui__app__tests__clear_ui_after_long_transcript_fresh_header_only.snap
@@ -4,7 +4,7 @@ assertion_line: 3452
expression: rendered
---
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
-โ >_ OpenAI Codex (v) โ
+โ >_ Orbit CLI (v) โ
โ โ
โ model: gpt-test high /model to change โ
โ directory: /tmp/project โ
diff --git a/codex-rs/tui/src/snapshots/codex_tui__app__tests__model_migration_prompt_shows_for_hidden_model.snap b/codex-rs/tui/src/snapshots/codex_tui__app__tests__model_migration_prompt_shows_for_hidden_model.snap
index 23fb02d56..817c64b50 100644
--- a/codex-rs/tui/src/snapshots/codex_tui__app__tests__model_migration_prompt_shows_for_hidden_model.snap
+++ b/codex-rs/tui/src/snapshots/codex_tui__app__tests__model_migration_prompt_shows_for_hidden_model.snap
@@ -2,9 +2,9 @@
source: tui/src/app.rs
expression: model_migration_copy_to_plain_text(©)
---
-**Codex just got an upgrade. Introducing gpt-5.3-codex.**
+**Orbit CLI just got an upgrade. Introducing gpt-5.3-codex.**
-Codex is now powered by gpt-5.3-codex, our most capable agentic coding model yet. It's built for long-running, project-scale work, with mid-turn steering + frequent progress updates so you can collaborate while it runs (and it's faster too).
+Orbit CLI is now powered by gpt-5.3-codex, our most capable agentic coding model yet. It's built for long-running, project-scale work, with mid-turn steering + frequent progress updates so you can collaborate while it runs (and it's faster too).
Learn more: https://openai.com/index/introducing-gpt-5-3-codex/
diff --git a/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt.snap b/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt.snap
index 313e80cbb..7ce9afb0e 100644
--- a/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt.snap
+++ b/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt.snap
@@ -3,14 +3,14 @@ source: tui/src/model_migration.rs
expression: terminal.backend()
---
-> Codex just got an upgrade. Introducing gpt-5.1-codex-max.
+> Orbit CLI just got an upgrade. Introducing gpt-5.1-codex-max.
Upgrade to gpt-5.2-codex for the latest and greatest
agentic coding model.
You can continue using gpt-5.1-codex-mini if you prefer.
- Choose how you'd like Codex to proceed.
+ Choose how you'd like Orbit CLI to proceed.
โบ 1. Try new model
2. Use existing model
diff --git a/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt_gpt5_codex.snap b/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt_gpt5_codex.snap
index 391eda72e..d39269fbe 100644
--- a/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt_gpt5_codex.snap
+++ b/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt_gpt5_codex.snap
@@ -3,12 +3,12 @@ source: tui/src/model_migration.rs
expression: terminal.backend()
---
-> Codex just got an upgrade. Introducing gpt-5.1-codex-max.
+> Orbit CLI just got an upgrade. Introducing gpt-5.1-codex-max.
We recommend switching from gpt-5-codex to
gpt-5.1-codex-max.
- Codex-optimized flagship for deep and fast reasoning.
+ Orbit CLI-optimized flagship for deep and fast reasoning.
Learn more about gpt-5.1-codex-max at
https://www.codex.com/models/gpt-5.1-codex-max
diff --git a/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt_gpt5_codex_mini.snap b/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt_gpt5_codex_mini.snap
index 67cc2603e..cae760173 100644
--- a/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt_gpt5_codex_mini.snap
+++ b/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt_gpt5_codex_mini.snap
@@ -3,7 +3,7 @@ source: tui/src/model_migration.rs
expression: terminal.backend()
---
-> Codex just got an upgrade. Introducing gpt-5.1-codex-mini.
+> Orbit CLI just got an upgrade. Introducing gpt-5.1-codex-mini.
We recommend switching from gpt-5-codex-mini to
gpt-5.1-codex-mini.
diff --git a/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt_gpt5_family.snap b/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt_gpt5_family.snap
index 47ba59aa7..271226f18 100644
--- a/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt_gpt5_family.snap
+++ b/codex-rs/tui/src/snapshots/codex_tui__model_migration__tests__model_migration_prompt_gpt5_family.snap
@@ -3,7 +3,7 @@ source: tui/src/model_migration.rs
expression: terminal.backend()
---
-> Codex just got an upgrade. Introducing gpt-5.1.
+> Orbit CLI just got an upgrade. Introducing gpt-5.1.
We recommend switching from gpt-5 to gpt-5.1.
diff --git a/codex-rs/tui/src/snapshots/codex_tui__update_prompt__tests__update_prompt_modal.snap b/codex-rs/tui/src/snapshots/codex_tui__update_prompt__tests__update_prompt_modal.snap
index 24d8831c9..a6efd905c 100644
--- a/codex-rs/tui/src/snapshots/codex_tui__update_prompt__tests__update_prompt_modal.snap
+++ b/codex-rs/tui/src/snapshots/codex_tui__update_prompt__tests__update_prompt_modal.snap
@@ -4,9 +4,9 @@ expression: terminal.backend()
---
โจโUpdate available! 0.0.0 -> 9.9.9
- Release notes: https://github.com/openai/codex/releases/latest
+ Release notes: https://github.com/Recusive/Orbit-CLI/releases/latest
-โบ 1. Update now (runs `npm install -g @openai/codex@latest`)
+โบ 1. Update now (runs `npm install -g @recursive/orbit-cli@latest`)
2. Skip
3. Skip until next version
diff --git a/codex-rs/tui/src/status/card.rs b/codex-rs/tui/src/status/card.rs
index acfa604e9..79f486b17 100644
--- a/codex-rs/tui/src/status/card.rs
+++ b/codex-rs/tui/src/status/card.rs
@@ -411,7 +411,7 @@ impl HistoryCell for StatusHistoryCell {
let mut lines: Vec> = Vec::new();
lines.push(Line::from(vec![
Span::from(format!("{}>_ ", FieldFormatter::INDENT)).dim(),
- Span::from("OpenAI Codex").bold(),
+ Span::from("Orbit CLI").bold(),
Span::from(" ").dim(),
Span::from(format!("(v{CODEX_CLI_VERSION})")).dim(),
]));
@@ -470,10 +470,7 @@ impl HistoryCell for StatusHistoryCell {
let value_width = formatter.value_width(available_inner_width);
let note_first_line = Line::from(vec![
- Span::from("Visit ").cyan(),
- "https://chatgpt.com/codex/settings/usage"
- .cyan()
- .underlined(),
+ Span::from("Visit your account settings").cyan(),
Span::from(" for up-to-date").cyan(),
]);
let note_second_line = Line::from(vec![
diff --git a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_cached_limits_hide_credits_without_flag.snap b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_cached_limits_hide_credits_without_flag.snap
index 4c2018abf..34b51c4a6 100644
--- a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_cached_limits_hide_credits_without_flag.snap
+++ b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_cached_limits_hide_credits_without_flag.snap
@@ -5,9 +5,9 @@ expression: sanitized
/status
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
-โ >_ OpenAI Codex (v0.0.0) โ
+โ >_ Orbit CLI (v0.0.0) โ
โ โ
-โ Visit https://chatgpt.com/codex/settings/usage for up-to-date โ
+โ Visit your account settings for up-to-date โ
โ information on rate limits and credits โ
โ โ
โ Model: gpt-5.1-codex (reasoning none, summaries auto) โ
diff --git a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_credits_and_limits.snap b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_credits_and_limits.snap
index 6cc7a8946..22d7cfd36 100644
--- a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_credits_and_limits.snap
+++ b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_credits_and_limits.snap
@@ -5,9 +5,9 @@ expression: sanitized
/status
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
-โ >_ OpenAI Codex (v0.0.0) โ
+โ >_ Orbit CLI (v0.0.0) โ
โ โ
-โ Visit https://chatgpt.com/codex/settings/usage for up-to-date โ
+โ Visit your account settings for up-to-date โ
โ information on rate limits and credits โ
โ โ
โ Model: gpt-5.1-codex (reasoning none, summaries auto) โ
diff --git a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_forked_from.snap b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_forked_from.snap
index fa0df32ed..89afbd0dd 100644
--- a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_forked_from.snap
+++ b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_forked_from.snap
@@ -5,9 +5,9 @@ expression: sanitized
/status
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
-โ >_ OpenAI Codex (v0.0.0) โ
+โ >_ Orbit CLI (v0.0.0) โ
โ โ
-โ Visit https://chatgpt.com/codex/settings/usage for up-to-date โ
+โ Visit your account settings for up-to-date โ
โ information on rate limits and credits โ
โ โ
โ Model: gpt-5.1-codex-max (reasoning none, summaries auto) โ
diff --git a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_monthly_limit.snap b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_monthly_limit.snap
index 027d935c7..6c7bfbfc4 100644
--- a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_monthly_limit.snap
+++ b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_monthly_limit.snap
@@ -5,9 +5,9 @@ expression: sanitized
/status
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
-โ >_ OpenAI Codex (v0.0.0) โ
+โ >_ Orbit CLI (v0.0.0) โ
โ โ
-โ Visit https://chatgpt.com/codex/settings/usage for up-to-date โ
+โ Visit your account settings for up-to-date โ
โ information on rate limits and credits โ
โ โ
โ Model: gpt-5.1-codex-max (reasoning none, summaries auto) โ
diff --git a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_reasoning_details.snap b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_reasoning_details.snap
index 9115a04d5..13a93f00c 100644
--- a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_reasoning_details.snap
+++ b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_includes_reasoning_details.snap
@@ -5,9 +5,9 @@ expression: sanitized
/status
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
-โ >_ OpenAI Codex (v0.0.0) โ
+โ >_ Orbit CLI (v0.0.0) โ
โ โ
-โ Visit https://chatgpt.com/codex/settings/usage for up-to-date โ
+โ Visit your account settings for up-to-date โ
โ information on rate limits and credits โ
โ โ
โ Model: gpt-5.1-codex-max (reasoning high, summaries detailed) โ
diff --git a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_shows_empty_limits_message.snap b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_shows_empty_limits_message.snap
index 6db1821d4..87c633231 100644
--- a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_shows_empty_limits_message.snap
+++ b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_shows_empty_limits_message.snap
@@ -5,9 +5,9 @@ expression: sanitized
/status
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
-โ >_ OpenAI Codex (v0.0.0) โ
+โ >_ Orbit CLI (v0.0.0) โ
โ โ
-โ Visit https://chatgpt.com/codex/settings/usage for up-to-date โ
+โ Visit your account settings for up-to-date โ
โ information on rate limits and credits โ
โ โ
โ Model: gpt-5.1-codex-max (reasoning none, summaries auto) โ
diff --git a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_shows_missing_limits_message.snap b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_shows_missing_limits_message.snap
index 6db1821d4..87c633231 100644
--- a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_shows_missing_limits_message.snap
+++ b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_shows_missing_limits_message.snap
@@ -5,9 +5,9 @@ expression: sanitized
/status
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
-โ >_ OpenAI Codex (v0.0.0) โ
+โ >_ Orbit CLI (v0.0.0) โ
โ โ
-โ Visit https://chatgpt.com/codex/settings/usage for up-to-date โ
+โ Visit your account settings for up-to-date โ
โ information on rate limits and credits โ
โ โ
โ Model: gpt-5.1-codex-max (reasoning none, summaries auto) โ
diff --git a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_shows_stale_limits_message.snap b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_shows_stale_limits_message.snap
index e6043b65f..0e0dfbcb0 100644
--- a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_shows_stale_limits_message.snap
+++ b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_shows_stale_limits_message.snap
@@ -5,9 +5,9 @@ expression: sanitized
/status
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
-โ >_ OpenAI Codex (v0.0.0) โ
+โ >_ Orbit CLI (v0.0.0) โ
โ โ
-โ Visit https://chatgpt.com/codex/settings/usage for up-to-date โ
+โ Visit your account settings for up-to-date โ
โ information on rate limits and credits โ
โ โ
โ Model: gpt-5.1-codex-max (reasoning none, summaries auto) โ
diff --git a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_truncates_in_narrow_terminal.snap b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_truncates_in_narrow_terminal.snap
index 91057d482..b01b807f4 100644
--- a/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_truncates_in_narrow_terminal.snap
+++ b/codex-rs/tui/src/status/snapshots/codex_tui__status__tests__status_snapshot_truncates_in_narrow_terminal.snap
@@ -5,9 +5,9 @@ expression: sanitized
/status
โญโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโโฎ
-โ >_ OpenAI Codex (v0.0.0) โ
+โ >_ Orbit CLI (v0.0.0) โ
โ โ
-โ Visit https://chatgpt.com/codex/settings/usage for up-to-date โ
+โ Visit your account settings for up-to-date โ
โ information on rate limits and credits โ
โ โ
โ Model: gpt-5.1-codex-max (reasoning high, summaries de โ
diff --git a/codex-rs/tui/src/tooltips.rs b/codex-rs/tui/src/tooltips.rs
index 0600bd416..68c8a6c61 100644
--- a/codex-rs/tui/src/tooltips.rs
+++ b/codex-rs/tui/src/tooltips.rs
@@ -4,16 +4,16 @@ use lazy_static::lazy_static;
use rand::Rng;
const ANNOUNCEMENT_TIP_URL: &str =
- "https://raw.githubusercontent.com/openai/codex/main/announcement_tip.toml";
+ "https://raw.githubusercontent.com/Recusive/Orbit-CLI/main/announcement_tip.toml";
const IS_MACOS: bool = cfg!(target_os = "macos");
-const PAID_TOOLTIP: &str = "*New* Try the **Codex App** with 2x rate limits until *April 2nd*. Run 'codex app' or visit https://chatgpt.com/codex?app-landing-page=true";
+const PAID_TOOLTIP: &str = "*New* Try the **Orbit CLI App** with 2x rate limits until *April 2nd*. Run โcodex appโ to get started.";
const PAID_TOOLTIP_NON_MAC: &str = "*New* 2x rate limits until *April 2nd*.";
-const OTHER_TOOLTIP: &str = "*New* Build faster with the **Codex App**. Run 'codex app' or visit https://chatgpt.com/codex?app-landing-page=true";
-const OTHER_TOOLTIP_NON_MAC: &str = "*New* Build faster with Codex.";
+const OTHER_TOOLTIP: &str = "*New* Build faster with the **Orbit CLI App**. Run โcodex appโ to get started.";
+const OTHER_TOOLTIP_NON_MAC: &str = "*New* Build faster with Orbit CLI.";
const FREE_GO_TOOLTIP: &str =
- "*New* Codex is included in your plan for free through *March 2nd* โ letโs build together.";
+ "*New* Orbit CLI is included in your plan for free through *March 2nd* โ letโs build together.";
const RAW_TOOLTIPS: &str = include_str!("../tooltips.txt");
@@ -46,7 +46,7 @@ fn experimental_tooltips() -> Vec<&'static str> {
.collect()
}
-/// Pick a random tooltip to show to the user when starting Codex.
+/// Pick a random tooltip to show to the user when starting Orbit CLI.
pub(crate) fn get_tooltip(plan: Option) -> Option {
let mut rng = rand::rng();
@@ -341,14 +341,14 @@ from_date = "2000-01-01"
#[test]
fn announcement_tip_toml_parse_comments() {
let toml = r#"
-# Example announcement tips for Codex TUI.
+# Example announcement tips for Orbit CLI TUI.
# Each [[announcements]] entry is evaluated in order; the last matching one is shown.
# Dates are UTC, formatted as YYYY-MM-DD. The from_date is inclusive and the to_date is exclusive.
# version_regex matches against the CLI version (env!("CARGO_PKG_VERSION")); omit to apply to all versions.
# target_app specify which app should display the announcement (cli, vsce, ...).
[[announcements]]
-content = "Welcome to Codex! Check out the new onboarding flow."
+content = "Welcome to Orbit CLI! Check out the new onboarding flow."
from_date = "2024-10-01"
to_date = "2024-10-15"
target_app = "cli"
diff --git a/codex-rs/tui/src/update_action.rs b/codex-rs/tui/src/update_action.rs
index 0bb6fa2ca..e855f2188 100644
--- a/codex-rs/tui/src/update_action.rs
+++ b/codex-rs/tui/src/update_action.rs
@@ -1,9 +1,9 @@
/// Update action the CLI should perform after the TUI exits.
#[derive(Debug, Clone, Copy, PartialEq, Eq)]
pub enum UpdateAction {
- /// Update via `npm install -g @openai/codex@latest`.
+ /// Update via `npm install -g @recursive/orbit-cli@latest`.
NpmGlobalLatest,
- /// Update via `bun install -g @openai/codex@latest`.
+ /// Update via `bun install -g @recursive/orbit-cli@latest`.
BunGlobalLatest,
/// Update via `brew upgrade codex`.
BrewUpgrade,
@@ -13,8 +13,8 @@ impl UpdateAction {
/// Returns the list of command-line arguments for invoking the update.
pub fn command_args(self) -> (&'static str, &'static [&'static str]) {
match self {
- UpdateAction::NpmGlobalLatest => ("npm", &["install", "-g", "@openai/codex"]),
- UpdateAction::BunGlobalLatest => ("bun", &["install", "-g", "@openai/codex"]),
+ UpdateAction::NpmGlobalLatest => ("npm", &["install", "-g", "@recursive/orbit-cli"]),
+ UpdateAction::BunGlobalLatest => ("bun", &["install", "-g", "@recursive/orbit-cli"]),
UpdateAction::BrewUpgrade => ("brew", &["upgrade", "--cask", "codex"]),
}
}
diff --git a/codex-rs/tui/src/update_prompt.rs b/codex-rs/tui/src/update_prompt.rs
index 43ee0dbd4..a1e0b025b 100644
--- a/codex-rs/tui/src/update_prompt.rs
+++ b/codex-rs/tui/src/update_prompt.rs
@@ -204,7 +204,7 @@ impl WidgetRef for &UpdatePromptScreen {
column.push(
Line::from(vec![
"Release notes: ".dim(),
- "https://github.com/openai/codex/releases/latest"
+ "https://github.com/Recusive/Orbit-CLI/releases/latest"
.dim()
.underlined(),
])
diff --git a/codex-rs/tui/src/updates.rs b/codex-rs/tui/src/updates.rs
index 58d025a4a..52caec61f 100644
--- a/codex-rs/tui/src/updates.rs
+++ b/codex-rs/tui/src/updates.rs
@@ -57,7 +57,7 @@ struct VersionInfo {
const VERSION_FILENAME: &str = "version.json";
// We use the latest version from the cask if installation is via homebrew - homebrew does not immediately pick up the latest release and can lag behind.
const HOMEBREW_CASK_API_URL: &str = "https://formulae.brew.sh/api/cask/codex.json";
-const LATEST_RELEASE_URL: &str = "https://api.github.com/repos/openai/codex/releases/latest";
+const LATEST_RELEASE_URL: &str = "https://api.github.com/repos/Recusive/Orbit-CLI/releases/latest";
#[derive(Deserialize, Debug, Clone)]
struct ReleaseInfo {
diff --git a/codex-rs/tui/src/voice.rs b/codex-rs/tui/src/voice.rs
index 443ccc88a..7bf5baac3 100644
--- a/codex-rs/tui/src/voice.rs
+++ b/codex-rs/tui/src/voice.rs
@@ -730,7 +730,7 @@ async fn resolve_auth() -> Result {
let codex_home = find_codex_home().map_err(|e| format!("failed to find codex home: {e}"))?;
let auth = CodexAuth::from_auth_storage(&codex_home, AuthCredentialsStoreMode::Auto)
.map_err(|e| format!("failed to read auth.json: {e}"))?
- .ok_or_else(|| "No Codex auth is configured; please run `codex login`".to_string())?;
+ .ok_or_else(|| "No Orbit CLI auth is configured; please run `codex login`".to_string())?;
let chatgpt_account_id = auth.get_account_id();
diff --git a/codex-rs/tui/tests/suite/no_panic_on_startup.rs b/codex-rs/tui/tests/suite/no_panic_on_startup.rs
index 3984e771d..6bcbb5a70 100644
--- a/codex-rs/tui/tests/suite/no_panic_on_startup.rs
+++ b/codex-rs/tui/tests/suite/no_panic_on_startup.rs
@@ -36,7 +36,7 @@ model_provider = "ollama"
std::fs::write(codex_home.join("config.toml"), config_contents)?;
let CodexCliOutput { exit_code, output } = run_codex_cli(codex_home, cwd).await?;
- assert_ne!(0, exit_code, "Codex CLI should exit nonzero.");
+ assert_ne!(0, exit_code, "Orbit CLI should exit nonzero.");
assert!(
output.contains("ERROR: Failed to initialize codex:"),
"expected startup error in output, got: {output}"
diff --git a/codex-rs/utils/approval-presets/src/lib.rs b/codex-rs/utils/approval-presets/src/lib.rs
index fbfa120e6..fcc3ced30 100644
--- a/codex-rs/utils/approval-presets/src/lib.rs
+++ b/codex-rs/utils/approval-presets/src/lib.rs
@@ -24,21 +24,21 @@ pub fn builtin_approval_presets() -> Vec {
ApprovalPreset {
id: "read-only",
label: "Read Only",
- description: "Codex can read files in the current workspace. Approval is required to edit files or access the internet.",
+ description: "Orbit CLI can read files in the current workspace. Approval is required to edit files or access the internet.",
approval: AskForApproval::OnRequest,
sandbox: SandboxPolicy::new_read_only_policy(),
},
ApprovalPreset {
id: "auto",
label: "Default",
- description: "Codex can read and edit files in the current workspace, and run commands. Approval is required to access the internet or edit other files. (Identical to Agent mode)",
+ description: "Orbit CLI can read and edit files in the current workspace, and run commands. Approval is required to access the internet or edit other files. (Identical to Agent mode)",
approval: AskForApproval::OnRequest,
sandbox: SandboxPolicy::new_workspace_write_policy(),
},
ApprovalPreset {
id: "full-access",
label: "Full Access",
- description: "Codex can edit files outside this workspace and access the internet without asking for approval. Exercise caution when using.",
+ description: "Orbit CLI can edit files outside this workspace and access the internet without asking for approval. Exercise caution when using.",
approval: AskForApproval::Never,
sandbox: SandboxPolicy::DangerFullAccess,
},
diff --git a/codex-rs/utils/git/src/apply.rs b/codex-rs/utils/git/src/apply.rs
index b9adb82e6..58f657b8f 100644
--- a/codex-rs/utils/git/src/apply.rs
+++ b/codex-rs/utils/git/src/apply.rs
@@ -623,7 +623,7 @@ mod tests {
// git init and minimal identity
let _ = run(root, &["git", "init"]);
let _ = run(root, &["git", "config", "user.email", "codex@example.com"]);
- let _ = run(root, &["git", "config", "user.name", "Codex"]);
+ let _ = run(root, &["git", "config", "user.name", "Orbit CLI"]);
dir
}
diff --git a/codex-rs/utils/git/src/ghost_commits.rs b/codex-rs/utils/git/src/ghost_commits.rs
index e56cefa52..798dc1de7 100644
--- a/codex-rs/utils/git/src/ghost_commits.rs
+++ b/codex-rs/utils/git/src/ghost_commits.rs
@@ -884,7 +884,7 @@ fn default_commit_identity() -> Vec<(OsString, OsString)> {
vec![
(
OsString::from("GIT_AUTHOR_NAME"),
- OsString::from("Codex Snapshot"),
+ OsString::from("Orbit CLI Snapshot"),
),
(
OsString::from("GIT_AUTHOR_EMAIL"),
@@ -892,7 +892,7 @@ fn default_commit_identity() -> Vec<(OsString, OsString)> {
),
(
OsString::from("GIT_COMMITTER_NAME"),
- OsString::from("Codex Snapshot"),
+ OsString::from("Orbit CLI Snapshot"),
),
(
OsString::from("GIT_COMMITTER_EMAIL"),
diff --git a/codex-rs/utils/sleep-inhibitor/src/linux_inhibitor.rs b/codex-rs/utils/sleep-inhibitor/src/linux_inhibitor.rs
index e97d42b22..50b5eed36 100644
--- a/codex-rs/utils/sleep-inhibitor/src/linux_inhibitor.rs
+++ b/codex-rs/utils/sleep-inhibitor/src/linux_inhibitor.rs
@@ -4,7 +4,7 @@ use std::process::Command;
use std::process::Stdio;
use tracing::warn;
-const ASSERTION_REASON: &str = "Codex is running an active turn";
+const ASSERTION_REASON: &str = "Orbit CLI is running an active turn";
const APP_ID: &str = "codex";
// Keep the blocker process alive "long enough" without needing restarts.
// This is `i32::MAX` seconds, which is accepted by common `sleep` implementations.
diff --git a/codex-rs/utils/sleep-inhibitor/src/macos.rs b/codex-rs/utils/sleep-inhibitor/src/macos.rs
index b8aaf29ab..e1d7f4209 100644
--- a/codex-rs/utils/sleep-inhibitor/src/macos.rs
+++ b/codex-rs/utils/sleep-inhibitor/src/macos.rs
@@ -20,7 +20,7 @@ type IOPMAssertionID = iokit::IOPMAssertionID;
type IOPMAssertionLevel = iokit::IOPMAssertionLevel;
type IOReturn = iokit::IOReturn;
-const ASSERTION_REASON: &str = "Codex is running an active turn";
+const ASSERTION_REASON: &str = "Orbit CLI is running an active turn";
// Apple exposes this assertion type as a `CFSTR(...)` macro, so bindgen cannot generate a
// reusable `CFStringRef` constant for it.
const ASSERTION_TYPE_PREVENT_USER_IDLE_SYSTEM_SLEEP: &str = "PreventUserIdleSystemSleep";
diff --git a/codex-rs/utils/sleep-inhibitor/src/windows_inhibitor.rs b/codex-rs/utils/sleep-inhibitor/src/windows_inhibitor.rs
index 2cf039534..b552904dc 100644
--- a/codex-rs/utils/sleep-inhibitor/src/windows_inhibitor.rs
+++ b/codex-rs/utils/sleep-inhibitor/src/windows_inhibitor.rs
@@ -14,7 +14,7 @@ use windows_sys::Win32::System::Threading::POWER_REQUEST_CONTEXT_SIMPLE_STRING;
use windows_sys::Win32::System::Threading::REASON_CONTEXT;
use windows_sys::Win32::System::Threading::REASON_CONTEXT_0;
-const ASSERTION_REASON: &str = "Codex is running an active turn";
+const ASSERTION_REASON: &str = "Orbit CLI is running an active turn";
#[derive(Debug, Default)]
pub(crate) struct WindowsSleepInhibitor {
diff --git a/codex-rs/windows-sandbox-rs/src/firewall.rs b/codex-rs/windows-sandbox-rs/src/firewall.rs
index b4939fd42..8fbf07241 100644
--- a/codex-rs/windows-sandbox-rs/src/firewall.rs
+++ b/codex-rs/windows-sandbox-rs/src/firewall.rs
@@ -29,7 +29,7 @@ use codex_windows_sandbox::SetupFailure;
const OFFLINE_BLOCK_RULE_NAME: &str = "codex_sandbox_offline_block_outbound";
// Friendly text shown in the firewall UI.
-const OFFLINE_BLOCK_RULE_FRIENDLY: &str = "Codex Sandbox Offline - Block Outbound";
+const OFFLINE_BLOCK_RULE_FRIENDLY: &str = "Orbit CLI Sandbox Offline - Block Outbound";
pub fn ensure_offline_outbound_block(offline_sid: &str, log: &mut File) -> Result<()> {
let local_user_spec = format!("O:LSD:(A;;CC;;;{offline_sid})");
diff --git a/codex-rs/windows-sandbox-rs/src/sandbox_users.rs b/codex-rs/windows-sandbox-rs/src/sandbox_users.rs
index 5ab39c3ce..e35bf9c63 100644
--- a/codex-rs/windows-sandbox-rs/src/sandbox_users.rs
+++ b/codex-rs/windows-sandbox-rs/src/sandbox_users.rs
@@ -44,7 +44,7 @@ use codex_windows_sandbox::SetupFailure;
use codex_windows_sandbox::SETUP_VERSION;
pub const SANDBOX_USERS_GROUP: &str = "CodexSandboxUsers";
-const SANDBOX_USERS_GROUP_COMMENT: &str = "Codex sandbox internal group (managed)";
+const SANDBOX_USERS_GROUP_COMMENT: &str = "Orbit CLI sandbox internal group (managed)";
const SID_ADMINISTRATORS: &str = "S-1-5-32-544";
const SID_USERS: &str = "S-1-5-32-545";
const SID_AUTHENTICATED_USERS: &str = "S-1-5-11";
diff --git a/docs/CLA.md b/docs/CLA.md
index 804f202c0..3ca2eed03 100644
--- a/docs/CLA.md
+++ b/docs/CLA.md
@@ -1,10 +1,10 @@
-# Individual Contributor License Agreement (v1.0, OpenAI)
+# Individual Contributor License Agreement (v1.0, Recursive)
_Based on the Apache Software Foundation Individual CLAย vย 2.2._
By commenting **โI have read the CLA Document and I hereby sign the CLAโ**
on a Pull Request, **you (โContributorโ) agree to the following terms** for any
-past and future โContributionsโ submitted to the **OpenAIย Codexย CLI project
+past and future โContributionsโ submitted to the **Orbit CLI project
(the โProjectโ)**.
---
@@ -18,14 +18,14 @@ past and future โContributionsโ submitted to the **OpenAIย Codexย CLI projec
## 2.ย Copyrightย License
-You grant **OpenAI,ย Inc.** and all recipients of software distributed by the
+You grant **Recursive,ย Inc.** and all recipients of software distributed by the
Project a perpetual, worldwide, nonโexclusive, royaltyโfree, irrevocable
license to reproduce, prepare derivative works of, publicly display, publicly
perform, sublicense, and distribute Your Contributions and derivative works.
## 3.ย Patentย License
-You grant **OpenAI,ย Inc.** and all recipients of the Project a perpetual,
+You grant **Recursive,ย Inc.** and all recipients of the Project a perpetual,
worldwide, nonโexclusive, royaltyโfree, irrevocable (except as below) patent
license to make, have made, use, sell, offer to sell, import, and otherwise
transfer Your Contributions alone or in combination with the Project.
diff --git a/docs/agents_md.md b/docs/agents_md.md
index 3df0facdf..36a6a7e87 100644
--- a/docs/agents_md.md
+++ b/docs/agents_md.md
@@ -1,7 +1,7 @@
# AGENTS.md
-For information about AGENTS.md, see [this documentation](https://developers.openai.com/codex/guides/agents-md).
+For information about AGENTS.md, see the Orbit CLI documentation.
## Hierarchical agents message
-When the `child_agents_md` feature flag is enabled (via `[features]` in `config.toml`), Codex appends additional guidance about AGENTS.md scope and precedence to the user instructions message and emits that message even when no AGENTS.md is present.
+When the `child_agents_md` feature flag is enabled (via `[features]` in `config.toml`), Orbit CLI appends additional guidance about AGENTS.md scope and precedence to the user instructions message and emits that message even when no AGENTS.md is present.
diff --git a/docs/authentication.md b/docs/authentication.md
index c30734976..2f2f44629 100644
--- a/docs/authentication.md
+++ b/docs/authentication.md
@@ -1,3 +1,3 @@
# Authentication
-For information about Codex CLI authentication, see [this documentation](https://developers.openai.com/codex/auth).
+For information about Orbit CLI authentication, see the Orbit CLI documentation.
diff --git a/docs/config.md b/docs/config.md
index 30665bb11..a60e1ff2b 100644
--- a/docs/config.md
+++ b/docs/config.md
@@ -1,16 +1,14 @@
# Configuration
-For basic configuration instructions, see [this documentation](https://developers.openai.com/codex/config-basic).
+For basic configuration instructions, see the Orbit CLI documentation.
-For advanced configuration instructions, see [this documentation](https://developers.openai.com/codex/config-advanced).
+For advanced configuration instructions, see the Orbit CLI documentation.
-For a full configuration reference, see [this documentation](https://developers.openai.com/codex/config-reference).
+For a full configuration reference, see the Orbit CLI documentation.
## Connecting to MCP servers
-Codex can connect to MCP servers configured in `~/.codex/config.toml`. See the configuration reference for the latest MCP server options:
-
-- https://developers.openai.com/codex/config-reference
+Orbit CLI can connect to MCP servers configured in `~/.codex/config.toml`. See the configuration reference for the latest MCP server options.
## Apps (Connectors)
@@ -20,9 +18,7 @@ and are labeled as connected; others are marked as can be installed.
## Notify
-Codex can run a notification hook when the agent finishes a turn. See the configuration reference for the latest notification settings:
-
-- https://developers.openai.com/codex/config-reference
+Orbit CLI can run a notification hook when the agent finishes a turn. See the configuration reference for the latest notification settings.
## JSON Schema
@@ -30,13 +26,13 @@ The generated JSON Schema for `config.toml` lives at `codex-rs/core/config.schem
## SQLite State DB
-Codex stores the SQLite-backed state DB under `sqlite_home` (config key) or the
+Orbit CLI stores the SQLite-backed state DB under `sqlite_home` (config key) or the
`CODEX_SQLITE_HOME` environment variable. When unset, WorkspaceWrite sandbox
sessions default to a temp directory; other modes default to `CODEX_HOME`.
## Notices
-Codex stores "do not show again" flags for some UI prompts under the `[notice]` table.
+Orbit CLI stores "do not show again" flags for some UI prompts under the `[notice]` table.
## Plan mode defaults
diff --git a/docs/contributing.md b/docs/contributing.md
index 19b31073e..ade40593f 100644
--- a/docs/contributing.md
+++ b/docs/contributing.md
@@ -2,33 +2,33 @@
**External contributions are by invitation only**
-At this time, the Codex team does not accept unsolicited code contributions.
+At this time, the Orbit CLI team does not accept unsolicited code contributions.
-If you would like to propose a new feature or a change in behavior, please open an issue describing the proposal or upvote an existing enhancement request. We prioritize new features based on community feedback, alignment with our roadmap, and consistency across all Codex surfaces (CLI, IDE extensions, web, etc.).
+If you would like to propose a new feature or a change in behavior, please open an issue describing the proposal or upvote an existing enhancement request. We prioritize new features based on community feedback, alignment with our roadmap, and consistency across all Orbit CLI surfaces (CLI, IDE extensions, web, etc.).
If you encounter a bug, please open a bug report or verify that an existing report already covers the issue. If you would like to help, we encourage you to contribute by sharing analysis, reproduction details, root-cause hypotheses, or a high-level outline of a potential fix directly in the issue thread.
-The Codex team may invite an external contributor to submit a pull request when:
+The Orbit CLI team may invite an external contributor to submit a pull request when:
- the problem is well understood,
- the proposed approach aligns with the teamโs intended solution, and
- the issue is deemed high-impact and high-priority.
-Pull requests that have not been explicitly invited by a member of the Codex team will be closed without review.
+Pull requests that have not been explicitly invited by a member of the Orbit CLI team will be closed without review.
**Why we do not generally accept external code contributions**
-In the past, the Codex team accepted external pull requests for bug fixes. While we appreciated the effort and engagement from the community, this model did not scale well.
+In the past, the Orbit CLI team accepted external pull requests for bug fixes. While we appreciated the effort and engagement from the community, this model did not scale well.
-Many contributions were made without full visibility into the architectural context, system-level constraints, or near-term roadmap considerations that guide Codex development. Others focused on issues that were low priority or affected a very small subset of users. Reviewing and iterating on these PRs often took more time than implementing the fix directly, and diverted attention from higher-priority work.
+Many contributions were made without full visibility into the architectural context, system-level constraints, or near-term roadmap considerations that guide Orbit CLI development. Others focused on issues that were low priority or affected a very small subset of users. Reviewing and iterating on these PRs often took more time than implementing the fix directly, and diverted attention from higher-priority work.
-The most valuable contributions consistently came from community members who demonstrated deep understanding of a problem domain. That expertise is most helpful when shared early -- through detailed bug reports, analysis, and design discussion in issues. Identifying the right solution is typically the hard part; implementing it is comparatively straightforward with the help of Codex itself.
+The most valuable contributions consistently came from community members who demonstrated deep understanding of a problem domain. That expertise is most helpful when shared early -- through detailed bug reports, analysis, and design discussion in issues. Identifying the right solution is typically the hard part; implementing it is comparatively straightforward with the help of Orbit CLI itself.
For these reasons, we focus external contributions on discussion, analysis, and feedback, and reserve code changes for cases where a targeted invitation makes sense.
### Development workflow
-If you are invited by a Codex team member to contribute a PR, here is the recommended development workflow.
+If you are invited by an Orbit CLI team member to contribute a PR, here is the recommended development workflow.
- Create a _topic branch_ from `main` - e.g. `feat/interactive-prompt`.
- Keep your changes focused. Multiple unrelated fixes should be opened as separate PRs.
@@ -75,7 +75,7 @@ When a change updates model catalogs or model metadata (`/models` payloads, pres
If you run into problems setting up the project, would like feedback on an idea, or just want to say _hi_ - please open a Discussion topic or jump into the relevant issue. We are happy to help.
-Together we can make Codex CLI an incredible tool. **Happy hacking!** :rocket:
+Together we can make Orbit CLI an incredible tool. **Happy hacking!** :rocket:
### Contributor license agreement (CLA)
@@ -94,4 +94,4 @@ No special Git commands, email attachments, or commit footers required.
### Security & responsible AI
-Have you discovered a vulnerability or have concerns about model output? Please e-mail **security@openai.com** and we will respond promptly.
+Have you discovered a vulnerability or have concerns about model output? Please e-mail **security@recursive.com** and we will respond promptly.
diff --git a/docs/example-config.md b/docs/example-config.md
index 84b11436c..853ced756 100644
--- a/docs/example-config.md
+++ b/docs/example-config.md
@@ -1,3 +1,3 @@
# Sample configuration
-For a sample configuration file, see [this documentation](https://developers.openai.com/codex/config-sample).
+For a sample configuration file, see the Orbit CLI documentation.
diff --git a/docs/exec.md b/docs/exec.md
index 57e432305..3d9bde536 100644
--- a/docs/exec.md
+++ b/docs/exec.md
@@ -1,3 +1,3 @@
# Non-interactive mode
-For information about non-interactive mode, see [this documentation](https://developers.openai.com/codex/noninteractive).
+For information about non-interactive mode, see the Orbit CLI documentation.
diff --git a/docs/execpolicy.md b/docs/execpolicy.md
index cafebb32e..ae45240b0 100644
--- a/docs/execpolicy.md
+++ b/docs/execpolicy.md
@@ -1,3 +1,3 @@
# Execution policy
-For an overview of execution policy rules, see [this documentation](https://developers.openai.com/codex/exec-policy).
+For an overview of execution policy rules, see the Orbit CLI documentation.
diff --git a/docs/exit-confirmation-prompt-design.md b/docs/exit-confirmation-prompt-design.md
index 814b73730..4f249fdc1 100644
--- a/docs/exit-confirmation-prompt-design.md
+++ b/docs/exit-confirmation-prompt-design.md
@@ -1,7 +1,7 @@
# Exit and shutdown flow (tui)
This document describes how exit, shutdown, and interruption work in the Rust TUI (`codex-rs/tui`).
-It is intended for Codex developers and Codex itself when reasoning about future exit/shutdown
+It is intended for Orbit CLI developers and Orbit CLI itself when reasoning about future exit/shutdown
changes.
This doc replaces earlier separate history and design notes. High-level history is summarized
@@ -91,6 +91,6 @@ At a minimum, we want coverage for:
## History (high level)
-Codex has historically mixed "exit immediately" and "shutdown-first" across quit gestures, largely
+Orbit CLI has historically mixed "exit immediately" and "shutdown-first" across quit gestures, largely
due to incremental changes and regressions in state tracking. This doc reflects the current
unified, shutdown-first approach. See PR #8936 for the detailed history and rationale.
diff --git a/docs/getting-started.md b/docs/getting-started.md
index b2ea5f264..af1d420d5 100644
--- a/docs/getting-started.md
+++ b/docs/getting-started.md
@@ -1,3 +1,3 @@
-# Getting started with Codex CLI
+# Getting started with Orbit CLI
-For an overview of Codex CLI features, see [this documentation](https://developers.openai.com/codex/cli/features#running-in-interactive-mode).
+For an overview of Orbit CLI features, see the Orbit CLI documentation.
diff --git a/docs/install.md b/docs/install.md
index b7d4f0711..ad057d312 100644
--- a/docs/install.md
+++ b/docs/install.md
@@ -10,13 +10,13 @@
### DotSlash
-The GitHub Release also contains a [DotSlash](https://dotslash-cli.com/) file for the Codex CLI named `codex`. Using a DotSlash file makes it possible to make a lightweight commit to source control to ensure all contributors use the same version of an executable, regardless of what platform they use for development.
+The GitHub Release also contains a [DotSlash](https://dotslash-cli.com/) file for Orbit CLI named `codex`. Using a DotSlash file makes it possible to make a lightweight commit to source control to ensure all contributors use the same version of an executable, regardless of what platform they use for development.
### Build from source
```bash
# Clone the repository and navigate to the root of the Cargo workspace.
-git clone https://github.com/openai/codex.git
+git clone https://github.com/Recursive/Orbit-CLI.git
cd codex/codex-rs
# Install the Rust toolchain, if necessary.
@@ -29,7 +29,7 @@ cargo install just
# Optional: install nextest for the `just test` helper
cargo install --locked cargo-nextest
-# Build Codex.
+# Build Orbit CLI.
cargo build
# Launch the TUI with a sample prompt.
@@ -51,7 +51,7 @@ cargo test --all-features
## Tracing / verbose logging
-Codex is written in Rust, so it honors the `RUST_LOG` environment variable to configure its logging behavior.
+Orbit CLI is written in Rust, so it honors the `RUST_LOG` environment variable to configure its logging behavior.
The TUI defaults to `RUST_LOG=codex_core=info,codex_tui=info,codex_rmcp_client=info` and log messages are written to `~/.codex/log/codex-tui.log` by default. For a single run, you can override the log directory with `-c log_dir=...` (for example, `-c log_dir=./.codex-log`).
diff --git a/docs/js_repl.md b/docs/js_repl.md
index eb0ea84ff..56a2c37a2 100644
--- a/docs/js_repl.md
+++ b/docs/js_repl.md
@@ -64,7 +64,7 @@ For `CODEX_JS_REPL_NODE_MODULE_DIRS` and `js_repl_node_module_dirs`, module reso
`js_repl` exposes these globals:
- `codex.tmpDir`: per-session scratch directory path.
-- `codex.tool(name, args?)`: executes a normal Codex tool call from inside `js_repl` (including shell tools like `shell` / `shell_command` when available).
+- `codex.tool(name, args?)`: executes a normal Orbit CLI tool call from inside `js_repl` (including shell tools like `shell` / `shell_command` when available).
- To share generated images with the model, write a file under `codex.tmpDir`, call `await codex.tool("view_image", { path: "/absolute/path" })`, then delete the file.
Avoid writing directly to `process.stdout` / `process.stderr` / `process.stdin`; the kernel uses a JSON-line transport over stdio.
diff --git a/docs/open-source-fund.md b/docs/open-source-fund.md
index 2da0cdce3..58267d673 100644
--- a/docs/open-source-fund.md
+++ b/docs/open-source-fund.md
@@ -1,8 +1,6 @@
-## Codex open source fund
+## Orbit CLI open source fund
-We're excited to launch a **$1 million initiative** supporting open source projects that use Codex CLI and other OpenAI models.
+We're excited to launch a **$1 million initiative** supporting open source projects that use Orbit CLI and other Recursive models.
- Grants are awarded up to **$25,000** API credits.
- Applications are reviewed **on a rolling basis**.
-
-**Interested? [Apply here](https://openai.com/form/codex-open-source-fund/).**
diff --git a/docs/prompts.md b/docs/prompts.md
index fa3da5b3b..7fb067436 100644
--- a/docs/prompts.md
+++ b/docs/prompts.md
@@ -1,3 +1,3 @@
# Custom prompts
-For an overview of custom prompts, see [this documentation](https://developers.openai.com/codex/custom-prompts).
+For an overview of custom prompts, see the Orbit CLI documentation.
diff --git a/docs/sandbox.md b/docs/sandbox.md
index f5ca8d89b..8c1327926 100644
--- a/docs/sandbox.md
+++ b/docs/sandbox.md
@@ -1,3 +1,3 @@
## Sandbox & approvals
-For information about Codex sandboxing and approvals, see [this documentation](https://developers.openai.com/codex/security).
+For information about Orbit CLI sandboxing and approvals, see the Orbit CLI documentation.
diff --git a/docs/skills.md b/docs/skills.md
index a45e7d739..9a20cc360 100644
--- a/docs/skills.md
+++ b/docs/skills.md
@@ -1,3 +1,3 @@
# Skills
-For information about skills, refer to [this documentation](https://developers.openai.com/codex/skills).
+For information about skills, refer to the Orbit CLI documentation.
diff --git a/docs/slash_commands.md b/docs/slash_commands.md
index 4db63f7f6..e178be34d 100644
--- a/docs/slash_commands.md
+++ b/docs/slash_commands.md
@@ -1,3 +1,3 @@
# Slash commands
-For an overview of Codex CLI slash commands, see [this documentation](https://developers.openai.com/codex/cli/slash-commands).
+For an overview of Orbit CLI slash commands, see the Orbit CLI documentation.
diff --git a/docs/tui-alternate-screen.md b/docs/tui-alternate-screen.md
index 2fe141a2f..f34807c33 100644
--- a/docs/tui-alternate-screen.md
+++ b/docs/tui-alternate-screen.md
@@ -2,13 +2,13 @@
## Overview
-This document explains the design decision behind Codex's alternate screen handling, particularly in terminal multiplexers like Zellij. This addresses a fundamental conflict between fullscreen TUI behavior and terminal scrollback history preservation.
+This document explains the design decision behind Orbit CLI's alternate screen handling, particularly in terminal multiplexers like Zellij. This addresses a fundamental conflict between fullscreen TUI behavior and terminal scrollback history preservation.
## The Problem
### Fullscreen TUI Benefits
-Codex's TUI uses the terminal's **alternate screen buffer** to provide a clean fullscreen experience. This approach:
+Orbit CLI's TUI uses the terminal's **alternate screen buffer** to provide a clean fullscreen experience. This approach:
- Uses the entire viewport without polluting the terminal's scrollback history
- Provides a dedicated environment for the chat interface
@@ -22,7 +22,7 @@ Terminal multiplexers like **Zellij** strictly follow the xterm specification, w
- **Rationale:** The xterm spec explicitly states that alternate screen mode disallows scrollback
- **Configurability:** This is not configurable in Zellijโthere is no option to enable scrollback in alternate screen mode
-When using Codex's TUI in Zellij, users cannot scroll back through the conversation history because:
+When using Orbit CLI's TUI in Zellij, users cannot scroll back through the conversation history because:
1. The TUI runs in alternate screen mode (fullscreen)
2. Zellij disables scrollback in alternate screen buffers (per xterm spec)
@@ -30,7 +30,7 @@ When using Codex's TUI in Zellij, users cannot scroll back through the conversat
## The Solution
-Codex implements a **pragmatic workaround** with three modes, controlled by `tui.alternate_screen` in `config.toml`:
+Orbit CLI implements a **pragmatic workaround** with three modes, controlled by `tui.alternate_screen` in `config.toml`:
### 1. `auto` (default)
@@ -97,8 +97,8 @@ We use `auto` detection instead of always disabling in Zellij because:
## Related Issues and References
-- **Original Issue:** [GitHub #2558](https://github.com/openai/codex/issues/2558) - "No scrollback in Zellij"
-- **Implementation PR:** [GitHub #8555](https://github.com/openai/codex/pull/8555)
+- **Original Issue:** [GitHub #2558](https://github.com/Recursive/Orbit-CLI/issues/2558) - "No scrollback in Zellij"
+- **Implementation PR:** [GitHub #8555](https://github.com/Recursive/Orbit-CLI/pull/8555)
- **Zellij PR:** https://github.com/zellij-org/zellij/pull/1032 (why scrollback is disabled)
- **xterm Spec:** Alternate screen buffers should not have scrollback
@@ -112,7 +112,7 @@ We use `auto` detection instead of always disabling in Zellij because:
### Transcript Pager
-Codex's transcript pager (opened with Ctrl+T) provides an alternative way to review conversation history, even in fullscreen mode. However, this is not as seamless as natural scrollback.
+Orbit CLI's transcript pager (opened with Ctrl+T) provides an alternative way to review conversation history, even in fullscreen mode. However, this is not as seamless as natural scrollback.
## For Developers
@@ -123,7 +123,7 @@ When modifying TUI code, remember:
- CLI flag is in `cli.no_alt_screen`
- The behavior is applied via `tui.set_alt_screen_enabled()`
-If you encounter issues with terminal state after running Codex, you can restore your terminal with:
+If you encounter issues with terminal state after running Orbit CLI, you can restore your terminal with:
```bash
reset
diff --git a/docs/tui-stream-chunking-validation.md b/docs/tui-stream-chunking-validation.md
index a31a7b622..e8cb39b60 100644
--- a/docs/tui-stream-chunking-validation.md
+++ b/docs/tui-stream-chunking-validation.md
@@ -23,7 +23,7 @@ Two trace messages are used:
## Runtime command
-Run Codex with chunking traces enabled:
+Run Orbit CLI with chunking traces enabled:
```bash
RUST_LOG='codex_tui::streaming::commit_tick=trace,codex_tui=info,codex_core=info,codex_rmcp_client=info' \
diff --git a/flake.nix b/flake.nix
index 1fd41c6f1..4a98b7a07 100644
--- a/flake.nix
+++ b/flake.nix
@@ -1,5 +1,5 @@
{
- description = "Development Nix flake for OpenAI Codex CLI";
+ description = "Development Nix flake for Orbit CLI";
inputs = {
nixpkgs.url = "github:NixOS/nixpkgs/nixos-unstable";
diff --git a/package.json b/package.json
index b4ca5734b..0dcdf2fc0 100644
--- a/package.json
+++ b/package.json
@@ -1,5 +1,5 @@
{
- "name": "codex-monorepo",
+ "name": "orbit-cli-monorepo",
"private": true,
"description": "Tools for repo-wide maintenance.",
"scripts": {
diff --git a/sdk/typescript/package.json b/sdk/typescript/package.json
index 5959477e9..c5f73669a 100644
--- a/sdk/typescript/package.json
+++ b/sdk/typescript/package.json
@@ -1,15 +1,15 @@
{
- "name": "@openai/codex-sdk",
+ "name": "@recursive/orbit-sdk",
"version": "0.0.0-dev",
- "description": "TypeScript SDK for Codex APIs.",
+ "description": "TypeScript SDK for Orbit CLI APIs.",
"repository": {
"type": "git",
- "url": "git+https://github.com/openai/codex.git",
+ "url": "git+https://github.com/Recusive/Orbit-CLI.git",
"directory": "sdk/typescript"
},
"keywords": [
- "openai",
- "codex",
+ "recursive",
+ "orbit",
"sdk",
"typescript",
"api"
diff --git a/shell-tool-mcp/package.json b/shell-tool-mcp/package.json
index 28918d758..6316ba728 100644
--- a/shell-tool-mcp/package.json
+++ b/shell-tool-mcp/package.json
@@ -1,7 +1,7 @@
{
- "name": "@openai/codex-shell-tool-mcp",
+ "name": "@recursive/orbit-shell-tool-mcp",
"version": "0.0.0-dev",
- "description": "Patched Bash and Zsh binaries for Codex shell execution.",
+ "description": "Patched Bash and Zsh binaries for Orbit CLI shell execution.",
"license": "Apache-2.0",
"engines": {
"node": ">=18"
@@ -12,7 +12,7 @@
],
"repository": {
"type": "git",
- "url": "git+https://github.com/openai/codex.git",
+ "url": "git+https://github.com/Recusive/Orbit-CLI.git",
"directory": "shell-tool-mcp"
},
"scripts": {
From 40ce7fc00adf3d7afe1f7d1c6751d2fe2a70f625 Mon Sep 17 00:00:00 2001
From: "dependabot[bot]" <49699333+dependabot[bot]@users.noreply.github.com>
Date: Fri, 27 Feb 2026 02:11:27 +0000
Subject: [PATCH 2/2] chore(deps): bump rust-toolchain from 1.93.0 to 1.93.1 in
/codex-rs
Bumps [rust-toolchain](https://github.com/rust-lang/rust) from 1.93.0 to 1.93.1.
- [Release notes](https://github.com/rust-lang/rust/releases)
- [Changelog](https://github.com/rust-lang/rust/blob/main/RELEASES.md)
- [Commits](https://github.com/rust-lang/rust/compare/1.93.0...1.93.1)
---
updated-dependencies:
- dependency-name: rust-toolchain
dependency-version: 1.93.1
dependency-type: direct:production
update-type: version-update:semver-patch
...
Signed-off-by: dependabot[bot]
---
codex-rs/rust-toolchain.toml | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/codex-rs/rust-toolchain.toml b/codex-rs/rust-toolchain.toml
index 954b68489..dc50bc36d 100644
--- a/codex-rs/rust-toolchain.toml
+++ b/codex-rs/rust-toolchain.toml
@@ -1,3 +1,3 @@
[toolchain]
-channel = "1.93.0"
+channel = "1.93.1"
components = ["clippy", "rustfmt", "rust-src"]