CLI Commands Reference
The MyClaude CLI provides 12 commands for discovering, installing, and publishing products.
The MyClaude CLI provides 12 commands for discovering, installing, and publishing products.
All commands are invoked via the myclaude binary. Commands that communicate with MyClaude servers require an authenticated session established with myclaude login. Commands marked Auth required return a 401 error if no valid session exists.
Command index
| Command | Auth required | Description |
|---|---|---|
login | No | Authenticate with MyClaude |
logout | No | Clear stored credentials |
whoami | Yes | Print current authenticated user |
search | No | Search the marketplace |
install | Yes | Install a product |
uninstall | No | Remove an installed product |
update | Yes | Update installed products |
publish | Yes | Publish a product to the marketplace |
list | No | List installed products |
info | No | Show details for a marketplace product |
init | No | Scaffold a new product directory |
scan | No | Validate product files before publish |
login
Synopsis
myclaude login [--token <token>]Description
Opens the default browser to the MyClaude authentication page. After the user completes sign-in, the CLI receives an auth token and stores it at ~/.myclaude/credentials.json. All subsequent commands that require authentication read from this file automatically.
If a browser cannot be opened, the CLI prints a URL. Open it manually — authentication completes identically.
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--token | string | No | — | Provide a pre-generated API token directly, skipping browser flow. Useful in CI/CD environments. |
Examples
Interactive browser flow:
$ myclaude login
# Opening browser...
# Authenticated as @your-usernameNon-interactive with a pre-generated token:
$ myclaude login --token eyJhbGciOiJSUzI1NiJ9...
# Authenticated as @your-usernameVerify the session immediately after login:
$ myclaude login && myclaude whoami
# Authenticated as @your-username
# Logged in as @your-usernamelogout
Synopsis
myclaude logoutDescription
Deletes the stored credentials file at ~/.myclaude/credentials.json. No network request is made — the logout is local only. Existing sessions on other devices or in other terminals are not affected.
After logout, all commands that require authentication return Error: not authenticated. Run myclaude login.
Flags
This command has no flags.
Examples
$ myclaude logout
# Logged out. Credentials removed.Confirm the session is cleared:
$ myclaude whoami
# Error: not authenticated. Run myclaude login.Log out and immediately back in:
$ myclaude logout && myclaude loginwhoami
Synopsis
myclaude whoamiDescription
Prints the username of the currently authenticated user. Makes a lightweight request to the MyClaude API to verify the stored token is still valid. Returns a non-zero exit code if the token is absent or expired.
Flags
This command has no flags.
Examples
Check current session:
$ myclaude whoami
# Logged in as @kairoUse in a script to gate operations on an authenticated state:
$ myclaude whoami || myclaude loginNon-zero exit on missing credentials (useful in CI):
$ myclaude whoami
# Error: not authenticated. Run myclaude login.
# exit code: 1search
Synopsis
myclaude search [query] [--category <category>] [--limit <n>] [--sort <field>]Description
Searches the MyClaude marketplace. Without flags, returns the top 20 results ranked by relevance to the query string. Results include product handle, star rating, price, and category.
myclaude search does not require authentication. Unauthenticated users see the same results as authenticated users.
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--category | string | No | — | Filter by product category. Accepted values: skill, squad, agent, workflow, design-system, prompt, claude-md, application |
--limit | number | No | 20 | Maximum number of results to return. Range: 1–100. |
--sort | string | No | relevance | Sort field. Accepted values: relevance, rating, downloads, price-asc, price-desc, newest |
Examples
Basic keyword search:
$ myclaude search "code review"
# @kairo/review-skill ★ 4.9 free skills
# @dev/pr-checker ★ 4.7 $4.00 skills
# @anya/review-workflow ★ 4.5 $9.00 workflowsFilter to a specific category:
$ myclaude search --category agent "typescript"
# @devtools/typescript-reviewer ★ 4.8 $9.00 agent
# @scaffold-labs/ts-scaffold ★ 4.6 $19.00 agentReturn top 5 results sorted by rating:
$ myclaude search --sort rating --limit 5 "security"install
Synopsis
myclaude install <@creator/product> [--version <semver>] [--force]Description
Downloads and installs a product from the marketplace into the current environment. For free products, installation completes immediately. For paid products, the CLI opens the purchase flow in the default browser. Installation resumes automatically after payment is confirmed.
Files are placed in the directory specified by the product's vault.yaml install_path field. Category defaults:
| Category | Install path |
|---|---|
skill | .claude/skills/<product-name>/ |
squad | .claude/squads/<product-name>/ |
agent | .claude/agents/<product-name>/ |
workflow | .claude/workflows/<product-name>/ |
design-system | .claude/design-systems/<product-name>/ |
prompt | .claude/prompts/<product-name>/ |
claude-md | .claude/ (merges into CLAUDE.md) |
application | .claude/apps/<product-name>/ |
myclaude install requires authentication. Attempting to install without a valid session redirects to myclaude login.
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--version | string | No | latest | Install a specific version. Must be a valid SemVer string matching a published version of the product. |
--force | boolean | No | false | Overwrite existing installation without prompting, even if the same version is already installed. |
Examples
Install the latest version of a free product:
$ myclaude install @kairo/review-skill
# Installing @kairo/review-skill...
# Resolved: 1.2.0
# Installed to .claude/skills/review-skill/
# Done.Install a specific version:
$ myclaude install @kairo/review-skill --version 1.1.0
# Installing @kairo/review-skill@1.1.0...
# Resolved: 1.1.0
# Installed to .claude/skills/review-skill/
# Done.Install a paid product (triggers browser purchase flow):
$ myclaude install @dev/pr-checker
# @dev/pr-checker requires purchase ($4.00)
# Opening checkout... [browser opens]
# Payment confirmed. Downloading...
# Installed to .claude/skills/pr-checker/
# Done.uninstall
Synopsis
myclaude uninstall <@creator/product> [--yes]Description
Removes an installed product from the local environment. Deletes all files placed by myclaude install in the product's install directory. Does not affect marketplace listings or purchase records — reinstalling the product after uninstall does not require repurchasing it.
myclaude uninstall does not require authentication because it only modifies the local filesystem.
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--yes | boolean | No | false | Skip the confirmation prompt. Useful in scripts. |
Examples
Interactive uninstall with confirmation prompt:
$ myclaude uninstall @kairo/review-skill
# Remove @kairo/review-skill and all its files? [y/N]: y
# Uninstalled @kairo/review-skill
# Removed: .claude/skills/review-skill/Skip confirmation in a script:
$ myclaude uninstall @kairo/review-skill --yes
# Uninstalled @kairo/review-skillUninstall and reinstall to reset to a clean state:
$ myclaude uninstall @kairo/review-skill --yes && myclaude install @kairo/review-skillupdate
Synopsis
myclaude update [<@creator/product>] [--all] [--dry-run]Description
Updates one or more installed products to their latest published versions. When called with a specific product handle, updates only that product. When called with --all, updates every installed product that has a newer version available.
Products that are already at their latest version are skipped silently. If a newer version introduces breaking changes, the CLI prints a warning but proceeds unless --dry-run is used.
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--all | boolean | No | false | Update all installed products that have newer versions available. Mutually exclusive with specifying a product handle. |
--dry-run | boolean | No | false | Print which products would be updated and to which versions, without making any changes. |
Examples
Update a single product:
$ myclaude update @kairo/review-skill
# @kairo/review-skill: 1.2.0 → 1.3.0
# Updated.Preview all available updates without applying them:
$ myclaude update --all --dry-run
# @kairo/review-skill 1.2.0 → 1.3.0
# @dev/pr-checker 0.9.1 → 1.0.0
# 2 updates available. Run without --dry-run to apply.Apply all available updates:
$ myclaude update --all
# @kairo/review-skill 1.2.0 → 1.3.0 updated
# @dev/pr-checker 0.9.1 → 1.0.0 updated
# 2 products updated.publish
Synopsis
myclaude publish [--dry-run] [--tag <tag>]Description
Publishes the product in the current working directory to the MyClaude marketplace. The CLI reads vault.yaml from the current directory, runs validation and content scanning, uploads files to MyClaude storage, and creates or updates the marketplace listing.
Publish is idempotent. Running myclaude publish on a product that already exists updates the listing. To publish a new version, increment the version field in vault.yaml before running myclaude publish — the CLI enforces monotonically increasing versions and rejects a publish if the version in vault.yaml is equal to or lower than the currently published version.
The pre-publish pipeline runs in order:
- Validate
vault.yamlstructure and all required fields - Scan product files for content policy violations
- Verify authentication and that
authormatches the authenticated user - Upload files to MyClaude storage
- Create or update the marketplace listing
If any step fails, the pipeline stops and the listing is not created or modified. Errors include the specific field or rule that failed.
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--dry-run | boolean | No | false | Run all validation and scanning steps without uploading files or modifying the listing. |
--tag | string | No | — | Attach a distribution tag to this version (e.g., beta, rc). Tagged versions are not returned as latest by default. |
Examples
Standard publish from inside a product directory:
$ myclaude publish
# Validating vault.yaml... OK
# Scanning content... OK
# Uploading files... OK
# Creating listing... OK
#
# Published: myclaude.sh/p/your-username-my-first-skillValidate without publishing:
$ myclaude publish --dry-run
# Validating vault.yaml... OK
# Scanning content... OK
# Dry run complete. No files uploaded.Publish a pre-release version with a tag:
$ myclaude publish --tag beta
# Validating vault.yaml... OK
# Scanning content... OK
# Uploading files... OK
# Creating listing (tag: beta)... OK
#
# Published: myclaude.sh/p/your-username-my-first-skill (beta)list
Synopsis
myclaude list [--category <category>] [--json]Description
Lists all products currently installed in the local environment. Output includes the product handle, installed version, category, and install path. Products are sorted alphabetically by handle.
myclaude list does not require authentication. It reads only from the local install registry at ~/.myclaude/installed.json.
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--category | string | No | — | Filter listed products by category. Accepted values match vault.yaml category enum. |
--json | boolean | No | false | Output the list as a JSON array. Useful for scripting and tooling integrations. |
Examples
List all installed products:
$ myclaude list
# Installed products (2)
# @kairo/review-skill 1.2.0 skill .claude/skills/review-skill/
# @dev/pr-checker 0.9.1 skill .claude/skills/pr-checker/Filter by category:
$ myclaude list --category skill
# Installed products — skill (2)
# @kairo/review-skill 1.2.0 .claude/skills/review-skill/
# @dev/pr-checker 0.9.1 .claude/skills/pr-checker/Machine-readable JSON output for use in scripts:
$ myclaude list --json
# [
# { "handle": "@kairo/review-skill", "version": "1.2.0", "category": "skill", "path": ".claude/skills/review-skill/" },
# { "handle": "@dev/pr-checker", "version": "0.9.1", "category": "skill", "path": ".claude/skills/pr-checker/" }
# ]info
Synopsis
myclaude info <@creator/product> [--version <semver>] [--json]Description
Fetches and displays metadata for a marketplace product. Output includes the product handle, description, category, current version, all published versions, author, license, price, star rating, and download count.
myclaude info does not require authentication and makes a read-only request to the public marketplace API. It does not modify any local state.
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--version | string | No | latest | Show metadata for a specific published version instead of the latest. |
--json | boolean | No | false | Output the full metadata object as JSON. |
Examples
Show details for the latest version:
$ myclaude info @kairo/review-skill
# @kairo/review-skill
# Description: Performs systematic code review with security and style analysis.
# Category: skill
# Version: 1.2.0
# Versions: 1.0.0, 1.1.0, 1.2.0
# Author: @kairo
# License: MIT
# Price: free
# Rating: ★ 4.9 (312 reviews)
# Downloads: 8,441Show metadata for a specific version:
$ myclaude info @kairo/review-skill --version 1.1.0
# @kairo/review-skill@1.1.0
# ...Output as JSON for programmatic use:
$ myclaude info @kairo/review-skill --json
# { "handle": "@kairo/review-skill", "version": "1.2.0", "category": "skill", ... }init
Synopsis
myclaude init <product-name> [--category <category>] [--author <username>]Description
Scaffolds a new product directory with the required files for the specified category. If --category is not provided, defaults to skill. The directory is created in the current working directory with the name given as the first argument.
Generated files are pre-populated with placeholder content and comments explaining each field. No files are uploaded and no network requests are made — myclaude init operates entirely locally.
Default files by category
| Category | Files created |
|---|---|
skill | vault.yaml, SKILL.md |
squad | vault.yaml, SQUAD.md |
agent | vault.yaml, AGENT.md |
workflow | vault.yaml, WORKFLOW.md |
design-system | vault.yaml, DESIGN-SYSTEM.md, tokens.css |
prompt | vault.yaml, PROMPT.md |
claude-md | vault.yaml, CLAUDE.md |
application | vault.yaml, APP.md |
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--category | string | No | skill | Product category to scaffold. Determines which files are created and the vault.yaml template used. |
--author | string | No | Current authenticated username | Pre-fill the author field in vault.yaml. If not authenticated, defaults to an empty placeholder. |
Examples
Scaffold a skill (default category):
$ myclaude init my-review-skill
# Created my-review-skill/
# vault.yaml
# SKILL.mdScaffold an agent:
$ myclaude init typescript-agent --category agent
# Created typescript-agent/
# vault.yaml
# AGENT.mdScaffold with author pre-filled:
$ myclaude init my-workflow --category workflow --author kairo
# Created my-workflow/
# vault.yaml
# WORKFLOW.mdscan
Synopsis
myclaude scan [path] [--strict] [--json]Description
Runs the content policy scanner on a product directory without publishing. Detects content that would fail the pre-publish pipeline: policy violations, malformed vault.yaml, missing required files, and version constraint errors.
When called without a path argument, scans the current working directory. When a path is provided, scans that directory.
myclaude scan is a strict superset of the validation step that runs inside myclaude publish. Running myclaude scan before myclaude publish guarantees that the publish pipeline will not fail on validation or scanning errors. It does not guarantee that the upload or listing creation steps will succeed.
myclaude scan does not require authentication and does not make any network requests. It operates entirely on local files.
Flags
| Flag | Type | Required | Default | Description |
|---|---|---|---|---|
--strict | boolean | No | false | Treat warnings as errors. A warning-only scan exits with code 0 normally; with --strict it exits with code 1. |
--json | boolean | No | false | Output scan results as JSON. Includes arrays for errors, warnings, and info messages. |
Exit codes
| Code | Meaning |
|---|---|
0 | Scan passed with no errors. Warnings may be present. |
1 | Scan found one or more errors. Publish would fail. |
1 | Scan found warnings and --strict was set. |
Examples
Scan the current directory:
$ myclaude scan
# Scanning ./ ...
# Validating vault.yaml... OK
# Checking required files... OK
# Running content policy... OK
# Scan complete. No issues found.Scan a specific path and treat warnings as errors:
$ myclaude scan ./my-review-skill --strict
# Scanning ./my-review-skill/ ...
# Validating vault.yaml... OK
# Checking required files... OK
# Running content policy...
# WARNING: description is 158/160 characters. Consider shortening.
# Strict mode: 1 warning treated as error.
# exit code: 1Machine-readable output for CI integration:
$ myclaude scan --json
# {
# "passed": true,
# "errors": [],
# "warnings": [
# { "field": "description", "message": "158/160 characters. Consider shortening." }
# ]
# }Global flags
These flags are accepted by every command.
| Flag | Type | Default | Description |
|---|---|---|---|
--help, -h | boolean | false | Print usage information for the command and exit. |
--version, -v | boolean | false | Print the CLI version and exit. |
--quiet, -q | boolean | false | Suppress all output except errors. Useful in scripts. |
--no-color | boolean | false | Disable ANSI color codes in output. Set automatically when NO_COLOR environment variable is present. |
Exit codes
| Code | Meaning |
|---|---|
0 | Command completed successfully |
1 | General error (validation failure, file not found, etc.) |
2 | Authentication error (not logged in, token expired) |
3 | Network error (API unreachable, timeout) |
4 | Permission error (attempting to publish as a different author, etc.) |
Related pages
- CLI Installation — install the CLI and set up authentication
- vault.yaml Specification — complete field reference for product manifests
- Publishing Your First Product — step-by-step publish tutorial
- Installing Products via CLI — buyer walkthrough for install and manage