Token导航 LogoToken导航

Agent Skill · 运维和基础设施

frankenphp(frankenphp 命令行)

frankenphp 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

frankenphp 是运维和基础设施类 Agent Skill,可用宿主为 Codex、Claude、Cursor、Gemini CLI,通过GitHub 仓库获取,权限为接触敏感数据;许可证为 MIT,第三方扫描有未通过项,按安装量在运维和基础设施类的 2,449 个 Skill 里排第 1,003。

总安装 1,014周安装 41GitHub Stars 31下载 318核验 2026-05-01

安装说明

本站只整理中文说明,不托管安装包,也不代用户安装。
GitHub
许可证
MIT

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:frankenphp(frankenphp 命令行)
来源仓库:https://github.com/rawveg/skillsforge-marketplace
仓库路径:skills/frankenphp
安装命令:
npx skills add https://github.com/rawveg/skillsforge-marketplace --skill frankenphp
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。不同来源提供的安装方式可能略有差异;本站展示可直接复制的安装命令,安装前请核对来源页面。

skills.shnpx skills
npx skills add https://github.com/rawveg/skillsforge-marketplace --skill frankenphp

这个 Skill 是做什么的

运维和基础设施类 Skill 处理部署、监控、日志和云资源,多数需要较高的执行权限。

用于处理 GitHub 仓库、Issue 和 Pull Request 协作信息。支持代码变更追踪、仓库状态整理和协作事项归纳,提升开发效率。可结合原始 README 和安装命令进一步验证功能细节和使用限制。安装前建议确认权限范围和维护状态,避免触发不必要的网络请求。

使用时需注意信息时效性,优先基于最新提交和历史记录进行分析。

来源仓库内路径:skills/frankenphp

上手步骤

4 步
  1. 1

    确认自己的宿主工具

    公开资料标注支持 Codex、Claude、Cursor、Gemini CLI;先确认自己用的是其中之一,再按对应工具的 Skills 目录放置。

  2. 2

    拿到安装命令

    可以直接复制的命令是 npx skills add https://github.com/rawveg/skillsforge-marketplace --skill franken…;命令里的占位符换成自己的路径或密钥再执行。

  3. 3

    安装后重启宿主

    命令执行完要完全退出宿主工具再打开,让新装的 Skill 被重新扫描到,否则列表里可能看不到。

  4. 4

    按最小权限试用

    它需要接触敏感数据,先在测试目录或测试账号里跑,确认没问题再放到正式项目。

常见问题

6 条

frankenphp 怎么安装?

在终端执行 npx skills add https://github.com/rawveg/skillsforge-marketplace --skill frankenphp。装完完全退出宿主工具再打开,让它重新扫描本地 Skill。

frankenphp 支持哪些 AI 工具?

公开资料标注支持 Codex、Claude、Cursor、Gemini CLI。其他工具只要能读取本地 Skill 目录,一般也能手动放进去,但要自己确认触发方式是否一致。

frankenphp 需要什么权限?

权限级别是接触敏感数据。该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

frankenphp 是免费的吗?

来源标注的许可证是 MIT。本站不代收任何费用,也不托管安装包;能否商用、要不要署名,以许可证原文为准。

frankenphp 用的人多吗?

公开数据是累计安装 1,014 次,近一周安装 41 次,下载 318 次,GitHub 31 星。这些数字来自第三方目录统计,只能当作热度参考,不代表质量或安全性。

frankenphp 安全吗?

第三方扫描有未通过项,风险较高。除非你确认过源码,否则不建议直接安装到常用环境。

值得选的地方和要先想清楚的地方

值得选的地方

  • 同时适配 4 种工具,换客户端不用重新找替代品。
  • 3 个目录同时收录,说明这个 Skill 流传比较广。
  • 许可证明确为 MIT,商用和分发边界好判断。

先想清楚的地方

  • 需要接触敏感数据,装到常用环境前要先评估影响面。
  • 第三方扫描存在提醒项或未通过项,需要人工逐条确认。
  • 第三方目录整理,版本更新和行为细节以来源仓库为准。

适不适合你

更适合

  • 已经在用 Codex,想直接扩展它能力的人。
  • 需要处理运维和基础设施类任务、又不想每次都手写提示词的人。

