rn skill push
Push a Claude Code skill to rockstar.ninja.
rn skill push <name>
Alias: rn sk push
Arguments
The <name> argument is the skill directory name. The CLI looks for the skill in .claude/skills/<name>/ (project-level) first, then ~/.claude/skills/<name>/ (global). Use --global to skip project-level and search only ~/.claude/skills/.
Each skill directory must contain a SKILL.md file. All other files in the directory are uploaded as supporting files.
Flags
| Flag | Short | Type | Description |
|---|---|---|---|
--expires |
string | Expiry duration (e.g., 24h, 7d, 30d) |
|
--force |
-f |
bool | Push even if content is unchanged |
--global |
bool | Search only ~/.claude/skills/ (skip project-level) |
|
--private |
bool | Make the skill private (only you can view) | |
--project |
string | Associate with a project (label or nanoid) | |
--public |
bool | Make the skill publicly visible | |
--secret |
bool | Make the skill secret (unlisted) |
Skill directory structure
A skill lives in .claude/skills/<name>/ with at minimum a SKILL.md file:
.claude/skills/my-skill/
SKILL.md # Required: skill instructions and metadata
helper.py # Optional: supporting files
config.json # Optional: supporting files
The SKILL.md file can include YAML frontmatter for metadata:
---
description: One-line description of what the skill does
argument-hint: <filename>
---
Skill instructions go here...
The description appears in skill listings. The argument-hint is shown in Claude Code's autocomplete when the user types the skill name.
Privacy
If no privacy flag is specified, the default from your config is used (see Configuration). The config default is secret.
- public — appears on your profile page, discoverable via
@username/skillreferences - secret — only accessible via direct URL (the default)
- private — only accessible to you; others see a 404
Skills currently use the [plan] config section for privacy and expiry defaults. There is no dedicated [skill] config section.
Versioning
Pushing the same skill again creates a new version only if the SKILL.md content has changed. If the content is unchanged, metadata updates (title, description, privacy, expiry) are applied without creating a new version. Use --force to create a new version regardless.
Projects
When you push a skill from a project directory, it is automatically associated with a project based on your working directory name. For example, pushing from ~/Projects/my-app/ associates the skill with the my-app project. Use --project to override auto-detection, or --global to skip it entirely.
Streaming response
The push is streamed — you'll see progress as the skill is processed and stored.
Examples
Push a skill:
rn skill push my-skill
Push with expiration and public privacy:
rn skill push my-skill --expires 30d --public
Push a global skill (from ~/.claude/skills/):
rn skill push my-skill --global
Force push even if unchanged:
rn skill push my-skill --force
Associate with a specific project:
rn skill push my-skill --project my-app