ccmd

module
v1.2.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Mar 21, 2026 License: MIT

README

ccmd - Claude Command Manager

Go Version License Go Report Card Quality Gate Status NPM Sponsor

Simple command-line tool for managing custom commands in Claude Code. Install and share commands from Git repositories with the ease of a package manager.

Why ccmd?

Managing custom Claude Code commands across multiple projects can be challenging. ccmd solves this by treating commands as versioned, reusable packages:

  • Keep commands out of your codebase: Store command definitions (.md files and AI context) in separate repositories, keeping your project repositories clean
  • Version control: Each command has its own version, allowing you to use different versions in different projects
  • Reusability: Install the same command in multiple projects without duplication
  • Easy sharing: Share commands with your team or the community through Git repositories
  • Simple management: Install, update, and remove commands with familiar package manager semantics

Think of ccmd as "npm for Claude Code commands and plugins" - centralize your AI tooling configurations and use them anywhere.

Installation

npm install -g @gifflet/ccmd
Via Go
go install github.com/gifflet/ccmd/cmd/ccmd@latest

Quick Start

1. Initialize your project
cd your-project
ccmd init
2. Install a demo command
ccmd install gifflet/hello-world
3. Use it in Claude Code
/hello-world

That's it! You've just installed and used your first ccmd command.

Commands

Command Description
ccmd init Initialize a new command project
ccmd init --plugin Initialize a new plugin project
ccmd install <repo> Install a command or plugin from a Git repository (auto-detected)
ccmd install Install all commands and plugins from ccmd.yaml
ccmd list List installed commands and plugins
ccmd update <command> Update a specific command
ccmd remove <command> Remove an installed command or plugin
ccmd search <keyword> Search for commands in the registry
ccmd info <command> Show detailed command information

For detailed usage and options, see commands reference

Creating Your Own Commands

Creating a command for ccmd is simple. Your repository needs:

  1. ccmd.yaml - Command metadata (created by ccmd init)
  2. index.md - Command instructions for Claude
Quick Start
mkdir my-command && cd my-command
ccmd init  # Creates ccmd.yaml interactively
Example Structure
my-command/
├── ccmd.yaml          # Command metadata (required)
└── index.md           # Command for Claude (required)
Example ccmd.yaml
name: my-command
version: 1.0.0
description: Automates tasks in Claude Code
author: Your Name
repository: https://github.com/username/my-command
entry: index.md  # Optional, defaults to index.md

For complete guide with examples, see Creating Commands

Plugin Support

ccmd also manages Claude Code plugins — packages that extend Claude Code itself rather than defining slash commands.

Installing a Plugin
ccmd install gifflet/review-plugin

ccmd automatically detects whether a repository is a plugin or a command by reading the type field in its ccmd.yaml. No special flags are needed.

Creating a Plugin
mkdir my-plugin && cd my-plugin
ccmd init --plugin
Example ccmd.yaml for a Plugin
type: plugin
name: my-plugin
version: 1.0.0
description: Extends Claude Code with custom capabilities
author: Your Name
repository: https://github.com/username/my-plugin

For complete guide, see Creating Plugins

Example Commands

Here are some commands you can install and try:

  • hello-world: Simple demo command
    ccmd install https://github.com/gifflet/hello-world
    

Example Plugins

Here are some plugins you can install and try:

  • review-plugin: AI-powered code review plugin for Claude Code
    ccmd install gifflet/review-plugin
    

Documentation

Community

License

MIT License - see LICENSE for details

Directories

Path Synopsis
cmd
ccmd command
Package main demonstrates how to migrate from old error handling to the new system
Package main demonstrates how to migrate from old error handling to the new system
internal
fs
Package fs provides file system operations for ccmd
Package fs provides file system operations for ccmd
pkg
errors
Package errors provides simple error handling for CCMD.
Package errors provides simple error handling for CCMD.
logger
Package logger provides structured logging capabilities for CCMD.
Package logger provides structured logging capabilities for CCMD.
output
Package output provides colored output utilities for command-line interface.
Package output provides colored output utilities for command-line interface.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL