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" - 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 install <repo> Install a command from a Git repository
ccmd install Install all commands from ccmd.yaml
ccmd list List installed commands
ccmd update <command> Update a specific command
ccmd remove <command> Remove an installed command
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

Example Commands

Here are some commands you can install and try:

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

Documentation

Community

License

MIT License - see LICENSE for details