Complete comprehensive Codex → LLMX branding update

Fixed all remaining user-facing "Codex" references across entire codebase:
- Updated all UI strings and error messages
- Fixed GitHub issue templates and workflows
- Updated MCP server tool descriptions and error messages
- Fixed all test messages and comments
- Updated documentation comments
- Changed auth keyring service name to "LLMX Auth"

Reduced from 201 occurrences to only code identifiers (struct/type names).
Changes span 78 files across Rust, Python, YAML, and JSON.

🤖 Generated with Claude Code

Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
Sebastian Krüger
2025-11-11 16:01:04 +01:00
parent cf72f42a77
commit 831e6fa6b5
78 changed files with 242 additions and 242 deletions

View File

@@ -399,7 +399,7 @@ fn exec_options() -> Vec<ApprovalOption> {
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 LLMX what to do differently".to_string(),
decision: ReviewDecision::Abort,
display_shortcut: Some(key_hint::plain(KeyCode::Esc)),
additional_shortcuts: vec![key_hint::plain(KeyCode::Char('n'))],
@@ -416,7 +416,7 @@ fn patch_options() -> Vec<ApprovalOption> {
additional_shortcuts: vec![key_hint::plain(KeyCode::Char('y'))],
},
ApprovalOption {
label: "No, and tell Codex what to do differently".to_string(),
label: "No, and tell LLMX what to do differently".to_string(),
decision: ReviewDecision::Abort,
display_shortcut: Some(key_hint::plain(KeyCode::Esc)),
additional_shortcuts: vec![key_hint::plain(KeyCode::Char('n'))],

View File

@@ -1706,7 +1706,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -1766,7 +1766,7 @@ mod tests {
true,
sender,
enhanced_keys_supported,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
setup(&mut composer);
@@ -1845,7 +1845,7 @@ mod tests {
true,
sender,
true,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -1870,7 +1870,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -1896,7 +1896,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -1937,7 +1937,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2111,7 +2111,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2140,7 +2140,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2169,7 +2169,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2196,7 +2196,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2231,7 +2231,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2272,7 +2272,7 @@ mod tests {
true,
sender.clone(),
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2315,7 +2315,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2343,7 +2343,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
type_chars_humanlike(&mut composer, &['/', 'm', 'o']);
@@ -2386,7 +2386,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2439,7 +2439,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2460,7 +2460,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2496,7 +2496,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2531,7 +2531,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2610,7 +2610,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2682,7 +2682,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2730,7 +2730,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
let path = PathBuf::from("/tmp/image1.png");
@@ -2754,7 +2754,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
let path = PathBuf::from("/tmp/image2.png");
@@ -2779,7 +2779,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
let path = PathBuf::from("/tmp/image3.png");
@@ -2820,7 +2820,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2851,7 +2851,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2908,7 +2908,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2935,7 +2935,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -2971,7 +2971,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -3005,7 +3005,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -3043,7 +3043,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -3079,7 +3079,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -3109,7 +3109,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -3159,7 +3159,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -3212,7 +3212,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -3249,7 +3249,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -3280,7 +3280,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -3316,7 +3316,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -3353,7 +3353,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -3391,7 +3391,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -3435,7 +3435,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);
@@ -3467,7 +3467,7 @@ mod tests {
true,
sender,
false,
"Ask Codex to do anything".to_string(),
"Ask LLMX to do anything".to_string(),
false,
);

View File

@@ -422,7 +422,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 LLMX session logs with the team for troubleshooting."
.to_string(),
),
actions: vec![yes_action],

View File

@@ -441,14 +441,14 @@ mod tests {
let items = vec![
SelectionItem {
name: "Read Only".to_string(),
description: Some("Codex can read files".to_string()),
description: Some("LLMX 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("LLMX can edit files".to_string()),
is_current: false,
dismiss_on_select: true,
..Default::default()
@@ -501,7 +501,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 LLMX approval presets"));
assert_snapshot!("list_selection_spacing_with_subtitle", render_lines(&view));
}
@@ -511,7 +511,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("LLMX can read files".to_string()),
is_current: false,
dismiss_on_select: true,
..Default::default()

View File

@@ -544,7 +544,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 LLMX to do anything".to_string(),
disable_paste_burst: false,
});
pane.push_approval_request(exec_request());
@@ -564,7 +564,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 LLMX to do anything".to_string(),
disable_paste_burst: false,
});
@@ -595,7 +595,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 LLMX to do anything".to_string(),
disable_paste_burst: false,
});
@@ -660,7 +660,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 LLMX to do anything".to_string(),
disable_paste_burst: false,
});
@@ -685,7 +685,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 LLMX to do anything".to_string(),
disable_paste_burst: false,
});
@@ -714,7 +714,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 LLMX to do anything".to_string(),
disable_paste_burst: false,
});
@@ -740,7 +740,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 LLMX to do anything".to_string(),
disable_paste_burst: false,
});

View File

