PHPackages                             cresset-tools/wick - PHPackages - PHPackages  [Skip to content](#main-content)[PHPackages](/)[Directory](/)[Categories](/categories)[Trending](/trending)[Leaderboard](/leaderboard)[Changelog](/changelog)[Analyze](/analyze)[Collections](/collections)[Log in](/login)[Sign up](/register)

1. [Directory](/)
2. /
3. [Utility &amp; Helpers](/categories/utility)
4. /
5. cresset-tools/wick

ActiveLibrary[Utility &amp; Helpers](/categories/utility)

cresset-tools/wick
==================

An unconfigurable, Laravel Pint-style PHP formatter. Fetches a prebuilt Rust binary on demand; powered by Mago.

v0.2.3(6y ago)00[1 issues](https://github.com/cresset-tools/wick/issues)EUPL-1.2RustPHP &gt;=8.1

Since Jan 1Pushed todayCompare

[ Source](https://github.com/cresset-tools/wick)[ Packagist](https://packagist.org/packages/cresset-tools/wick)[ Docs](https://github.com/cresset-tools/wick)[ RSS](/packages/cresset-tools-wick/feed)WikiDiscussions main Synced today

READMEChangelog (3)DependenciesVersions (4)Used By (0)

wick
====

[](#wick)

An **unconfigurable**, Laravel [Pint](https://laravel.com/docs/pint)-style PHP formatter and linter — fast, single static binary, no PHP runtime required.

`wick` is to PHP what `gofmt` is to Go: one style, no knobs. There is no config file, no preset selection, no rule toggles. You point it at your code and it formats it. The only flags decide what to *do* with the result — write, check, or diff — never *how* the code is formatted.

`wick check` adds linting in the same spirit: it runs Mago's default rule set, unconfigured, at the PHP version your `composer.json` declares — no `--select`, no `--ignore`, no severities to tune. It mirrors `ruff check`: report by default, `--fix` to apply safe fixes, `--fix --unsafe-fixes` for the rest, `--diff` to preview.

Part of the [cresset-tools](https://github.com/cresset-tools) family, alongside [bougie](https://github.com/cresset-tools/bougie).

Powered by Mago
---------------

[](#powered-by-mago)

wick does **not** parse or pretty-print PHP itself. All of that — the lexer, parser, AST, and the Wadler-style pretty-printer that does the actual formatting — is [**Mago**](https://github.com/carthage-software/mago), an excellent PHP toolchain written in Rust by [Carthage Software](https://carthage.software). wick simply pins Mago's `Pint` style preset and default lint rules, targets the PHP version it detects, and wraps them in a deliberately minimal CLI.

If you want a *configurable* formatter or linter, rule selection, severities, framework integrations, or a static analyzer/type checker, use Mago directly — it does all of that and more. wick exists only for people who want "Laravel style, no decisions."

Mago is licensed MIT OR Apache-2.0. wick is grateful for it.

Install
-------

[](#install)

```
# Unix
$ curl --proto '=https' --tlsv1.2 -LsSf https://releases.bougie.tools/installers/wick/latest/wick-installer.sh | sh

# Windows (PowerShell)
> irm https://releases.bougie.tools/installers/wick/latest/wick-installer.ps1 | iex

# or, from source
$ cargo install wick
```

Prebuilt binaries (Linux gnu/musl, macOS arm64, Windows x64) are attached to every [GitHub Release](https://github.com/cresset-tools/wick/releases) and mirrored to cresset infrastructure.

Usage
-----

[](#usage)

Like `ruff`, wick has no default action — pick `format` or `check`. Bare `wick` just prints help.

```
$ wick format                 # format every .php file under the current directory
$ wick format src tests       # format specific files or directories
$ wick format --check         # CI mode: exit non-zero if anything is unformatted
$ wick format --diff          # print what would change, write nothing
$ cat a.php | wick format -    # format stdin, write to stdout
```

Linting mirrors `ruff check`:

```
$ wick check                  # lint every .php file under the current directory
$ wick check src tests        # lint specific files or directories
$ wick check --fix            # apply safe fixes in place
$ wick check --fix --unsafe-fixes   # also apply behaviour-changing fixes
$ wick check --diff           # preview the fixes --fix would apply
$ cat a.php | wick check -     # lint stdin
```

Fixable problems are flagged with `[*]`. Directories are walked respecting `.gitignore`.

Compatibility note
------------------

[](#compatibility-note)

wick is a from-scratch **reprinter**: it discards your existing whitespace and prints the AST anew (like gofmt/Prettier/Black). Laravel Pint is a **token-fixer** built on PHP-CS-Fixer that only edits what violates a rule. The output style matches Pint's conventions closely, but wick is **not** a byte-for-byte Pint drop-in — the first run on an existing Pint-formatted codebase will still produce a reformat diff.

License
-------

[](#license)

EUPL-1.2 © Jelle Besseling

###  Health Score

34

—

LowBetter than 75% of packages

Maintenance65

Regular maintenance activity

Popularity0

Limited adoption so far

Community2

Small or concentrated contributor base

Maturity58

Maturing project, gaining track record

How is this calculated?**Maintenance (25%)** — Last commit recency, latest release date, and issue-to-star ratio. Uses a 2-year decay window.

**Popularity (30%)** — Total and monthly downloads, GitHub stars, and forks. Logarithmic scaling prevents top-heavy scores.

**Community (15%)** — Contributors, dependents, forks, watchers, and maintainers. Measures real ecosystem engagement.

**Maturity (30%)** — Project age, version count, PHP version support, and release stability.

###  Release Activity

Cadence

Every ~0 days

Total

3

Last Release

2356d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/b91da1d20a682daa9e1f860d1e9686d625832f13f1d016b968bd9569f6e8f5d7?d=identicon)[pingiun](/maintainers/pingiun)

---

Tags

phpformatterlaravelCode stylePint

### Embed Badge

![Health badge](/badges/cresset-tools-wick/health.svg)

```
[![Health](https://phpackages.com/badges/cresset-tools-wick/health.svg)](https://phpackages.com/packages/cresset-tools-wick)
```

###  Alternatives

[jubeki/laravel-code-style

Combine Custom Fixers with the ruleset of Laravel Pint to fix your code style in Laravel Applications/Packages.

56556.0k8](/packages/jubeki-laravel-code-style)[amranidev/laracombee

Recommendation system for laravel

11537.9k1](/packages/amranidev-laracombee)[yieldstudio/tailwind-merge-php

Merge Tailwind CSS classes without style conflicts

4974.6k1](/packages/yieldstudio-tailwind-merge-php)[wujunze/money-wrapper

MoneyPHP Wrapper

103.8k](/packages/wujunze-money-wrapper)

PHPackages © 2026

[Directory](/)[Categories](/categories)[Trending](/trending)[Changelog](/changelog)[Analyze](/analyze)
