This file describes the current UX intent so future work does not accidentally undo the design.
CodexU is a remote control plane for Codex, not a different Codex engine.
That means:
- it should surface state clearly
- it should reduce operational friction
- it should not overtake Codex with wrapper-specific policy hacks
The conversation view is intentionally split into:
ChatCommands
Why:
- command cards were visually noisy
- long shells and outputs drowned out the actual conversation
- users still need access to command detail, but not by default
Keep:
Chatas the defaultCommandsas the explicit inspection viewRunning commands: Nvisible from chat
The app must not look frozen during long tool or context-compaction work.
Keep:
Thinking · Ns- reconnecting/working indicators
- compact visible progress instead of silent waiting
Plan activity should not steal focus from the main conversation.
Keep:
Planas a separate tab for full planning output- the current tab stable while plan responses arrive
- a short plan summary card in
Chatwith an explicitOpen Planaction
Selected skills should be sent as native skill attachments.
Do not reintroduce:
- long wrapper policy text
- global skill forcing paragraphs in user prompts
- auto-discovery/install behavior hidden from the user
Skill review exists to offer help before execution without hijacking the prompt.
Desired behavior:
- only recommend already-installed skills
- ask before adding them
- allow one-thread snooze
- do not silently mutate project defaults
These are intentionally separate.
Skills Hub: discover, install, update, repair, disable, uninstallPresets: compose reusable skill packs for projects and sessions
Do not merge them back into one overloaded screen unless there is a much stronger information architecture.
Top badges are a status strip, not duplicate composer clutter.
They should summarize:
- current preset
- active attached skills
- skill review state
- context usage
Why:
- users need to understand the project state while reading the thread
- status belongs near the thread, not buried in the composer
Context usage is thread-local and not the same thing as account quota.
Keep:
Context {percent}%based onmodel_auto_compact_token_limitwhen available- fallback to
modelContextWindowonly when the compact threshold is unavailable - explicit wording that distinguishes context usage from account quota
- a manual
Compact contextaction near the context details
Current operating decision:
model_auto_compact_token_limit = 225000on local and VPS runtimes- treat that threshold as the 100% point for the usage chip
The composer should remain input-first.
Do not bring back heavyweight duplicated controls into the desktop composer if the same state is already represented and editable through dedicated UI.
Mobile favors compact sheets and large touch targets.
Keep:
- compact composer controls
- sheet-style configuration and review UI
- better line-wrapping for paths and commands
- side drawer behavior optimized for thread switching
The current EN/KO locale system is intentionally lightweight.
Keep in mind:
- only the high-traffic screens were translated
- this is not a full i18n framework
- extend the existing mechanism; do not replace it casually unless the whole app is being internationalized
Prefer:
- clearer state visibility
- fewer duplicated controls
- smaller, more explicit confirmations
- native Codex behavior where possible
Avoid:
- forcing behavior through prompt scaffolding
- combining management screens that serve different jobs
- hiding long-running activity without visible status