🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
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:
-
Command-line flag (highest priority):
pluginctl --plugin-path /path/to/plugin info
-
Environment variable:
export PLUGINCTL_PLUGIN_PATH=/path/to/plugin pluginctl info
-
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 buildmake check-changes
- Validate changes (lint, security, test)make test
- Run testsmake help
- Show all available targets
See make help
for the complete list of available targets.
Adding New Commands
- Create a new command file (e.g.,
build.go
) in the root directory - Implement the command following existing patterns
- Register the command in
cmd/pluginctl/main.go
- 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.
Related Projects
Support
For questions, issues, or feature requests, please:
- Check the issues page
- Create a new issue if your problem isn't already reported
- Join the Mattermost Community for general discussion