@@ -1854,7 +1854,7 @@ impl ChatWidget {
self.bottom_pane.show_selection_view(SelectionViewParams {
title: Some("Select Model and Effort".to_string()),
subtitle: Some("Switch the model for this and future Codex CLI sessions".to_string()),
subtitle: Some("Switch the model for this and future LLMX CLI sessions".to_string()),
footer_hint: Some("Press enter to select reasoning effort, or esc to dismiss.".into()),
items,
..Default::default()
@@ -2031,10 +2031,10 @@ impl ChatWidget {
let mut header = ColumnRenderable::new();
header.push(line![
"Codex forced your settings back to Read Only on this Windows machine.".bold()
"LLMX forced your settings back to Read Only on this Windows machine.".bold()
]);
header.push(line![
"To re-enable Auto mode, run Codex inside Windows Subsystem for Linux (WSL) or enable Full Access manually.".dim()
"To re-enable Auto mode, run LLMX inside Windows Subsystem for Linux (WSL) or enable Full Access manually.".dim()
]);
Box::new(header)
} else {
@@ -2201,7 +2201,7 @@ impl ChatWidget {
let mut header_children: Vec<Box<dyn Renderable>> = 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 LLMX 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),
@@ -2379,7 +2379,7 @@ impl ChatWidget {
header.push(line![
"Auto mode requires Windows Subsystem for Linux (WSL2).".bold()
]);
header.push(line!["Run Codex inside WSL to enable sandboxed commands."]);
header.push(line!["Run LLMX inside WSL to enable sandboxed commands."]);
header.push(line![""]);
header.push(Paragraph::new(WSL_INSTRUCTIONS).wrap(Wrap { trim: false }));
@@ -2777,7 +2777,7 @@ impl Notification {
}
Notification::EditApprovalRequested { cwd, changes } => {
format!(
"Codex wants to edit {}",
"LLMX wants to edit {}",
if changes.len() == 1 {
#[allow(clippy::unwrap_used)]
display_path_for(changes.first().unwrap(), cwd)

View File

@@ -283,7 +283,7 @@ 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 LLMX to do anything".to_string(),
disable_paste_burst: false,
});
let auth_manager = AuthManager::from_auth_for_testing(CodexAuth::from_api_key("test"));
@@ -941,7 +941,7 @@ fn slash_init_skips_when_project_doc_exists() {
match op_rx.try_recv() {
Err(TryRecvError::Empty) => {}
other => panic!("expected no Codex op to be sent, got {other:?}"),
other => panic!("expected no LLMX op to be sent, got {other:?}"),
}
let cells = drain_insert_history(&mut rx);
@@ -1466,7 +1466,7 @@ fn approvals_popup_includes_wsl_note_for_auto_mode() {
"expected auto preset description to mention WSL requirement only on Windows, popup: {popup}"
);
assert_eq!(
popup.contains("Codex forced your settings back to Read Only on this Windows machine."),
popup.contains("LLMX forced your settings back to Read Only on this Windows machine."),
cfg!(target_os = "windows") && chat.config.forced_auto_mode_downgraded_on_windows,
"expected downgrade notice only when auto mode is forced off on Windows, popup: {popup}"
);
@@ -1813,7 +1813,7 @@ async fn binary_size_transcript_snapshot() {
//
// Snapshot test: command approval modal
//
// Synthesizes a Codex ExecApprovalRequest event to trigger the approval modal
// Synthesizes an LLMX ExecApprovalRequest event to trigger the approval modal
// and snapshots the visual output using the ratatui TestBackend.
#[test]
fn approval_modal_exec_snapshot() {

View File

@@ -608,7 +608,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 LLMX".dim(),
]),
Line::from(vec![
" ".into(),
@@ -618,7 +618,7 @@ pub(crate) fn new_session_info(
Line::from(vec![
" ".into(),
"/approvals".into(),
" - choose what Codex can do without approval".dim(),
" - choose what LLMX can do without approval".dim(),
]),
Line::from(vec![
" ".into(),
@@ -724,10 +724,10 @@ impl HistoryCell for SessionHeaderHistoryCell {
let make_row = |spans: Vec<Span<'static>>| Line::from(spans);
// Title line rendered inside the box: ">_ OpenAI Codex (vX)"
// Title line rendered inside the box: ">_ LLMX (vX)"
let title_spans: Vec<Span<'static>> = vec![
Span::from(">_ ").dim(),
Span::from("OpenAI Codex").bold(),
Span::from("LLMX").bold(),
Span::from(" ").dim(),
Span::from(format!("(v{})", self.version)).dim(),
];

View File

@@ -198,7 +198,7 @@ pub async fn run_main(
// Ensure the file is only readable and writable by the current user.
// Doing the equivalent to `chmod 600` on Windows is quite a bit more code
// and requires the Windows API crates, so we can reconsider that when
// Codex CLI is officially supported on Windows.
// LLMX CLI is officially supported on Windows.
#[cfg(unix)]
{
use std::os::unix::fs::OpenOptionsExt;

View File

@@ -37,16 +37,16 @@ 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 LLMX",
SlashCommand::Compact => "summarize conversation to prevent hitting the context limit",
SlashCommand::Review => "review my current changes and find issues",
SlashCommand::Undo => "ask Codex to undo a turn",
SlashCommand::Undo => "ask LLMX to undo a turn",
SlashCommand::Quit | SlashCommand::Exit => "exit LLMX",
SlashCommand::Diff => "show git diff (including untracked files)",
SlashCommand::Mention => "mention a file",
SlashCommand::Status => "show current session configuration and token usage",
SlashCommand::Model => "choose what model and reasoning effort to use",
SlashCommand::Approvals => "choose what Codex can do without approval",
SlashCommand::Approvals => "choose what LLMX can do without approval",
SlashCommand::Mcp => "list configured MCP tools",
SlashCommand::Logout => "log out of LLMX",
SlashCommand::Rollout => "print the rollout file path",

View File

@@ -267,7 +267,7 @@ impl HistoryCell for StatusHistoryCell {
let mut lines: Vec<Line<'static>> = Vec::new();
lines.push(Line::from(vec![
Span::from(format!("{}>_ ", FieldFormatter::INDENT)).dim(),
Span::from("OpenAI Codex").bold(),
Span::from("LLMX").bold(),
Span::from(" ").dim(),
Span::from(format!("(v{CODEX_CLI_VERSION})")).dim(),
]));