Skip to content

CLI Reference

Complete CLI reference for the localskills command-line tool. Install, publish, push, share, and organize agent skills from your terminal.

Updated View as Markdown

The localskills CLI (@localskills/cli on npm) installs, publishes, and organizes skills across AI coding tools from your terminal.

login

localskills login [--token <token>] [--oidc-token <token> --team <slug>]

With no flags, starts a browser device-code flow: the CLI shows a verification code, opens the browser, and polls until you approve. Device codes expire after 10 minutes. Credentials are stored in ~/.localskills/config.json with 0600 permissions.

Flag Description
--token <token> Headless mode: store an API token directly (CI, containers, SSH)
--oidc-token <token> Exchange a CI/CD OIDC identity token for a short-lived API token
--team <slug> Organization slug (required with –oidc-token)

See CI/CD & OIDC for the OIDC exchange, which lets GitHub Actions and GitLab CI publish without storing any secret.

logout

localskills logout

Clear the stored auth token from your local configuration.

whoami

localskills whoami

Display the current authenticated user’s name, username, and email.

install

localskills install [slug] [options]

Install a skill by slug, public ID, or share URL. With no arguments, the CLI lists available skills for interactive selection; with no flags it prompts for platforms, scope, and install method.

Pin a version npm-style: my-skill@1.2.3 (exact), my-skill@^1.0.0 (semver range), or my-skill@latest.

Terminal recording of localskills install fetching a package skill and copying it into .claude/skills
Installing a multi-file package skill into a project's Claude Code directory.
Flag Description
-t, --target <platforms...> Target platforms: cursor, claude, codex, windsurf, cline, copilot, opencode, aider
-g, --global Install globally (user-level)
-p, --project [dir] Install in a project directory
--symlink Symlink from the local cache (text-install default on macOS/Linux; also the Claude Code package default)
--copy Copy content directly into the target location (default on Windows, and for package installs on non-Claude tools)

If the skill declares required MCP servers you don’t have installed for that location and tool (user-level installs count everywhere for their tool, project installs per project, and each targeted tool needs its own entry), the CLI offers to install each one right after the skill. Requirements exist only on private team skills, so this only ever happens for members; in CI and other non-interactive runs the CLI prints the matching localskills mcp install commands instead of prompting. Declining a server never affects the skill install.

uninstall

localskills uninstall [slug] [--purge]

Remove an installed skill from all target platforms. Pass --purge to also delete the cached copy from ~/.localskills/cache/. Omit the slug for interactive selection.

list

localskills list [--public | --personal] [--tag <tag>] [--search <query>]

List skills available to you from your organizations. Pass --public to browse public skills instead; --tag and --search filter the public catalog. Pass --personal to list only skills in your managed personal workspace folders.

pull

localskills pull [slug]

Update installed skills to the latest version. Omit the slug to update everything. The CLI compares content hashes to decide whether an update is needed: symlinked installs update automatically when the cache refreshes, while copied and section-based installs are re-written in place. If any pulled skill requires MCP servers you don’t have, pull prints the matching localskills mcp install commands (it never prompts).

publish

localskills publish [path] [options]

Publish a local skill to localskills.sh. path can be a single file (published as a text skill, frontmatter stripped) or a folder (zipped and published as a multi-file package, files preserved verbatim). A skill folder must contain a SKILL.md at its root. Package limits: 100 MB compressed, 100 MB uncompressed, 500 files.

Terminal recording of localskills publish uploading a skill folder into an organization folder
Publishing a skill folder into the engineering/ folder.

Without a path, the CLI scans your project for unpublished skills across all supported platform directories and lets you pick interactively.

Flag Description
-t, --team <id> Organization ID or slug to publish to
-n, --name <name> Skill display name
--visibility <v> public, private, or unlisted (default: private)
--type <t> skill or rule (default: skill)
-m, --message <msg> Message for the initial version (default: “Initial version”)
-f, --folder <path> Folder path to publish into (e.g. marketing/seo)
-p, --parents Create missing folders in the –folder path
--personal Publish privately into your managed personal workspace; incompatible with –folder and –parents
--create Fail if a skill with this name already exists (never update, never auto-rename)
--update Fail unless this appends a version to an existing skill (never create)

