CG Web Skills
DE

CLI reference

A small, dependency-free Node.js tool. Its whole job is to copy skill folders where Claude can find them, and to keep them up to date.

Running it

Without installing anything, via npx — or install it globally and call it directly.

Terminal session
$ npx cg-web-skills <command>
Terminal session
$ npm install --global cg-web-skills

Commands

CommandDescription
listLists every skill shipped in the package, with a short description.
install <skill...>Copies each named skill from skills/<skill>/ into .claude/skills/<skill>/ in the current project. Creates .claude/skills/ if needed. If any name is unknown, nothing is installed.
install --allInstalls every skill in the skillset. Skills that are already installed are skipped, so you can re-run it after an update to add new skills.
update <skill...>Replaces the named installed skills with the version in this package. Skills with local changes are left alone unless you add --force.
update --allUpdates every installed CG Web Skill. Skills that are not installed are left alone.
initCreates .claude/skills/ in the current project without installing anything. Optional, and safe to re-run.
helpShows help.

Options

OptionDescription
-a, --allFor install and update: every skill.
-f, --forceFor update: also update skills with local changes. The current version is backed up first.
-g, --globalFor install, update and init: use your personal Claude directory instead of the project.
-v, --versionShows the version.
-h, --helpShows help.

Running it with no command

Running cg-web-skills without a command, or with --help, shows the help. In a terminal at least 94 columns wide it opens with the CG Web Skills banner; in narrower terminals and when the output is piped, it prints a plain title instead.

Exit codes

CodeMeaning
0Success
1General error (for example: skill not found, already installed)
2Invalid usage (for example: unknown command or option, missing or invalid skill name)

Safety

  • The CLI only copies files. Skill contents are treated as data and are never executed or modified.
  • install never overwrites an existing installation.
  • update replaces a skill only when it has no local changes, or with --force after moving the current version to a backup.
  • The new version is copied first and swapped in afterwards, so a failed update never leaves a half-copied skill.
  • Skill names must be lowercase kebab-case. Anything else — including .., path separators and absolute paths — is rejected, so a name can never write outside the skills directory.
  • Skills containing symlinks or other special files are refused.

Documented for version 1.1.0 · checked