Skip to content

fdarian/rskills

Repository files navigation

rskills

Read remote skills (SKILL.md + references/ / scripts/ / templates/ / assets/) without installing them. Built for AI agents that need to peek at a skill before deciding to install.

Install

brew install fdarian/tap/rskills
# or one-shot, no install:
npx rskills-cli <command>

Usage

Read

# Fetch SKILL.md (raw markdown to stdout)
rskills read skills-sh://vercel-labs/json-render/json-render-react
rskills read github://anthropics/skills/skills/pdf
rskills read https://example.com/some/SKILL.md

# Fetch a sub-resource (references, scripts, templates, assets, or any .md sibling)
rskills read github://anthropics/skills/skills/pdf/reference.md
rskills read skills-sh://vercel-labs/skills/references/foo.md
rskills read claude://my-skill
rskills read claude://my-skill/references/api.md
rskills read --raw claude://my-skill   # literal file, no preprocessing

List

# List top-level entries of a skill
rskills ls github://anthropics/skills/skills/xlsx
rskills ls skills-sh://anthropics/skills/xlsx

# List a subdirectory within a skill
rskills ls github://anthropics/skills/skills/xlsx/scripts
rskills ls skills-sh://anthropics/skills/xlsx/scripts
rskills ls claude://my-skill

ls mirrors Anthropic's ls/Glob tools — it lists directory entries, while read fetches file content. Reading a directory path with read will error and suggest using ls instead.

Search

On an interactive terminal (no --source, --format, --json, or --token-*), search opens a live Ink picker: type to search, ↑/↓ to navigate, Enter for an action menu (read SKILL.md / copy identifier / copy install command / open on skills.sh), Esc to quit. Skills-sh only.

rskills search            # open interactive picker (TTY only)
rskills search react      # pre-fill query in picker (TTY) or emit structured output (non-TTY)
rskills search react --source skills-sh --limit 5
rskills search https://mintlify.com/docs --source well-known
rskills search react --limit 5 --format json   # structured output, skip picker

URI format

<source>://<identifier>[/<subpath>]

Source Example Search Read List
skills-sh skills-sh://vercel-labs/json-render/json-render-react
github github://anthropics/skills/skills/pdf
well-known well-known://mintlify.com/docs ✓ (requires files array in index)
https https://example.com/SKILL.md (must end in .md)
claude claude://my-skill ✓ (local)

Local claude skills resolve under <cwd>/.claude/skills/ then ~/.claude/skills/ (first match wins). By default, read strips YAML frontmatter and runs inline !`shell` / ```! blocks (respects shell: frontmatter and disableSkillShellExecution in settings). Use read --raw for the literal file.

Subpath detection

No subpath → fetches SKILL.md. With a subpath, rskills detects the boundary heuristically:

  1. Known subdir (references, scripts, templates, assets, SKILL.md) — splits there
  2. Extension on last segment — that segment is the subpath
  3. Otherwise the whole path is the identifier

Output

  • read prints raw markdown to stdout regardless of --format. Pipe it anywhere.
  • ls prints structured { entries: [{ name, type }] } — TOON by default, switchable with --format json|yaml|md|jsonl.
  • search opens an interactive live picker on a TTY; otherwise prints structured results ({ identifier, name, installs?, source }) — TOON by default, switchable with --format json|yaml|md|jsonl.
  • Errors exit with non-zero status and print a short message.
  • Reading a directory path with read exits non-zero with a message pointing to rskills ls.

Built-ins from incur

rskills inherits incur's agent-friendly defaults:

  • --llms / --llms-full — print a command manifest agents can read
  • --filter-output <keys> — narrow structured output to specific fields
  • --format <toon|json|yaml|md|jsonl> — pick the output serialization
  • --token-count, --token-limit, --token-offset — token-aware output

Run rskills --help for the full list.

About

No description, website, or topics provided.

Resources

License

Stars

Watchers

Forks

Packages

 
 
 

Contributors