This document provides detailed information about all ccmd commands, their options, and usage examples.
ccmd is a command-line tool for managing Claude Code commands. It provides a package manager-like experience for installing, updating, and managing custom commands from Git repositories.
All ccmd commands follow this general pattern:
ccmd <command> [arguments] [flags]
To see available commands:
ccmd --help
To see help for a specific command:
ccmd <command> --help
These options are available for all ccmd commands:
--version
- Display ccmd version information--help
- Display help informationInitialize a new Claude Code Command project by creating the necessary configuration files and directory structure.
ccmd init
This interactive command guides you through setting up a new ccmd project. It prompts for essential metadata about your command and generates:
ccmd.yaml
- Command configuration file.claude/commands/
- Directory structure for commandsThis command has no additional flags. It runs interactively.
# Initialize a new command project
cd my-command
ccmd init
# Example interaction:
# name: (my-command)
# version: (1.0.0)
# description: Automates common development tasks
# author: Jane Doe
# repository: https://github.com/janedoe/my-command
# entry: (index.md)
# tags (comma-separated): automation, dev-tools
ccmd.yaml
file already exists, it will load existing values as defaults.claude/commands
directory structure automaticallyindex.md
file with command instructionsInstall a command from a Git repository or install all commands from ccmd.yaml.
ccmd install [repository] [flags]
When no repository is provided, installs all commands defined in the project’s ccmd.yaml file. When a repository is provided, installs the command and adds it to ccmd.yaml and ccmd-lock.yaml.
-v, --version <version>
- Version/tag to install (defaults to latest)-n, --name <name>
- Override command name-f, --force
- Force reinstall if already exists# Install all commands from ccmd.yaml
ccmd install
# Install latest version of a command
ccmd install github.com/user/repo
# Install specific version
ccmd install github.com/user/repo@v1.0.0
ccmd install github.com/user/repo --version v1.0.0
# Install with custom name
ccmd install github.com/user/repo --name mycommand
# Force reinstall
ccmd install github.com/user/repo --force
github.com/user/repo
https://github.com/user/repo
git@github.com:user/repo
https://github.com/user/repo.git
git@github.com:user/repo.git
user/repo
(assumes GitHub)List all commands managed by ccmd with their versions, sources, and metadata.
ccmd list [flags]
Shows only commands that are tracked in the ccmd-lock.yaml file and have entries in the .claude/commands/ directory.
-l, --long
- Show detailed output including metadata# List commands in table format
ccmd list
# Show detailed information
ccmd list --long
Simple format shows:
Long format includes:
--long
flag to see details about structure issuesUpdate installed commands to their latest versions.
ccmd update [command] [flags]
Updates a specific command or all commands to their latest versions from their source repositories.
-a, --all
- Update all installed commands-c, --check
- Only check for updates without installing-f, --force
- Force update even if version appears current# Update a specific command
ccmd update my-command
# Update all commands
ccmd update --all
# Check for updates without installing
ccmd update --check
ccmd update my-command --check
# Force update
ccmd update my-command --force
--all
flag, you must specify a command name--check
flag shows available updates without making changesRemove an installed command and clean up all associated files.
ccmd remove <command-name> [flags]
Removes a command from the .claude/commands directory and optionally updates configuration files.
-f, --force
- Force removal without confirmation-s, --save
- Update ccmd.yaml and ccmd-lock.yaml files# Remove with confirmation prompt
ccmd remove my-command
# Force removal without confirmation
ccmd remove my-command --force
# Remove and update config files
ccmd remove my-command --save
Unless --force
is used, the command will display:
Search for installed commands by keyword, tags, or author.
ccmd search [keyword] [flags]
Searches through locally installed commands. This command searches metadata including names, descriptions, tags, and authors.
-t, --tags <tags>
- Filter by tags (comma-separated)-a, --author <author>
- Filter by author--all
- Show all commands (ignore keyword)# Search by keyword
ccmd search review
# Search by tags
ccmd search --tags code-review,quality
# Search by author
ccmd search --author "John Doe"
# List all installed commands
ccmd search --all
# Combine filters
ccmd search review --tags automation --author "Jane Doe"
Each result shows:
Display detailed information about an installed command.
ccmd info <command-name> [flags]
Shows comprehensive information about a specific installed command, including metadata and structure verification.
--json
- Output in JSON format# Show command information
ccmd info my-command
# Output as JSON
ccmd info my-command --json
Command Information:
Installation Details:
Structure Verification:
Content Preview:
Synchronize installed commands with ccmd.yaml configuration.
ccmd sync [flags]
Analyzes the difference between ccmd.yaml and installed commands, then:
-n, --dry-run
- Show what would be done without making changes-f, --force
- Force sync without confirmation# Analyze and sync commands
ccmd sync
# Preview changes without executing
ccmd sync --dry-run
# Force sync without confirmation
ccmd sync --force
Shows:
--dry-run
flag is recommended to preview changes first# 1. Initialize ccmd in your project
cd my-project
ccmd init
# 2. Install some commands
ccmd install github.com/user/command1
ccmd install github.com/user/command2
# 3. Commit the configuration
git add ccmd.yaml ccmd-lock.yaml
git commit -m "Add ccmd commands"
# 1. Clone the repository
git clone https://github.com/user/project
cd project
# 2. Install all commands
ccmd install
# or
ccmd sync
# Check for updates
ccmd update --all --check
# Update all commands
ccmd update --all
# Update specific command
ccmd update my-command