[FEATURE] Interactive slash commands silently unavailable in Agent-SDK-embedded surfaces (desktop, etc.) with no explanation or fallback
Preflight Checklist
- [x] I have searched existing requests and this feature hasn't been requested yet
- [x] This is a single feature request (not multiple features)
Problem Statement
Title: Interactive slash commands silently unavailable in Agent-SDK-embedded surfaces (desktop, etc.) with no explanation or fallback
Body:
Summary
Slash commands that rely on a terminal-panel UI (/permissions, /config, /agents, /doctor, /hooks, /plugin) work in the CLI when attached to a real TTY, but are silently unavailable when Claude Code runs through the Agent SDK (e.g. the desktop app, or other embedded surfaces). There's no consistent, clear feedback to the user about why, and no non-interactive fallback for operations that don't inherently require a picker UI.
Example
Running /plugin install aws-core@claude-plugins-official in the desktop app returns only:
/plugin isn't available in this environment.
with no explanation and no alternative path to accomplish the same thing.
Why this matters
Users switching between CLI and desktop hit unexplained feature gaps and have no way to know if it's a bug, a missing feature, or intentional.
Some of these commands (like /plugin install) don't conceptually require an interactive terminal — installing a plugin could be a one-shot config/API operation. Gating the entire feature on TTY availability removes functionality that could exist in a non-interactive form.
Truly interactive-only commands (e.g. /agents picker, /hooks editor) may reasonably stay CLI-only, but should say so clearly instead of a generic "isn't available."
Suggested fixes
For commands that genuinely require a TTY panel, return a specific message (e.g. "/agents requires an interactive terminal session — run this from claude in a terminal instead of desktop/SDK contexts") instead of a generic unavailability message.
For commands like /plugin install that have no inherent TTY dependency, add a non-interactive execution path so they work identically across CLI and SDK-embedded surfaces.
Document, in the Claude Code docs, which commands are CLI-terminal-only vs. available everywhere, so this isn't discovered by trial and error.
Environment
Claude Code running via Claude Agent SDK (desktop-embedded session)
OS: Windows 11 Pro
Proposed Solution
For commands that genuinely require a TTY panel, return a specific message (e.g. "/agents requires an interactive terminal session — run this from claude in a terminal instead of desktop/SDK contexts") instead of a generic unavailability message.
For commands like /plugin install that have no inherent TTY dependency, add a non-interactive execution path so they work identically across CLI and SDK-embedded surfaces.
Document, in the Claude Code docs, which commands are CLI-terminal-only vs. available everywhere, so this isn't discovered by trial and error.
Environment
Alternative Solutions
_No response_
Priority
High - Significant impact on productivity
Feature Category
CLI commands and flags
Use Case Example
_No response_
Additional Context
_No response_