CmdForge-Registry/CONTRIBUTING.md

2.5 KiB

Contributing to CmdForge Registry

Thank you for contributing to the CmdForge ecosystem!

Publishing a Tool

Prerequisites

  1. Install CmdForge: pip install cmdforge
  2. Create an account at the registry website
  3. Generate an API token from your dashboard
  4. 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 analysis
  • code - Code review, generation, analysis
  • data - Data transformation and analysis
  • media - Image, audio, video processing
  • productivity - General productivity tools
  • writing - Writing assistance and editing
  • translation - Language translation
  • research - 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:

  1. Update your tool locally
  2. Bump the version in config.yaml
  3. 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.