anomalyco / anomalyco/opencode

[FEATURE]: Support full-width `!` to toggle Shell/Prompt mode in web UI and TUI

Open
#43,583 2 comments 0 reactions 1 assignee View on GitHub

@jlongster is already working on this.

Since Aug 20, 2026.

Dominant language
TypeScript
Stars
209k
Forks
27.5k
PR merge metrics
PR metrics pending

Description

Feature hasn't been suggested before.
  • I have verified this feature I'm about to request hasn't been suggested before.
Describe the enhancement you want to request

Problem

OpenCode uses a leading ! to enter Shell mode (and back to Prompt mode). On CJK input methods (Chinese IME, etc.), typing the ! key usually produces the full-width character instead of the half-width !. As a result:

  • In the TUI, entering !ls is not recognized as a shell command — it's sent to the model as normal text instead of switching into Shell mode.
  • The web UI has the same issue: does not trigger the shell-mode toggle.

This is the same class of friction reported for slash commands in #11485 (where from a CJK IME broke /commands), but here specifically for the shell-mode ! toggle.

Requested feature

Treat the full-width (U+FF01) as equivalent to ! for toggling Shell/Prompt mode, in both the web UI and the TUI:

  • !ls should behave exactly like !ls (enter Shell mode, run ls)
  • After executing a shell command, (like !) should toggle back to Prompt mode

Optionally, this could be made configurable (e.g., a tui.json / config setting listing alternative prefixes, mirroring the general "alternative command prefix" idea from #11485) so it also covers other CJK punctuation.

Why

Shell mode is a core workflow (running deterministic commands). For users who type with a CJK IME, the full-width key is the default output, making the ! shortcut effectively unusable without switching IMEs. Supporting removes that friction for both the web UI and the TUI.

Related
  • #11485 (closed, auto-stale): alternative command prefix for non-English IMEs ( for slash commands) — same underlying IME issue, different prefix.

Contributor guide

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. Open a pull request that references the issue number.

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.