Desktop app rewrites removed feature flag js_repl into config.toml on every startup

Open 💬 2 comments Opened May 25, 2026 by liby

Summary

The Codex desktop app writes features.js_repl = false back into config.toml on every launch, even when the user has manually removed the line. js_repl is reported as a removed-stage feature flag by codex features list.

Environment

  • codex-cli 0.133.0
  • Codex desktop app 26.519.41501
  • macOS (Darwin 25.4.0, arm64)

Steps to reproduce

  1. Quit the Codex desktop app completely.
  2. Edit $CODEX_HOME/config.toml and remove the features.js_repl = false line.
  3. Confirm with grep js_repl $CODEX_HOME/config.toml that the line is gone.
  4. Run codex features list and codex doctor. The line stays absent; the CLI does not write it back.
  5. Launch the Codex desktop app.
  6. Re-check config.toml. features.js_repl = false is present again.

Observed behavior

After every desktop-app launch, features.js_repl = false is restored.

Code reference

In the desktop bundle at Codex.app/Contents/Resources/app.asar, file .vite/build/main-*.js:

var Qn = [`features.js_repl`, /* ... */];

async function $n({ appServerConnection, desktopFeatureAvailability, ... }) {
  let d = await St({ ... });
  await appServerConnection.sendAppServerRequest(`config/batchWrite`, {
    edits: er(d), // Qn.map(t => ({ keyPath: t, mergeStrategy: `replace`, value: d?.[t] ?? null }))
    expectedVersion: null,
    filePath: null,
    reloadUserConfig: true,
  });
}

$n is awaited during app startup. The features.js_repl keyPath is written with mergeStrategy: "replace" unconditionally.

CLI feature stage

$ codex features list | grep js_repl
js_repl              removed   false
js_repl_tools_only   removed   false

Impact

A user who deletes features.js_repl = false finds it restored on the next desktop-app launch, with no UI control to suppress the rewrite. This is confusing because the CLI reports the flag as removed.

View original on GitHub ↗

This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