不太适合

  • 环境里有大量密钥、凭证,不方便给第三方 Skill 读取的人。
  • 需要厂商级技术支持和 SLA 的生产系统。

运维和基础设施类 Skill 对比

6 个同类
Skill总安装GitHub 星权限许可证扫描
brainstorming

头脑风暴 · Codex、Claude

3,148,776173,131操作浏览器MIT通过
copywriting

文案写作 · Codex、Claude

1,996,72425,583需要联网MIT通过
openclaw-secure-linux-cloud

OpenClaw secure linux cloud 命令行 · Codex、Claude

1,853,08840接触敏感数据未明确未通过
xget

xget 命令行 · Codex、Claude

1,799,28040执行命令未明确未通过
requesting-code-review

代码审查请求 · Codex、Claude

1,590,144173,103权限未标注MIT通过
frankenphp

frankenphp 命令行 · 本页

1,01431接触敏感数据MIT未通过

按安装量取同分类前几名;数字来自第三方目录统计,只作热度参考,不代表质量结论。

SKILL.md 原文

FrankenPHP Skill

Comprehensive assistance with FrankenPHP development - a modern PHP application server built on top of the Caddy web server. FrankenPHP enables persistent PHP processes with worker mode, automatic HTTPS, HTTP/2, HTTP/3, and real-time capabilities via Mercure integration.

When to Use This Skill

This skill should be triggered when:

  • Setting up or configuring FrankenPHP server
  • Implementing FrankenPHP worker mode for performance optimization
  • Integrating FrankenPHP with Laravel, Symfony, or other PHP frameworks
  • Deploying PHP applications with Docker using FrankenPHP
  • Converting traditional PHP apps to use persistent workers
  • Configuring automatic HTTPS, HTTP/2, or HTTP/3
  • Implementing real-time features with Mercure
  • Creating standalone, self-executable PHP applications
  • Optimizing PHP application performance with persistent processes
  • Troubleshooting FrankenPHP worker mode or configuration issues

Quick Reference

Installation & Basic Server

Install via curl (Linux/macOS):

curl https://frankenphp.dev/install.sh | sh
mv frankenphp /usr/local/bin/

# Start server in current directory
frankenphp php-server

Install via Homebrew:

brew install dunglas/frankenphp/frankenphp
frankenphp php-server

Quick Docker deployment:

docker run -v $PWD:/app/public \
    -p 80:80 -p 443:443 -p 443:443/udp \
    dunglas/frankenphp

Basic Worker Mode

Start worker with standalone binary:

frankenphp php-server --worker /path/to/your/worker/script.php

Docker with worker mode:

docker run \
    -e FRANKENPHP_CONFIG="worker /app/public/index.php" \
    -v $PWD:/app \
    -p 80:80 -p 443:443 -p 443:443/udp \
    dunglas/frankenphp

Worker with 42 processes:

docker run \
    -e FRANKENPHP_CONFIG="worker ./public/index.php 42" \
    -v $PWD:/app \
    -p 80:80 -p 443:443 -p 443:443/udp \
    dunglas/frankenphp

Custom Worker Script

Basic worker pattern:

<?php
// public/index.php

ignore_user_abort(true);

require __DIR__.'/vendor/autoload.php';

$myApp = new \App\Kernel();
$myApp->boot();

$handler = static function () use ($myApp) {
    try {
        echo $myApp->handle($_GET, $_POST, $_COOKIE, $_FILES, $_SERVER);
    } catch (\Throwable $exception) {
        (new \MyCustomExceptionHandler)->handleException($exception);
    }
};

$maxRequests = (int)($_SERVER['MAX_REQUESTS'] ?? 0);
for ($nbRequests = 0; !$maxRequests || $nbRequests < $maxRequests; ++$nbRequests) {
    $keepRunning = \frankenphp_handle_request($handler);
    $myApp->terminate();
    gc_collect_cycles();
    if (!$keepRunning) break;
}

$myApp->shutdown();

Laravel Integration

Laravel Octane installation:

composer require laravel/octane
php artisan octane:install --server=frankenphp
php artisan octane:frankenphp

Laravel with Docker:

docker run -p 80:80 -p 443:443 -p 443:443/udp \
    -v $PWD:/app \
    dunglas/frankenphp

Laravel Caddyfile:

