feat: treat bare `exit` and `quit` as aliases for `/exit`

Resolved 💬 1 comment Opened Apr 29, 2026 by callmemorgan Closed Apr 29, 2026

What

Make it so typing exit or quit (without the leading /) and pressing Enter in the Codex TUI chat composer behaves identically to /exit or /quit.

Why

Users coming from shell or REPL environments instinctively type exit to quit. The current behavior silently submits it as a chat message instead, which is surprising. The fix is a small quality-of-life improvement that aligns Codex with the mental model most CLI users carry.

Proposed approach

In chat_composer.rs, add a try_dispatch_plain_exit_aliases method that checks whether the entire composer input (trimmed) is exactly "exit" or "quit", and if so, dispatches SlashCommand::Exit with the same side-effects as try_dispatch_bare_slash_command. Guarded by slash_commands_enabled() and !is_bash_mode (so typing exit in bash mode still passes through as a shell command).

I have a working implementation with two new tests (plain_exit_requests_exit, plain_quit_requests_exit) that pass alongside the existing slash_commands test suite. Happy to submit a PR if invited.

View original on GitHub ↗

This issue has 1 comment on GitHub. Read the full discussion on GitHub ↗