Repository navigation
Description
Before submitting
- I searched existing issues and did not find a duplicate.
- I included enough detail to reproduce or investigate the problem.
Area
- apps/server
Steps to reproduce
- Install a Claude Code mod that registers a slash command in its
session.starthook with$.command.register(...). Example: a mod that registers/handoffs. - Confirm that the command works in the Claude Code CLI (2.1.295):
The
claude -p "/handoffs" --output-format stream-json --verbose --max-turns 1system/initmessage lists the plugin inplugins, andhandoffsis inslash_commands. The command runs and returns its reply. - Open a Claude thread in T3 Code and type
/handin the composer.
Expected behavior
The / menu shows the commands that installed mods register, as it does for skills and .claude/commands.
Actual behavior
The / menu does not show mod commands.
The cause is the periodic Claude capabilities probe. It sets settings: { disableAllHooks: true } (apps/server/src/provider/ClaudeProvider.ts:203, added in #4466 so that probes do not run the user's SessionStart hooks). That setting also turns off mod hooks, so the mod's session.start handler never runs and the command is never registered. To confirm:
claude -p "/handoffs" --settings '{"disableAllHooks":true}' --output-format stream-json --verbose --max-turns 1With hooks off, plugins still lists the mod, but handoffs is missing from slash_commands. Claude sends /handoffs to the model as a normal prompt.
Real chat sessions do not turn off hooks. If the user types the full command and sends it, it should still run. Only discovery in the menu is broken.
#4466 was merged before Claude Code turned mods on by default (v2.1.287).
Impact
- Minor bug or occasional failure
Version or commit
main @ 2c7a446
Environment
macOS 26.6, Claude Code 2.1.295, @anthropic-ai/claude-agent-sdk 0.3.276
Logs or stack traces
No response
Screenshots, recordings, or supporting files
No response
Workaround
Type the full command name and send it. The live session has hooks on, so the command should run without the menu.
Related
- feat(claude): draw Claude Code plugin status lines, toasts and prompt band #15827 shows mod status lines, toasts, and the prompt band. It does not change the
/menu. - [Bug]: Workspace snapshot taken before the first Claude probe finishes leaves the / menu without provider commands for the whole session #11575 and [Bug]: Project
.claude/commands/*.mdnever appear in the/menu for Claude; the per-workspace refresh only scans.claude/skills#12214 are other cases of missing/menu commands, with different causes. - Discussion Support and integration for Claude mods #14956 asks for general Claude mods support.
Activity
fix(claude): show commands that Claude Code mods register in the / menu
jobsingles commentedon Oct 12, 2026
Same here on T3 Code 0.0.45 (Linux server, systemd service) with Claude Code 2.1.292.
We run five mods that register commands (
/crons,/kosten,/offen,/dredd,/diktat). None of them shows up in the/menu. In the terminal they all work. For us this isn't a minor bug: those commands are how we check cron runs, cost, and approvals from inside the session, and in T3 nobody can find them without knowing the names.The fix described above looks small (don't let the capabilities probe drop mod hooks, or probe once with hooks on). Could this get into the next release?
fix(claude): show commands that Claude Code mods register in the / menu
swhite1122 commentedon Nov 1, 2026
Same here on T3 Code 0.1.6 with Claude Code 2.1.316 on macOS. I use three mods every day: a usage gauge that sits above the prompt, a radio, and one that keeps a chat's prompt cache warm while I'm away. In T3 the commands run if I type them out in full, but none of them show up in the
/menu, and nothing they draw shows up at all.It looks like the work was already done in #15827 (status lines, toasts and the
AbovePromptband) and #17432 (mod commands in the/menu). Both were closed without merging, and #18658 was closed as completed, but none of it is in the current build. Any chance those could get another look?One related thing.
ProviderSessionManagerunloads an idle thread after 30 minutes (DEFAULT_IDLE_TIMEOUT_MS = 18e5), which ends the Claude process along with any timers a mod has running in it. So a keep-warm mod that pings at 50 minutes never gets to fire in T3. A setting for that timeout would fix it.