assets | ||
cmd/pluginctl | ||
testdata | ||
.gitignore | ||
.golangci.yml | ||
.goreleaser.yml | ||
CLAUDE.md | ||
client.go | ||
disable.go | ||
enable.go | ||
go.mod | ||
go.sum | ||
info.go | ||
info_test.go | ||
LICENSE | ||
logger.go | ||
logs.go | ||
Makefile | ||
manifest.go | ||
plugin.go | ||
plugin_test.go | ||
README.md | ||
reset.go | ||
updateassets.go | ||
version.go |
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
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.
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
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 or create a new issue if your problem isn't already reported
- Join the Mattermost Community for general discussion