Managing custom Claude Code commands across multiple projects can be challenging. ccmd solves this by treating commands as versioned, reusable packages:
Think of ccmd as “npm for Claude Code commands” - centralize your AI tooling configurations and use them anywhere.
npm install -g @gifflet/ccmd
go install github.com/gifflet/ccmd/cmd/ccmd@latest
cd your-project
ccmd init
ccmd install gifflet/hello-world
/hello-world
That’s it! You’ve just installed and used your first ccmd command.
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 a command for ccmd is simple. Your repository needs:
ccmd init
)mkdir my-command && cd my-command
ccmd init # Creates ccmd.yaml interactively
my-command/
├── ccmd.yaml # Command metadata (required)
└── index.md # Command for Claude (required)
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
Here are some commands you can install and try:
ccmd install https://github.com/gifflet/hello-world