ruby-skills

Package manager for installing, updating, removing, and sharing AI development skills in Ruby and Rails projects.

Skills are declared in a Skillfile, copied into .ruby-skills/, recorded in Skills.lock, and exposed to editors through adapters (Claude, Codex, Cursor, VS Code).

Requirements

  • Ruby 3.2 or later
  • Thor ~> 1.3 (pulled in by the gem)

Install

From a checkout:

bundle install
ruby -Ilib bin/ruby-skills version

Once published:

gem install ruby-skills

Quick start

ruby-skills init

That creates a Skillfile and a .ruby-skills/ directory. Declare skills in the Skillfile:

# Skillfile

skill "rails-performance",
  github: "username/rails-performance"

skill "local-review",
  path: "../skills/local-review",
  version: "0.1.0"

Each skill needs exactly one source: github: (owner/repo) or path:. version: is optional.

Then install:

ruby-skills install
ruby-skills install rails-performance

Commands

Command Description
ruby-skills init Create Skillfile and .ruby-skills/
ruby-skills install [SKILL] Install one skill, or every skill in the Skillfile
ruby-skills list Print installed skills from Skills.lock
ruby-skills list --json Same data as JSON (-j)
ruby-skills update [SKILL] Update one skill, or every installed skill
ruby-skills remove SKILL Remove an installed skill
ruby-skills version Print the gem version
ruby-skills help [COMMAND] Command help

Human-readable list:

Installed skills:

rails-performance                   0.1.0
rails-security                      0.2.0

Machine-readable list (ruby-skills list --json):

{
  "skills": [
    {
      "name": "rails-performance",
      "version": "0.1.0",
      "source": "github:username/rails-performance"
    }
  ]
}

An empty lockfile prints {"skills":[]}. Editors should consume --json instead of parsing the table.

Project files

Path Role
Skillfile Declared skills (Ruby DSL)
Skills.lock Installed name, version, and source
.ruby-skills/ Local copies of installed skills

Skillfile and Skills.lock are gitignored in this repo because they are per-project workspace files created by init / install.

Editor plugins

Install still notifies Claude, Codex, Cursor, and VS Code adapters so the skill is visible in those tools.

The VS Code extension lives in rubyskills-plugins/rubyskills-vscode. It wraps this CLI and loads the sidebar from ruby-skills list --json.

Development

bundle install
ruby -Ilib bin/ruby-skills help

Library code is under lib/ruby_skills/. The executable is bin/ruby-skills.

License

MIT