Skills

Agent skills are reusable bundles of instructions (a folder with a SKILL.md) that extend what your AI agents can do. The codevhub skill commands let you search the CoDev SkillHub, install skills into your projects, and publish your own.

Overview

The SkillHub is a shared registry of agent skills. There are three subcommands:

  • codevhub skill search — find skills on the hub.
  • codevhub skill pull — download and install a skill.
  • codevhub skill push — publish a skill to the hub.

Skills are installed into a .claude/skills/ directory — either in your current project or globally in your home directory — and are picked up automatically by Claude Code and the other agents.

When do I need to sign in?

Searching and installing public skills works without signing in. Publishing with codevhub skill push requires an SSO session — if you aren't signed in, the command opens your browser to authenticate (or run codevhub login first).

Pass a search term to list matching skills from the hub. Each result shows the skill name, version, author, a short description, and its id.

codevhub skill search <query>

Options:

  • --limit <n> — cap the number of results (default 20).
  • --json — print machine-readable JSON instead of the formatted list.
codevhub skill search testing
codevhub skill search react --limit 5
codevhub skill search react --json

Install a skill

Install a skill by its name or id. In a terminal, CoDev asks where to install it:

  • Current directory ./.claude/skills/<name>, available only in this project.
  • Global ~/.claude/skills/<name>, available in every project.
codevhub skill pull <name|id>

Options:

  • --dir <path> — install location. Required when running non-interactively (CI, piped output); prompted for otherwise.
  • --force / -f — overwrite an existing installation of the same skill.
  • --json — machine-readable output.
codevhub skill pull my-skill
codevhub skill pull my-skill --dir ~/.claude/skills --force

Name or id

You can reference a skill by its human-readable name or its UUID. Either way, CoDev installs it under the skill's canonical name.

Publish a skill

Publish a skill from a directory or a pre-built .zip. A directory must contain a SKILL.md at its root — CoDev zips it for you, automatically excluding version-control folders, node_modules, and secrets (.env files, *.key, and similar).

codevhub skill push <path>

In a terminal, CoDev shows a preview of what will be uploaded (file count, size, and the first files) and asks you to confirm before signing in and uploading.

Options:

  • --draft-only — upload and save as a draft without submitting it for review.
  • --auto-approve — publish straight to public (admins only).
  • --json — machine-readable output.
codevhub skill push ./my-skill
codevhub skill push ./my-skill.zip --draft-only

A published skill moves through three states: DRAFT (uploaded, not submitted), SUBMITTED (awaiting review), and PUBLIC (approved and searchable by everyone).

SKILL.md is required

When publishing a directory, the upload fails if there's no SKILL.md at the top level. It holds the skill's name, description, and instructions — the hub reads its metadata from there.

Non-interactive use (CI and pipes)

CoDev runs the interactive prompts only when both stdin and stdout are a terminal. Passing --json, piping the output, or running in CI forces the plain, non-interactive path — no prompts and no confirmation. The behavior of each command changes as follows.

  • skill search is always non-interactive, so it behaves the same everywhere.
  • skill pull skips the install-location prompt, so you must pass --dir <path> explicitly. Without it the command exits with Not a terminal — pass --dir <path> to choose an install location.
  • skill push skips the preview and confirmation and uploads immediately.

Sign in before pushing in CI

The non-interactive skill push does not open a browser to authenticate — it uses your existing session. If you aren't already signed in, the upload fails with an auth error. Run codevhub login first (for example, in a prior CI step).

If you have an ADMIN or SUPERADMIN account, sign in with a username and password instead, which needs no browser:

codevhub login --username <username> --password <password>

Pull the password from a CI secret rather than hard-coding it.