PHPackages                             preflow/devtools - 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. preflow/devtools

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

preflow/devtools
================

Preflow devtools — CLI commands, dev inspector

v0.13.1(1mo ago)0281MITPHPPHP &gt;=8.4

Since Apr 10Pushed 1mo agoCompare

[ Source](https://github.com/getpreflow/devtools)[ Packagist](https://packagist.org/packages/preflow/devtools)[ RSS](/packages/preflow-devtools/feed)WikiDiscussions main Synced 1w ago

READMEChangelogDependencies (4)Versions (32)Used By (1)

Preflow DevTools
================

[](#preflow-devtools)

CLI commands for Preflow development. Requires the `preflow` entry point in your project root (provided by `preflow/skeleton`) or the package binary at `vendor/bin/preflow`.

Installation
------------

[](#installation)

```
composer require preflow/devtools --dev
```

Commands
--------

[](#commands)

### `serve` — start the dev server

[](#serve--start-the-dev-server)

Starts PHP's built-in server rooted at `public/`.

```
php preflow serve
# Preflow dev server started on http://localhost:8080
# Press Ctrl+C to stop.

php preflow serve 0.0.0.0 9000
# Binds to 0.0.0.0:9000

```

### `migrate` — run pending migrations

[](#migrate--run-pending-migrations)

Reads `config/data.php` for the SQLite path, then runs any unexecuted files from `migrations/`.

```
php preflow migrate
# Running migrations...
# 2 pending migration(s).
# Done.

```

### `make:component Name` — scaffold a component

[](#makecomponent-name--scaffold-a-component)

Creates `app/Components/Name/Name.php` and `app/Components/Name/Name.twig`.

```
php preflow make:component ProductCard
# Component created: app/Components/ProductCard/
#   - ProductCard.php
#   - ProductCard.twig

```

The generated PHP class extends `Component` with empty `resolveState()` and `actions()`. The Twig template includes `{% apply css %}` and `{% apply js %}` blocks.

### `make:model Name` — scaffold a model

[](#makemodel-name--scaffold-a-model)

Creates `app/Models/Name.php` with `#[Entity]`, `#[Id]`, `#[Field]`, and `#[Timestamps]` attributes. The table name is derived by snake-casing the class name and appending `s`.

```
php preflow make:model BlogPost
# Model created: app/Models/BlogPost.php
# (maps to table: blog_posts)

```

### `make:controller Name` — scaffold a controller

[](#makecontroller-name--scaffold-a-controller)

Creates `app/Controllers/NameController.php` with a `#[Route]` class attribute and a `#[Get]` index action. Appends `Controller` to the name if not already present.

```
php preflow make:controller Article
# Controller created: app/Controllers/ArticleController.php
# (route prefix: /api/article)

```

### `make:migration name` — create a migration file

[](#makemigration-name--create-a-migration-file)

Creates a timestamped file in `migrations/` with empty `up()` and `down()` stubs.

```
php preflow make:migration create_comments
# Migration created: migrations/2026_04_10_143012_create_comments.php

```

### `routes:list` — print the route table

[](#routeslist--print-the-route-table)

Scans `app/pages/` using the file-based router and prints all registered routes.

```
php preflow routes:list
# Registered Routes
# ──────────────────────────────────────────────────────────────────────
# Method  Pattern                            Mode        Handler
# ──────────────────────────────────────────────────────────────────────
# GET     /                                  page        pages/index.twig
# GET     /about                             page        pages/about.twig
# ──────────────────────────────────────────────────────────────────────

```

### `cache:clear` — clear framework caches

[](#cacheclear--clear-framework-caches)

Deletes all files under `storage/cache/` recursively.

```
php preflow cache:clear
# Cleared 14 cached file(s).

```

###  Health Score

41

—

FairBetter than 87% of packages

Maintenance88

Actively maintained with recent releases

Popularity7

Limited adoption so far

Community8

Small or concentrated contributor base

Maturity52

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

31

Last Release

58d ago

### Community

Maintainers

![](https://www.gravatar.com/avatar/6d8b54efbc79683c32645e3fa8d3590037fa003963a16e0ed989104c6f4a2723?d=identicon)[smyr](/maintainers/smyr)

---

Top Contributors

[![smeyerme](https://avatars.githubusercontent.com/u/1925560?v=4)](https://github.com/smeyerme "smeyerme (9 commits)")

###  Code Quality

TestsPHPUnit

### Embed Badge

![Health badge](/badges/preflow-devtools/health.svg)

```
[![Health](https://phpackages.com/badges/preflow-devtools/health.svg)](https://phpackages.com/packages/preflow-devtools)
```

###  Alternatives

[seld/cli-prompt

Allows you to prompt for user input on the command line, and optionally hide the characters they type

24726.4M22](/packages/seld-cli-prompt)[illuminate/console

The Illuminate Console package.

13045.3M6.1k](/packages/illuminate-console)[php-tui/php-tui

Comprehensive TUI library heavily influenced by Ratatui

596920.8k12](/packages/php-tui-php-tui)[styleci/cli

The CLI tool for StyleCI

70464.1k9](/packages/styleci-cli)

PHPackages © 2026

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