pluginctl/README.md
Felipe Martin 3cbe5e4a9f
Compacted README.md
🤖 Generated with [Claude Code](https://claude.ai/code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-07-09 17:04:27 +02:00

3.5 KiB

pluginctl

A command-line interface tool for Mattermost plugin development. pluginctl provides utilities to manage, inspect, and work with Mattermost plugins from the command line.

Installation

From Source

git clone https://github.com/mattermost/pluginctl.git
cd pluginctl
make build

Binary Installation

Download the latest binary from the releases page.

Package Managers

# Using go install
go install github.com/mattermost/pluginctl/cmd/pluginctl@latest

# Using Homebrew (if available)
brew install mattermost/tap/pluginctl

# Using Scoop on Windows (if available)
scoop bucket add mattermost https://github.com/mattermost/scoop-bucket.git
scoop install pluginctl

Usage

Basic Commands

# Display plugin information
pluginctl info

# Show help and available commands
pluginctl --help

# Show version
pluginctl --version

Plugin Path Configuration

pluginctl supports multiple ways to specify the plugin directory:

  1. Command-line flag (highest priority):

    pluginctl --plugin-path /path/to/plugin info
    
  2. Environment variable:

    export PLUGINCTL_PLUGIN_PATH=/path/to/plugin
    pluginctl info
    
  3. Current directory (default):

    cd /path/to/plugin
    pluginctl info
    

Available Commands

Run pluginctl --help to see all available commands and options.

Requirements

  • Go 1.24.3 or later (for building from source)
  • Valid Mattermost plugin directory with plugin.json manifest file

Development

Quick Start

# Set up development environment
make dev-setup

# Install dependencies
make deps

# Quick development build (format, lint, build)
make dev

# Run tests and checks before committing
make check-changes

Key Make Targets

  • make dev - Quick development build
  • make check-changes - Validate changes (lint, security, test)
  • make test - Run tests
  • make help - Show all available targets

See make help for the complete list of available targets.

Adding New Commands

  1. Create a new command file (e.g., build.go) in the root directory
  2. Implement the command following existing patterns
  3. Register the command in cmd/pluginctl/main.go
  4. Update the help text

See CLAUDE.md for detailed architecture guidelines.

Contributing

We welcome contributions to pluginctl! Please see the CLAUDE.md file for architecture guidelines and development patterns.

Code Style

  • Follow Go best practices and conventions
  • Use the official Mattermost model types from github.com/mattermost/mattermost/server/public/model
  • Maintain separation between CLI framework and command implementation
  • Include comprehensive error handling with descriptive messages

License

This project is licensed under the Apache 2.0 License - see the LICENSE file for details.

Support

For questions, issues, or feature requests, please:

  1. Check the issues page
  2. Create a new issue if your problem isn't already reported
  3. Join the Mattermost Community for general discussion