From claude-rudder
Use when the user wants to install a new user-level slash command at ~/.claude/commands/. Triggers on phrases like "install a slash command", "add a /command", "create a user-level slash command", "save this as a slash command".
npx claudepluginhub danielrosehill/claude-code-plugins --plugin claude-rudderThis skill uses the workspace's default tool permissions.
The user wants to install a new slash command at the user level so it's available across all Claude Code sessions on this machine.
Mandates invoking relevant skills via tools before any response in coding sessions. Covers access, priorities, and adaptations for Claude Code, Copilot CLI, Gemini CLI.
Share bugs, ideas, or general feedback.
The user wants to install a new slash command at the user level so it's available across all Claude Code sessions on this machine.
User-level commands live in ~/.claude/commands/ as .md files. The filename (without .md) becomes the invocation, e.g. ~/.claude/commands/foo.md → /foo. Subfolders namespace commands, e.g. ~/.claude/commands/git/sync.md → /git:sync.
You need:
namespace/name./ picker and used to decide relevance.[file] or [pr-number].Read, Grep, Bash.haiku for cheap/fast commands.If the user gave you source material (a message, file, URL, existing prompt), convert it into a clear prompt body. If anything essential is missing (especially name or description), ask once before writing.
^[a-z0-9-]+(/[a-z0-9-]+)?$ — kebab-case, optional one level of namespacing.ls ~/.claude/commands/<name>.md — if it exists, confirm with the user before overwriting.Format:
---
description: {{one-line description}}
argument-hint: {{optional — omit field if not used}}
allowed-tools: {{optional — omit field if not used}}
model: {{optional — omit field if not used}}
---
{{prompt body}}
{{reference $ARGUMENTS if the command takes input}}
Only include optional frontmatter fields the user actually wants — don't emit empty ones.
The prompt body should be written in second person addressing Claude ("You are...", "Read the file at..."), same style as a system prompt. If the command takes runtime input, reference it via $ARGUMENTS (or $1, $2, ... for positional args).
ls -la ~/.claude/commands/<name>.md to confirm the file exists./foo or /foo some-arg")./reload for the command to appear in the picker (new sessions pick it up automatically).~/.claude/commands/ is the entire install.~/.claude/skills/<name>/SKILL.md and have richer metadata). If the user's request sounds like it wants autonomous triggering on certain phrases, suggest a skill instead — slash commands only fire when explicitly invoked with /.