By default publish is an upsert: a name that already belongs to a skill you can write to appends a new version, and anything else creates a new skill (auto-renaming the slug on collision). Automation that must never guess can pin the outcome: --create fails with E_ALREADY_EXISTS when the name is taken, and --update fails with E_NOT_FOUND when there is nothing to update, or E_AMBIGUOUS (listing the candidates in -o json details) when several same-name skills exist across folders. Pass -f to pick a folder, or target a skill id directly with push.

push

localskills push <path> --skill <id> [options]

Push a new version of an existing skill: the non-interactive counterpart to publish, built for CI pipelines. path accepts a file or a skill folder, same as publish.

Flag Description
-s, --skill <id> Skill ID or slug (required)
--version <semver> Explicit semver (must be greater than the current version)
--patch Bump the patch version
--minor Bump the minor version
--major Bump the major version
-m, --message <msg> Version message
localskills push skill.md --skill my-skill --patch -m "Fix typos"

share

localskills share [path] [options]
Flag Description
-n, --name <name> Skill display name
--type <t> skill or rule (default: skill)

Share a skill anonymously without an account. path accepts a file or a skill folder. On first use, the CLI generates an Ed25519 keypair stored in ~/.localskills/config.json as your anonymous identity. Shared skills are always unlisted and anonymous identities are limited to 10 shared skills. See Anonymous Sharing for details.

folders

localskills folders [list|create <path>] [-t <team>]

List an organization’s skill folders with their skill counts (list is the default subcommand), or create a folder path; missing parent folders are created along the way, like mkdir -p.

Terminal recording of localskills folders listing the folder tree, creating a folder, and moving a skill
Listing folders, creating one, and moving a skill between folders.

move

localskills move <skill> <dest> [--parents]

Move a skill (by public ID or slug) into a folder, or back to the root with /. Pass --parents to create the destination path first:

localskills move my-skill marketing/seo
localskills move my-skill /
localskills move my-skill new/place --parents

profile

localskills profile <list|create <name>|switch <name>|delete <name>>

Manage CLI profiles for multiple accounts, for example a personal account and a work organization. Each profile keeps its own auth token, installed skills, and preferences. Profile names are lowercase alphanumeric with hyphens, up to 32 characters.

localskills profile create work
localskills profile switch work
localskills profile list

Override the active profile per command with the global --profile <name> flag or the LOCALSKILLS_PROFILE environment variable (flag wins over the environment, which wins over the config); useful in scripts and CI.

mcp

localskills mcp <list|install <ref>|uninstall <ref>|pull [ref]>

Install your team’s managed MCP servers into your AI tools. mcp list shows what your teams offer and which servers you have installed; mcp install writes the server into each detected tool’s native MCP config (Claude Code, Cursor, Windsurf, VS Code, Cline, Codex, opencode); mcp pull refreshes installs after an admin updates a server. Refs are team/slug, a bare slug when unambiguous, or the server id.

localskills mcp install acme/github -t claude,cursor
localskills mcp install acme/github --var GITHUB_TOKEN=$TOKEN   # CI
localskills mcp pull

Member-supplied values (API keys) are prompted locally and written only into the tool’s config file, never stored on localskills.sh. See MCP Servers for the full model.

Environment variables

Flag Description
LOCALSKILLS_TOKEN Auth token override; takes precedence over the stored token, never persisted (CI-friendly)
LOCALSKILLS_API_URL API base URL override (default: https://localskills.sh)
LOCALSKILLS_PROFILE Active profile override
LOCALSKILLS_NO_UPDATE_CHECK Set to 1 to disable the daily update check

Configuration layout

Config and cache live in ~/.localskills/:

~/.localskills/
  config.json         # Auth token(s), profiles, installed skills, preferences
  cache/
    my-skill/
      raw.md          # Original content (text skills)
      meta.json       # Hash, version, metadata
      cursor.mdc      # Platform-specific transformed files
    my-folder-skill/
      meta.json
      manifest.json   # File list for a package skill
      pkg/            # Unpacked package skill (SKILL.md + scripts/, ...)
Navigation

Type to search…

↑↓ navigate↵ selectEsc close