Peck
Peck is a powerful CLI tool designed to identify pure wording or spelling (grammar) mistakes in your codebase.
Install / Use
/learn @peckphp/PeckREADME
Peck is a powerful CLI tool designed to identify wording or spelling mistakes in your codebase: filenames, class names, method names, property names, docs, and more. Built for speed, simplicity, and seamless integration, Peck fits naturally into your workflow, much like tools such as Pint or Pest.
Leveraging the robust capabilities of GNU Aspell, Peck inspects every corner of your codebase — ensuring your work maintains a high standard of clarity and professionalism.
Note: Peck is still under active development and is not yet ready for production use.
Installation
Requires PHP 8.2+ and GNU Aspell
Peck relies on GNU Aspell for its spell-checking functionality. Make sure GNU Aspell is installed on your system before using Peck.
Installing GNU Aspell
- If you are using Debian/Ubuntu:
sudo apt-get install aspell aspell-en
- If you are using MacOS (using Homebrew):
brew install aspell
- If you are using Windows:
We recommend moving to the Windows Subsystem for Linux (WSL) and following the Debian/Ubuntu steps. Alternatively, if you prefer not to use WSL, you can install Aspell using Scoop, a package manager for Windows:
scoop install main/aspell
Installing Peck
You can require Peck using Composer with the following command:
composer require peckphp/peck --dev
./vendor/bin/peck --init
Usage
To check your project for spelling mistakes, run:
./vendor/bin/peck
On the very first run, Peck may detect a large number of spelling mistakes. You may use the ignore-all option to ignore all the mistakes at once:
./vendor/bin/peck --ignore-all
Configuration
Peck can be configured using a peck.json file in the root of your project.
You can scaffold the peck.json file with:
./vendor/bin/peck --init
Here's an example configuration:
{
"preset": "laravel",
"ignore": {
"words": [
"config",
"namespace"
],
"paths": [
"app/MyFolder",
"app/MyFile.php"
]
}
}
You can also specify the path to the configuration file using the --config option:
./vendor/bin/peck --config relative/path/to/peck.json
Presets
In order to make it easier to get started with Peck, we've included a few presets that you can use to ignore common words in your project. The following presets are available:
laravel
Languages
While by default peck verfies the spelling by using GNU Aspell's en_US language dictionary, you can optionally specify a different (installed) language to be passed using the "language" key in the configuration:
{
"preset": "laravel",
"language": "en_US",
"ignore": {
"words": [
"config",
"namespace"
]
}
}
You can see a full list of available dictionaries using the command aspell dump dicts.
Command Options
The behaviour of peck can be modified with the following command options:
--init
If you don't have a peck.json file yet, you can create a blank configuration file by using the --init option.
--config
By default peck will check for a peck.json file in your project root. If one isn't available it will try to figure out the directory to check by itself.
--path
The path to check can be overwritten with the --path option. If the path is one you always need checking you can place it in your peck.json file.
--text
The --text option allows you to check a string of text for spelling mistakes. This is useful when you want to check a specific string, such as commit messages.
--ignore-all
This option will ignore all spelling mistakes in the current run. This is useful when you have a large number of mistakes and want to ignore them all at once.
CI / GitHub Actions
When running Peck on GitHub Actions, you can use the following workflow before running Peck:
- name: Install Aspell
shell: bash
run: |
if [[ "$RUNNER_OS" == "Linux" ]]; then
sudo apt-get update && sudo apt-get install -y aspell aspell-en
elif [[ "$RUNNER_OS" == "macOS" ]]; then
brew install aspell
fi
- name: Check Typos
shell: bash
run: |
if [[ "$RUNNER_OS" == "Linux" || "$RUNNER_OS" == "macOS" ]]; then
composer test:typos
fi
Peck is an open-sourced software licensed under the MIT license.
Related Skills
diffs
344.1kUse the diffs tool to produce real, shareable diffs (viewer URL, file artifact, or both) instead of manual edit summaries.
clearshot
Structured screenshot analysis for UI implementation and critique. Analyzes every UI screenshot with a 5×5 spatial grid, full element inventory, and design system extraction — facts and taste together, every time. Escalates to full implementation blueprint when building. Trigger on any digital interface image file (png, jpg, gif, webp — websites, apps, dashboards, mockups, wireframes) or commands like 'analyse this screenshot,' 'rebuild this,' 'match this design,' 'clone this.' Skip for non-UI images (photos, memes, charts) unless the user explicitly wants to build a UI from them. Does NOT trigger on HTML source code, CSS, SVGs, or any code pasted as text.
openpencil
2.0kThe world's first open-source AI-native vector design tool and the first to feature concurrent Agent Teams. Design-as-Code. Turn prompts into UI directly on the live canvas. A modern alternative to Pencil.
HappyColorBlend
HappyColorBlendVibe Project Guidelines Project Overview HappyColorBlendVibe is a Figma plugin for color palette generation with advanced tint/shade blending capabilities. It allows designers to