{
	frankenphp
}

localhost {
	root public/
	encode zstd br gzip
	php_server {
		try_files {path} index.php
	}
}

Octane with file watching:

php artisan octane:frankenphp --watch

Symfony Integration

Symfony worker with runtime:

composer require runtime/frankenphp-symfony

docker run \
    -e FRANKENPHP_CONFIG="worker ./public/index.php" \
    -e APP_RUNTIME=Runtime\\FrankenPhpSymfony\\Runtime \
    -v $PWD:/app \
    -p 80:80 -p 443:443 -p 443:443/udp \
    dunglas/frankenphp

Worker Management

Watch files for changes (auto-reload):

frankenphp php-server --worker /path/to/worker.php \
    --watch="/path/to/your/app/**/*.php"

Restart workers via API:

curl -X POST http://localhost:2019/frankenphp/workers/restart

Configure max consecutive failures (Caddyfile):

frankenphp {
    worker {
        max_consecutive_failures 10
    }
}

Superglobals in Worker Mode

Accessing worker-bound vs request-bound values:

<?php
// Capture worker-level values before request loop
$workerServer = $_SERVER;

$handler = static function () use ($workerServer) {
    var_dump($_SERVER);      // Current request superglobals
    var_dump($workerServer); // Original worker values
};

Key Concepts

Worker Mode

FrankenPHP's worker mode keeps your PHP application loaded in memory between requests, dramatically improving performance. Instead of bootstrapping your application for each request (traditional PHP), the application boots once and handles thousands of requests with the same process.

Benefits:

  • Boot your application once, handle requests in milliseconds
  • Persistent database connections
  • Preloaded classes and configuration
  • Significantly reduced memory overhead

Key Pattern: Use frankenphp_handle_request($handler) to process each request within a persistent loop, calling gc_collect_cycles() after each request to prevent memory leaks.

Caddy Integration

FrankenPHP is built on top of Caddy, meaning you get:

  • Automatic HTTPS - Zero-config TLS certificates via Let's Encrypt
  • HTTP/2 & HTTP/3 - Modern protocol support out of the box
  • Powerful configuration - Use Caddyfile for server configuration

Early Hints (103 Status)

FrankenPHP supports HTTP 103 Early Hints, allowing browsers to start loading critical resources (CSS, JS, fonts) while the server is still generating the full response.

Mercure Real-Time

Built-in support for Mercure protocol enables real-time push notifications from server to browser using Server-Sent Events (SSE). Perfect for live updates, notifications, and collaborative features.

Reference Files

This skill includes comprehensive documentation in references/:

  • other.md - Core FrankenPHP documentation including installation, configuration, worker mode, framework integration, deployment, and production setup

The reference file contains detailed information from the official FrankenPHP documentation at https://frankenphp.dev/docs/

Use the reference file when you need:

  • Detailed installation instructions for different platforms
  • Advanced Caddyfile configuration examples
  • Framework-specific integration patterns (Laravel, Symfony, WordPress, etc.)
  • Production deployment strategies
  • Performance optimization techniques
  • Static binary compilation guides
  • Docker configuration options

Working with This Skill

For Beginners

  1. Start with basic installation - Use the curl install script or Docker for quickest setup
  2. Run traditional PHP first - Use frankenphp php-server without worker mode to verify setup
  3. Test with simple scripts - Create a basic index.php to understand the server behavior
  4. Learn Caddyfile basics - Understand how to configure domains and paths
  5. Gradually adopt worker mode - Once comfortable, convert to worker mode for performance

For Laravel Developers

  1. Use Laravel Octane - The official integration provides the smoothest experience
  2. Start with Docker - Use the official dunglas/frankenphp image
  3. Configure Mercure - Add real-time capabilities to your Laravel app
  4. Optimize workers - Tune worker count based on your traffic patterns
  5. Use file watching - Enable --watch during development for auto-reload

For Symfony Developers

  1. Install Symfony runtime - Use runtime/frankenphp-symfony package
  2. Set APP_RUNTIME - Configure environment variable for automatic integration
  3. Use worker mode - Leverage persistent processes for maximum performance
  4. Deploy with Docker - Use official containers for production

