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/skill references
  • 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