# Package/Tool `zsh-plugin` A command-line tool to generate new Zsh plugins. [![Apache-2.0 License](https://img.shields.io/badge/License-Apache_2.0-blue.svg)](https://opensource.org/licenses/Apache-2.0) [![MIT License](https://img.shields.io/badge/license-mit-118811.svg)](https://opensource.org/license/mit) [![Rust Workflow](https://github.com/johnstonskj/rust-zsh-plugin-cli/actions/workflows/rust.yml/badge.svg)]() [![Security Audit Workflow](https://github.com/johnstonskj/rust-zsh-plugin-cli/actions/workflows/security-audit.yml/badge.svg)]() [![crates.io](https://img.shields.io/crates/v/zsh-plugin.svg)](https://crates.io/crates/zsh-plugin) [![GitHub stars](https://img.shields.io/github/stars/johnstonskj/rust-zsh-plugin-cli.svg)]() This tool scaffolds Zsh plugins with best practices built-in, including function tracking for clean unloading, optional alias support, autoloaded functions, and CI/CD workflows for shellcheck and shellspec. Choose from _minimal_, _simple_, or _complete_ templates to match your plugin's complexity. ## Install ```bash ❱ cargo install zsh-plugin ``` ```bash ❱ zsh-plugin --help A command-line tool to generate new Zsh plugins. Usage: zsh-plugin [OPTIONS] Commands: init Initialize a new Zsh plugin structure help Print this message or the help of the given subcommand(s) Options: -v, --verbose... Increase logging verbosity -q, --quiet... Decrease logging verbosity -h, --help Print help -V, --version Print version ``` ## Command `init` ```bash ❯ zsh-plugin init --help Initialize a new Zsh plugin structure The resulting plugin contains the following content. ... Usage: zsh-plugin init [OPTIONS] --github-user Arguments: The name of the new plugin. Plugin names are restricted to a "safe" subset corresponding to the following regular expression `\[a-zA-Z\]\[a-zA-Z0-9_-\]``. Options: -f, --force Force over-writing of existing files. If not set, the tool will fail when target directories or files exist. -v, --verbose... Increase logging verbosity. -q, --quiet... Decrease logging verbosity. -t, --template