You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
CLI-only commands/skills (e.g. /handoff) are surfaced in the WebUI slash-command autocomplete dropdown but refuse to execute, returning "/<name> is a Hermes CLI-only command and cannot run inside the WebUI." This is confusing: the command appears selectable, the user picks it, and then it dead-ends. Several CLI-only skills/commands have not yet been migrated to run in the WebUI.
Steps to reproduce
Open WebUI chat
Type / and select (or type) a CLI-only command/skill, e.g. /handoff
Send
Observed: assistant returns "/handoff is a Hermes CLI-only command and cannot run inside the WebUI."
Expected (longer-term): the command runs in the WebUI like it does in hermes chat / Discord
static/commands.js:237 — cliOnlyCommandResponse() produces the refusal string.
api/commands.py:87 — commands carry a cli_only flag from the agent's command metadata; static/commands.js:87 filters cli_only commands out of the command list, but skill-sourced entries (like /handoff) still surface and then hit the CLI-only refusal on execution.
Desired behavior
Migrate CLI-only skills/commands so they can run inside the WebUI (the long-term direction confirmed by @AvidFuturist: "Handoff is a special CLI only skill we haven't migrated to WebUI yet, but we will in the future"). For ones that genuinely cannot be migrated, consider hiding them from autocomplete (or visually marking them as CLI-only) so users aren't offered a command that can't run.
/handoff is the concrete example raised, but this is a tracking issue for the broader set of CLI-only commands/skills surfaced in the WebUI.
Scope
Cross-layer (WebUI + bundled agent), per-command. Larger than a one-file fix — each CLI-only command needs either a WebUI execution path or an explicit "cannot migrate → hide/mark" decision. Suggest enumerating the current cli_only set first.
Reported by
@Latipun in Discord #webui (2026-06-11): asked why /handoff shows the CLI-only message. Confirmed by @AvidFuturist, who committed to migrating these in the future and asked to capture the request.
Summary
CLI-only commands/skills (e.g.
/handoff) are surfaced in the WebUI slash-command autocomplete dropdown but refuse to execute, returning "/<name>is a Hermes CLI-only command and cannot run inside the WebUI." This is confusing: the command appears selectable, the user picks it, and then it dead-ends. Several CLI-only skills/commands have not yet been migrated to run in the WebUI.Steps to reproduce
/and select (or type) a CLI-only command/skill, e.g./handoff/handoffis a Hermes CLI-only command and cannot run inside the WebUI."hermes chat/ DiscordCurrent behavior / mechanism
static/commands.js:237—cliOnlyCommandResponse()produces the refusal string.api/commands.py:87— commands carry acli_onlyflag from the agent's command metadata;static/commands.js:87filterscli_onlycommands out of the command list, but skill-sourced entries (like/handoff) still surface and then hit the CLI-only refusal on execution.Desired behavior
Migrate CLI-only skills/commands so they can run inside the WebUI (the long-term direction confirmed by @AvidFuturist: "Handoff is a special CLI only skill we haven't migrated to WebUI yet, but we will in the future"). For ones that genuinely cannot be migrated, consider hiding them from autocomplete (or visually marking them as CLI-only) so users aren't offered a command that can't run.
/handoffis the concrete example raised, but this is a tracking issue for the broader set of CLI-only commands/skills surfaced in the WebUI.Scope
Cross-layer (WebUI + bundled agent), per-command. Larger than a one-file fix — each CLI-only command needs either a WebUI execution path or an explicit "cannot migrate → hide/mark" decision. Suggest enumerating the current
cli_onlyset first.Reported by
@Latipun in Discord #webui (2026-06-11): asked why
/handoffshows the CLI-only message. Confirmed by @AvidFuturist, who committed to migrating these in the future and asked to capture the request.