For Production Deployment

  1. Review worker configuration - Set appropriate worker count and max requests
  2. Configure failure handling - Set max_consecutive_failures threshold
  3. Enable monitoring - Use Caddy admin API for health checks and metrics
  4. Set up log analytics - Configure structured JSON logs
  5. Plan restart strategy - Use MAX_REQUESTS or manual API restarts to prevent memory leaks
  6. Test with load - Validate performance under realistic traffic patterns

For Docker Users

  1. Use official images - Start with dunglas/frankenphp or dunglas/frankenphp:static-builder
  2. Mount your app - Volume mount your code to /app
  3. Configure via ENV - Use FRANKENPHP_CONFIG for worker setup
  4. Expose ports - Map 80, 443 (TCP), and 443 (UDP) for HTTP/3
  5. Use localhost - Access via https://localhost (not 127.0.0.1)

Common Patterns

Performance Optimization

  • Use worker mode for all production applications
  • Set MAX_REQUESTS to restart workers periodically (prevents memory leaks)
  • Call gc_collect_cycles() after each request in custom workers
  • Tune worker count based on CPU cores and memory available
  • Enable HTTP/2 push for critical assets

Development Workflow

  • Use --watch flag for automatic reload during development
  • Traditional mode for debugging (easier to trace issues)
  • Docker for consistency across development and production environments
  • Caddyfile per environment (dev, staging, prod) with different configs

Error Handling

  • Wrap handlers in try-catch blocks within worker loop
  • Log exceptions but keep worker running
  • Use max_consecutive_failures to restart problematic workers
  • Monitor worker health via Caddy admin API

Resources

Official Documentation

Framework Integration

  • Laravel Octane: Official integration via laravel/octane package
  • Symfony Runtime: Use runtime/frankenphp-symfony package
  • WordPress, Drupal, Joomla, TYPO3: Supported frameworks
  • API Platform: First-class FrankenPHP support

Docker Images

  • Production: dunglas/frankenphp
  • Static builder: dunglas/frankenphp:static-builder
  • Latest tag: Always includes PHP 8.4+ and popular extensions

Notes

  • FrankenPHP includes PHP 8.4 and most popular extensions in static binaries
  • Can be embedded as a Go library via net/http for custom applications
  • Worker mode requires careful superglobals management (use closures to capture state)
  • HTTPS is automatic via Let's Encrypt (no certificate configuration needed)
  • HTTP/3 support requires UDP port 443 to be accessible
  • File watching uses system-specific file monitoring (efficient, no polling)

Troubleshooting

Worker Not Starting

  • Check worker script path is absolute or relative to document root
  • Verify worker script has no syntax errors (php -l script.php)
  • Check file permissions (script must be readable)
  • Review logs for initialization errors

Memory Leaks in Workers

  • Call gc_collect_cycles() after each request
  • Set MAX_REQUESTS to restart workers periodically
  • Avoid global state accumulation
  • Check for unclosed resources (files, connections)

Performance Issues

  • Increase worker count (FRANKENPHP_CONFIG="worker./index.php 42")
  • Check worker restart frequency (too frequent = performance loss)
  • Review database connection pooling
  • Monitor memory usage per worker
  • Verify no blocking operations in request handler

HTTPS Not Working

  • Ensure ports 80 and 443 are accessible
  • Check firewall rules
  • Verify domain DNS points to server
  • Use localhost (not 127.0.0.1) for local development
  • Accept self-signed certificate in browser for local testing

Updating

To stay current with FrankenPHP:

  1. Follow the official GitHub repository for updates
  2. Review changelog for breaking changes
  3. Test updates in staging environment
  4. Update Docker images regularly (docker pull dunglas/frankenphp:latest)
  5. Check framework-specific integration docs for version compatibility

平台分布

Claude Code

28.68%
按下载量换算91

Antigravity

22.18%
按下载量换算71

windsurf

15.01%
按下载量换算48

trae

12.62%
按下载量换算40

Codex

8.03%
按下载量换算26

OpenCode

3.62%
按下载量换算12

安全审计

Gen Agent Trust Hub

未通过

Socket

通过

Snyk

通过

权限和风险

接触敏感数据

该 Skill 可能接触密钥、Token、环境变量或敏感配置,应进入高风险复核队列,默认不自动发布。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。来源安全扫描存在提醒或未通过项,安装前请自行复核。

继续浏览同类 Skills