Skip to content

gifflet/ccmd

Repository files navigation

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

Via NPM (Recommended)

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

Sponsor this project

 

Packages

 
 
 

Contributors