@gifflet/ccmd
Version:
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.
131 lines (92 loc) • 4.07 kB
Markdown
# ccmd - Claude Command Manager
[](https://go.dev)
[](LICENSE)
[](https://goreportcard.com/report/github.com/gifflet/ccmd)
[](https://www.npmjs.com/package/@gifflet/ccmd)
[](https://github.com/sponsors/gifflet)
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.
<img src="./docs/demo.gif" />
## 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)
```bash
npm install -g @gifflet/ccmd
```
### Via Go
```bash
go install github.com/gifflet/ccmd/cmd/ccmd@latest
```
## Quick Start
### 1. Initialize your project
```bash
cd your-project
ccmd init
```
### 2. Install a demo command
```bash
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](docs/commands.md)
## 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
```bash
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
```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](docs/creating-commands.md)
## Example Commands
Here are some commands you can install and try:
- **hello-world**: Simple demo command
```bash
ccmd install https://github.com/gifflet/hello-world
```
## Documentation
- **[Full Documentation](docs/)** - Complete guides and references
- **[Command Creation Guide](docs/creating-commands.md)** - Create your own commands
## Community
- **Issues**: [GitHub Issues](https://github.com/gifflet/ccmd/issues)
- **Discussions**: [GitHub Discussions](https://github.com/gifflet/ccmd/discussions)
- **Contributing**: See [CONTRIBUTING.md](CONTRIBUTING.md)
## License
MIT License - see [LICENSE](LICENSE) for details