PHPackages                             sandermuller/repo-new - 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. [CLI &amp; Console](/categories/cli)
4. /
5. sandermuller/repo-new

ActiveLibrary[CLI &amp; Console](/categories/cli)

sandermuller/repo-new
=====================

CLI wizard for scaffolding repos using sandermuller/repo-init's playbook.

1.0.0(2w ago)112[1 PRs](https://github.com/SanderMuller/repo-new/pulls)MITPHPPHP ^8.3CI passing

Since May 17Pushed 3d agoCompare

[ Source](https://github.com/SanderMuller/repo-new)[ Packagist](https://packagist.org/packages/sandermuller/repo-new)[ Docs](https://github.com/sandermuller/repo-new)[ RSS](/packages/sandermuller-repo-new/feed)WikiDiscussions main Synced 1w ago

READMEChangelog (9)Dependencies (24)Versions (11)Used By (0)

sandermuller/repo-new
=====================

[](#sandermullerrepo-new)

[![Latest Version on Packagist](https://camo.githubusercontent.com/72efd16e30b003ad79c98bf867d2eace56f53ae61b1ebca3eae4931f8990f6db/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f762f73616e6465726d756c6c65722f7265706f2d6e65772e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/sandermuller/repo-new)[![GitHub Tests Action Status](https://camo.githubusercontent.com/609f4289aa5785535697c371e247d71d3d79c75915a0afec3b3a78ccbd571f00/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f616374696f6e732f776f726b666c6f772f7374617475732f73616e6465726d756c6c65722f7265706f2d6e65772f72756e2d74657374732e796d6c3f6272616e63683d6d61696e266c6162656c3d7465737473267374796c653d666c61742d737175617265)](https://github.com/sandermuller/repo-new/actions/workflows/run-tests.yml)[![Total Downloads](https://camo.githubusercontent.com/7a22c35dc2ceea4d63a7c647fadce191c326dc7be353fd6b8169a8699d3e6c93/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f64742f73616e6465726d756c6c65722f7265706f2d6e65772e7376673f7374796c653d666c61742d737175617265)](https://packagist.org/packages/sandermuller/repo-new)[![License](https://camo.githubusercontent.com/dcd36c220351c7e12666e237f4b9e48e4c2db934a796e6e31843b6f42c0fda64/68747470733a2f2f696d672e736869656c64732e696f2f7061636b61676973742f6c2f73616e6465726d756c6c65722f7265706f2d6e65772e7376673f7374796c653d666c61742d737175617265)](LICENSE)

Interactive CLI wizard that scaffolds a new PHP repo against the canonical Sander / hihaho baseline defined by [`sandermuller/repo-init`](https://github.com/SanderMuller/repo-init). Same UX as `laravel new` — pick a category, answer a few questions, and get a repo with Composer dependencies installed, CI and quality tooling wired up, AI tooling synced, and `composer test` green on the first run.

Install (one-time per machine)
------------------------------

[](#install-one-time-per-machine)

```
composer global require sandermuller/repo-new
```

Make sure your global Composer `bin` directory (`~/.composer/vendor/bin` or `~/.config/composer/vendor/bin`) is on your `PATH`. `sandermuller/repo-init` — the source of the stubs and dependency lists — is pulled in automatically as a dependency; no separate install needed.

On first run, `repo` syncs its bundled AI skills to your user scope (`~/.claude/skills/`, `~/.codex/skills/`, etc.) so they're available to every agent on the machine — no manual `boost sync --scope=user` step needed. Subsequent runs no-op via a per-version sentinel. Set `BOOST_SKIP_AUTOSYNC=1` to disable.

Use
---

[](#use)

Interactive (recommended) — the wizard walks you through every choice:

```
repo new
```

Non-interactive (CI / scripting) — supply choices as flags:

```
repo new my-laravel-app \
  --type=laravel-project \
  --vendor=acme \
  --description="My new Laravel app" \
  --php=8.4 \
  --test-framework=phpunit
```

See `repo new --help` for the full flag list.

Categories
----------

[](#categories)

repo-new scaffolds seven repo categories. Choose one interactively, or pass `--type`:

Category (`--type`)What it scaffoldsRuntime dependencies wired inCategory options`laravel-project`A full Laravel application via `laravel new --boost`, with the shared tooling baseline overlaid on topLaravel skeleton (`laravel new`)`--with-hihaho-rules`, `--with-security-advisories``laravel-package`A Laravel package — `spatie/laravel-package-tools`-based service provider, `src/`, `tests/`, publishable config`illuminate/contracts`, `illuminate/support`, `spatie/laravel-package-tools``--laravel=``php-package`A framework-agnostic PHP librarynone (pure library)—`phpstan-extension`A PHPStan rule / extension package`phpstan/phpstan: ^2``--laravel-aware` (swaps in `larastan/larastan`)`rector-extension`A Rector rule / ruleset package`rector/rector: ^2`, `symplify/rule-doc-generator-contracts``--laravel-aware` (adds `driftingly/rector-laravel`)`composer-plugin`A Composer plugin — command provider and/or event subscriber skeleton`composer-plugin-api: ^2.6``--plugin-shape=command-provider|event-subscriber|both|none``skill-bundle`A boost-core skill bundle — pure-markdown AI skills under `resources/boost/skills/`, no PHP source or test runner`sandermuller/boost-core`—What it sets up
---------------

[](#what-it-sets-up)

Beyond the category-specific source skeleton above, every scaffolded repo gets the same baseline:

- **Project files** — `composer.json` with PSR-4 autoloading, `src/` + `tests/`, plus `README.md`, `CHANGELOG.md`, `LICENSE`, `SECURITY.md`, `.editorconfig`, `.gitignore`, `.gitattributes` (lean published archive), and `.mcp.json`.
- **CI workflows** — GitHub Actions for the test suite, PHPStan, Pint, Rector, and changelog automation, plus a Dependabot config.
- **Quality tooling, configured and installed** — Pint (`pint.json`), PHPStan (`phpstan-baseline.neon`) with the strict / deprecation / PHPUnit / disallowed-calls / Symplify extension set, Rector with `type-perfect`, and `type-coverage` + `cognitive-complexity` analysis. All wired into `composer` scripts.
- **Test suite** — Pest or PHPUnit. PHPStan / Rector extensions and Laravel projects default to PHPUnit; other categories default to Pest (PHPUnit for the `hihaho` vendor). Override with `--test-framework`.
- **AI tooling** — `sandermuller/package-boost-php` + `boost-core` installed and a `boost.php` config scaffolded — the agents, dependency vendors, and `sandermuller/boost-skills` capability tags to sync (tags chosen interactively or via `--skill-tags`; package categories only — `laravel-project` uses `laravel/boost` instead). Then `vendor/bin/boost sync` generates `.ai/`, `.claude/`, `.agents/`, `.cursor/`, `AGENTS.md`, `CLAUDE.md`, and the per-agent skill directories.

Per-category runtime and dev dependencies come from `repo-init`'s `references/per-category-deps.yml`, so the dependency set always matches the current canonical baseline.

`skill-bundle` is the lean exception: it ships pure-markdown skills with no PHP, so it skips the PHP toolchain (PHPStan, Rector, PHPUnit, `.mcp.json`, the `phpstan` / `rector-check` workflows) and the test runner — keeping Pint, `lean-package-validator`, the meta files, and the `pint-check` + `update-changelog` workflows.

How it works
------------

[](#how-it-works)

1. The wizard collects: category → vendor → package name → description → PHP version → (Laravel constraint for `laravel-package`, plugin shape for `composer-plugin`) → test framework → `boost-skills` tags → opt-ins.
2. Runs `laravel new --boost` (for `laravel-project`) or copies the category stubs (for package categories) from the installed `repo-init`.
3. Substitutes placeholders (`__VENDOR__`, `__NAMESPACE__`, `__PACKAGE_STUDLY__`, …) across `composer.json`, source files, and CI workflows.
4. Pre-allows Composer plugins (`phpstan/extension-installer`, `pestphp/pest-plugin`) before requiring dependencies, so install never aborts on the plugin allowlist.
5. Runs `composer install` and the per-category `composer require` lists.
6. Fires `vendor/bin/boost sync` to generate the AI tooling files.
7. Initializes a git repo (add `--commit` for an initial commit) and prints a copy-pasteable handoff prompt for Claude or your agent of choice.

Testing
-------

[](#testing)

```
composer test
```

Changelog
---------

[](#changelog)

See [CHANGELOG.md](CHANGELOG.md) and [releases](https://github.com/SanderMuller/repo-new/releases).

Security
--------

[](#security)

See [SECURITY.md](SECURITY.md).

License
-------

[](#license)

MIT — see [LICENSE](LICENSE).

###  Health Score

45

—

FairBetter than 91% of packages

Maintenance98

Actively maintained with recent releases

Popularity10

Limited adoption so far

Community6

Small or concentrated contributor base

Maturity55

Maturing project, gaining track record

 Bus Factor1

Top contributor holds 100% of commits — single point of failure

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

10

Last Release

17d ago

Major Versions

0.8.0 → 1.0.02026-05-23

### Community

Maintainers

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

---

Top Contributors

[![SanderMuller](https://avatars.githubusercontent.com/u/9074391?v=4)](https://github.com/SanderMuller "SanderMuller (36 commits)")

---

Tags

phpsandermullerrepo-new

###  Code Quality

TestsPest

Static AnalysisPHPStan, Rector

Code StyleLaravel Pint

Type Coverage Yes

### Embed Badge

![Health badge](/badges/sandermuller-repo-new/health.svg)

```
[![Health](https://phpackages.com/badges/sandermuller-repo-new/health.svg)](https://phpackages.com/packages/sandermuller-repo-new)
```

###  Alternatives

[matomo/matomo

Matomo is the leading Free/Libre open analytics platform

21.6k38.2k](/packages/matomo-matomo)[jolicode/castor

A lightweight and modern task runner. Automate everything. In PHP.

54642.4k4](/packages/jolicode-castor)[drupal/core

Drupal is an open source content management platform powering millions of websites and applications.

21764.8M1.6k](/packages/drupal-core)[sulu/sulu

Core framework that implements the functionality of the Sulu content management system

1.3k1.4M195](/packages/sulu-sulu)[drupal/core-recommended

Locked core dependencies; require this project INSTEAD OF drupal/core.

6941.5M395](/packages/drupal-core-recommended)[kimai/kimai

Kimai - Time Tracking

4.7k8.7k1](/packages/kimai-kimai)

PHPackages © 2026

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