A collection of Claude Code plugins to automate and assist with various development tasks.
-
Add the marketplace:
/plugin marketplace add openshift-eng/ai-helpers
-
Install a plugin:
/plugin install jira@ai-helpers
-
Use the commands:
/jira:solve OCPBUGS-12345 origin
To get the latest plugin versions:
-
Update the marketplace (fetches latest plugin catalog):
/plugin marketplace update ai-helpers
-
Reinstall the plugin (downloads new version):
/plugin install <plugin>@ai-helpers
Add a SessionStart hook to automatically sync the marketplace catalog on each session. In your project's .claude/settings.json:
{
"hooks": {
"SessionStart": [
{
"command": "claude plugin marketplace update ai-helpers",
"timeout": 30000
}
]
}
}Note: This only refreshes the catalog (what's available). To actually update an installed plugin to a newer version, you still need to reinstall it with /plugin install <plugin>@ai-helpers.
Cursor is able to find the various commands defined in this repo by
making it available inside your ~/.cursor/commands directory.
$ mkdir -p ~/.cursor/commands
$ git clone git@github.com:openshift-eng/ai-helpers.git
$ ln -s ai-helpers ~/.cursor/commands/ai-helpers
A container is available with Claude Code and all plugins pre-installed.
podman build -f images/Dockerfile -t ai-helpers .To use Claude Code with Google Cloud's Vertex AI, you need to pass through your gcloud credentials and set the required environment variables:
podman run -it \
-e CLAUDE_CODE_USE_VERTEX=1 \
-e CLOUD_ML_REGION=your-ml-region \
-e ANTHROPIC_VERTEX_PROJECT_ID=your-project-id \
-v ~/.config/gcloud:/home/claude/.config/gcloud:ro \
-v $(pwd):/workspace \
-w /workspace \
ai-helpersEnvironment Variables:
CLAUDE_CODE_USE_VERTEX=1- Enable Vertex AI integrationCLOUD_ML_REGION- Your GCP region (e.g.,us-east5)ANTHROPIC_VERTEX_PROJECT_ID- Your GCP project ID
Volume Mounts:
-v ~/.config/gcloud:/home/claude/.config/gcloud:ro- Passes through your gcloud authentication (read-only)-v $(pwd):/workspace- Mounts your current directory into the container
You can execute Claude Code commands directly without entering an interactive session using the -p or --print flag:
podman run -it \
-e CLAUDE_CODE_USE_VERTEX=1 \
-e CLOUD_ML_REGION=your-ml-region \
-e ANTHROPIC_VERTEX_PROJECT_ID=your-project-id \
-v ~/.config/gcloud:/home/claude/.config/gcloud:ro \
-v $(pwd):/workspace \
-w /workspace \
ai-helpers \
--print "/hello-world:echo Hello from Claude Code!"This will:
- Start the container with your gcloud credentials
- Execute the
/hello-world:echocommand with the provided message - Print the response and exit when complete
For a complete list of all available plugins and commands, see PLUGINS.md.
Want to contribute or create your own plugins? Check out the plugins/ directory for examples.
Make sure your commands and agents follow the conventions for the Sections structure presented in the hello-world reference implementation plugin (see hello-world:echo for an example).
Plugins, commands, skills, and hooks must NEVER reference real people by name, even as stylistic examples (e.g., "in the style of ").
Ethical rationale:
- Consent: Individuals have not consented to have their identity or persona used in AI-generated content
- Misrepresentation: AI cannot accurately replicate a person's unique voice, style, or intent
- Intellectual Property: A person's distinctive style may be protected
- Dignity: Using someone's identity without permission diminishes their autonomy
Instead, describe specific qualities explicitly
Good examples:
- "Write commit messages that are direct, technically precise, and focused on the rationale behind changes"
- "Explain using clear analogies, a sense of wonder, and accessible language for non-experts"
- "Code review comments that are encouraging, constructive, and focus on collaborative improvement"
When you identify a desirable characteristic (clarity, brevity, formality, humor, etc.), describe it explicitly rather than using a person as proxy.
Check for overlaps first - Before coding, validate your idea:
/utils:review-ai-helpers-overlap --idea "brief description of your command"Collaborating on existing work instead of duplicating parallel efforts is always encouraged when overlap is found. This helps maintain a clean, non-redundant plugin collection in such an actively developed project (see /utils:review-ai-helpers-overlap for detailed usage).
When contributing new commands:
- If your command fits an existing plugin: Add it to the appropriate plugin's
commands/directory - If your command doesn't have a clear parent plugin: Add it to the utils plugin (
plugins/utils/commands/)- The utils plugin serves as a catch-all for commands that don't fit existing categories
- Once we accumulate several related commands in utils, they can be segregated into a new targeted plugin
If you're contributing several related commands that warrant their own plugin:
- Create a new directory under
plugins/with your plugin name - Create the plugin structure:
plugins/your-plugin/ ├── .claude-plugin/ │ └── plugin.json └── commands/ └── your-command.md - Register your plugin in
.claude-plugin/marketplace.json
This repository uses claudelint to validate plugin structure:
make lintAfter adding or modifying plugins, regenerate the PLUGINS.md file:
make updateThis automatically scans all plugins and regenerates the complete plugin/command documentation in PLUGINS.md.
- PLUGINS.md - Complete list of all available plugins and commands
- CONTRIBUTING.md - Guidelines for contributing plugins, including versioning policy
- AGENTS.md - Complete guide for AI agents working with this repository
- CLAUDE.md - Claude-specific configuration and notes
See LICENSE for details.