[BUG] command autocomplete only triggers at position 0, while @ triggers mid-prompt
Preflight Checklist
- [x] I have searched existing issues and this hasn't been reported yet
- [x] This is a single bug report (please file separate reports for different bugs)
- [x] I am using the latest version of Claude Code
What's Wrong?
App: Claude desktop (macOS) 1.40609.0 — installed 2026-08-27 Surface: Claude Code in the desktop app Regression noticed: immediately after the 2026-08-27 app update
Expected
Typing / anywhere in the composer opens the skill/command menu and filters as I type, so I can pick a skill mid-sentence.
Actual
The menu opens only when / is the first character of the message. Typing / after any other text inserts a literal slash with no menu, so skills cannot be browsed while composing.
Why this is inconsistent
Both pickers live in the same composer, but they use different mechanisms:
@ — cursor-local ProseMirror suggestion plugin (shared-11-BFWs2XIz.js):
const a = s.parent.textBetween(Math.max(0, s.parentOffset - 50), s.parentOffset, ...)
const l = this.storage.disabled ? null : a.match(/(?:^|\s)@(\S*)$/)
It inspects the 50 characters before the cursor, so it fires at start-of-line or after any whitespace — i.e. anywhere in the message.
/ — whole-message prefix check (shared-1-BK5wDqY-.js):
const i = e.trim();
if (!i.startsWith("/")) return;
const o = i.slice(1).split(" ")[0];
It tests the entire trimmed message, so it can only match at position 0.
Impact
With a large skill library (67 personal skills + ~1,000 plugin skills here), the / menu is the only practical way to discover a skill. Being unable to open it mid-sentence forces the user to either memorise exact skill names or restart the sentence.
What Should Happen?
Make the / menu a cursor-local suggestion plugin like @ — e.g. trigger on /(?:^|\s)\/(\S*)$/ — or expose skills as an @ mention provider. Today @'s providers are ccd-files, desktop, local-files, projects; none serve skills.
Ruled out locally
No settings key or env var governs slash-trigger position (searched the app bundle and the CLI).
ccd_slash_command_menu is a lazy-loaded chunk id, not a feature gate.
~/.claude/keybindings.json actions are a fixed enum with no text-insert, cursor-move, or command-exec action, so a binding cannot emulate it.
No previous app version is retained, so rollback is not possible.
Error Messages/Logs
None. No error is produced — the autocomplete menu simply does not open. Nothing is
written to the console or logs.
Steps to Reproduce
- Open Claude Code in the Claude desktop app (macOS 1.40609.0) with at least one skill
installed in ~/.claude/skills/.
- In the composer, type "/" as the FIRST character of an empty message.
-> The skill/command menu opens and filters as you type. This is correct.
- Clear the input. Now type any text first, for example:
refactor the auth module
then type a space and "/".
-> No menu appears. A literal "/" is inserted. Typing more characters never opens
the menu.
- For contrast, in the same composer type any text, then a space, then "@".
-> The mention menu DOES open mid-prompt, confirming the composer supports
cursor-local suggestion menus. Only "/" is restricted to position 0.
Claude Model
Not sure / Multiple models
Is this a regression?
Yes, this worked in a previous version
Last Working Version
_No response_
Claude Code Version
Claude desktop app 1.40609.0 (macOS)
Platform
Anthropic API
Operating System
macOS
Terminal/Shell
Terminal.app (macOS)
Additional Information
Environment
- Claude desktop app 1.40609.0 (macOS), installed 2026-08-27
- Surface: Claude Code inside the desktop app (not the standalone CLI)
- The standalone CLI binary on this machine is 2.1.160 from 2026-06-02 and is unchanged,
so this behaviour change did not come from a CLI update.
Ruled out locally before filing
- No settings key or environment variable governs slash-trigger position (searched both
the app bundle and the CLI binary — zero matches).
- "ccd_slash_command_menu" is a lazy-loaded chunk id (summonedWhileTyping), not a
feature gate.
- ~/.claude/keybindings.json actions are a fixed enum with no text-insert, cursor-move,
or command-exec action, so a custom binding cannot emulate the behaviour.
- No previous app version is retained on disk, so rolling back was not possible.
Current workaround
Compose the sentence, press Ctrl+A (Move to start of line), then type "/skill " there.
The already-typed sentence becomes $ARGUMENTS. This works but requires knowing the skill
name in advance, which is exactly what the menu is for.
This issue has 2 comments on GitHub. Read the full discussion on GitHub ↗