2.5 KiB
2.5 KiB
Contributing to CmdForge Registry
Thank you for contributing to the CmdForge ecosystem!
Publishing a Tool
Prerequisites
- Install CmdForge:
pip install cmdforge - Create an account at the registry website
- Generate an API token from your dashboard
- Configure your token:
cmdforge config set-token YOUR_TOKEN
Tool Structure
Your tool directory should contain:
my-tool/
├── config.yaml # Required: Tool definition
└── README.md # Recommended: Documentation
config.yaml Format
name: my-tool
version: "1.0.0"
description: A brief description of what your tool does
category: text-processing # See categories below
tags:
- ai
- productivity
arguments:
- flag: --max-length
variable: max_length
default: "500"
description: Maximum output length
steps:
- type: prompt
prompt: |
Summarize the following text in {max_length} characters or less:
{input}
provider: claude
output_var: response
output: "{response}"
Categories
Choose one of these categories:
text-processing- Text manipulation and analysiscode- Code review, generation, analysisdata- Data transformation and analysismedia- Image, audio, video processingproductivity- General productivity toolswriting- Writing assistance and editingtranslation- Language translationresearch- Research and information gathering
Publishing
cd my-tool/
cmdforge registry publish
Use --dry-run to validate without publishing:
cmdforge registry publish --dry-run
Guidelines
Do's
- Write clear, concise descriptions
- Include usage examples in your README
- Use semantic versioning (MAJOR.MINOR.PATCH)
- Test your tool before publishing
- Choose an appropriate category
Don'ts
- Don't include secrets or API keys in prompts
- Don't publish tools that duplicate existing official tools
- Don't use misleading names or descriptions
- Don't publish empty or non-functional tools
Versioning
Once a version is published, it cannot be modified. To make changes:
- Update your tool locally
- Bump the version in config.yaml
- Run
cmdforge registry publish
Deprecation
To deprecate a tool version, add to your config.yaml:
deprecated: true
deprecated_message: "Use v2.0.0 instead - security fix"
replacement: "username/toolname@2.0.0"
Questions?
Open an issue on the CmdForge repository.