A community-driven registry for Claude, Cursor, Windsurf, Cline & more. Not affiliated with Anthropic.
Are you the author? Sign in to claim
Agent Skill for automating DDEV environment setup in TYPO3 extension projects | Claude Code compatible
An Agent Skill for automating DDEV environment setup in TYPO3 extension projects
This is an Agent Skill following the open standard originally developed by Anthropic and released for cross-platform use.
Supported Platforms:
Skills are portable packages of procedural knowledge that work across any AI agent supporting the Agent Skills specification.
This skill helps TYPO3 extension developers quickly set up a complete DDEV development environment with multiple TYPO3 versions. Instead of manually configuring DDEV, this skill automates the entire process - from detecting your extension metadata to generating all configuration files and installing TYPO3.
Before using this skill, ensure you have:
ext_emconf.php or composer.json)Add the Netresearch marketplace once, then browse and install skills:
# Claude Code
/plugin marketplace add netresearch/claude-code-marketplace
Install with any Agent Skills-compatible agent:
npx skills add https://github.com/netresearch/typo3-ddev-skill --skill typo3-ddev
Download the latest release and extract to your agent's skills directory.
git clone https://github.com/netresearch/typo3-ddev-skill.git
composer require netresearch/typo3-ddev-skill
Requires netresearch/composer-agent-skill-plugin.
Once installed, invoke the skill in your TYPO3 extension project directory:
Via slash command:
/typo3-ddev
Via natural language:
Set up DDEV for my TYPO3 extension
The skill will:
.ddev/ files with proper valuesAfter setup, you'll have:
project-root/
├── .ddev/
│ ├── config.yaml
│ ├── docker-compose.web.yaml
│ ├── apache/
│ │ └── apache-site.conf
│ ├── web-build/
│ │ └── Dockerfile
│ └── commands/
│ └── web/
│ ├── install-v11
│ ├── install-v12
│ ├── install-v13
│ └── install-all
├── Classes/
├── Configuration/
├── ext_emconf.php
└── composer.json
Once installed, access TYPO3 at:
Overview Dashboard:
https://your-ext.ddev.site/
TYPO3 14.3 LTS (default / gold standard):
https://v14.your-ext.ddev.site/https://v14.your-ext.ddev.site/typo3/TYPO3 13.4 LTS:
https://v13.your-ext.ddev.site/https://v13.your-ext.ddev.site/typo3/TYPO3 12.4 LTS:
https://v12.your-ext.ddev.site/https://v12.your-ext.ddev.site/typo3/TYPO3 11.5 LTS (ELTS):
https://v11.your-ext.ddev.site/https://v11.your-ext.ddev.site/typo3/Username: admin
Password: Joh316!!
The overview dashboard automatically uses branded templates based on your project:
| Vendor | Template | Branding |
|---|---|---|
netresearch/* | Netresearch | Turquoise (#2F99A4), [n] logo |
| All others | TYPO3 | Orange (#FF8700), TYPO3 swoosh |
Features:
Generate or regenerate the landing page:
ddev generate-index
Template Variables (auto-detected from composer.json):
{{EXTENSION_NAME}} - Human-readable extension name{{COMPOSER_PACKAGE}} - Composer package name{{TER_EXTENSION_KEY}} - TER extension key{{GITHUB_REPO}} - GitHub repository URL{{GIT_BRANCH}} - Current git branch{{GIT_COMMIT_SHORT}} - Short commit hashThe skill creates these custom commands:
# Install specific TYPO3 version
ddev install-v14 # TYPO3 14.3 LTS (default / gold standard)
ddev install-v13 # TYPO3 13.4 LTS
ddev install-v12 # TYPO3 12.4 LTS
ddev install-v11 # TYPO3 11.5 LTS (ELTS)
# Install all versions at once
ddev install-all
# Install Introduction Package (demo content)
ddev install-introduction v13
Test your extension with realistic content using the TYPO3 Introduction Package:
# Install Introduction Package
ddev install-introduction v13
Includes:
For extensions needing additional setup (RTE config, TSconfig, TypoScript), create a custom configuration command:
# Copy template
cp .ddev/templates/commands/web/configure-extension.optional \
.ddev/commands/web/configure-myext
# Customize for your extension's needs
# Add: RTE YAML, Page TSConfig, TypoScript, site package setup
# Run after TYPO3 installation
ddev configure-myext v13
Use Cases:
Pattern Benefits:
See SKILL.md for detailed examples and template structure.
If reinstalling TYPO3:
ddev mysql -e "DROP DATABASE IF EXISTS v13; CREATE DATABASE v13;"
ddev install-v13
Check and restart services:
docker ps --filter "name=ddev-your-ext"
ddev restart
Flush caches:
ddev exec -d /var/www/html/v13 vendor/bin/typo3 cache:flush
The setup creates a unique multi-version environment:
/var/www/{{EXTENSION_KEY}} (your project root)/var/www/html/v11, v12, v13)This architecture allows you to:
By default, the skill supports:
PHP version is set to 8.2 for maximum compatibility.
After generation, you can customize:
PHP Version (.ddev/config.yaml):
php_version: "8.3" # Change to 8.1, 8.3, or 8.5 if needed
PHP Patch Upgrades (.ddev/web-build/Dockerfile.apt):
When DDEV ships an older PHP patch (e.g., 8.5.0RC3) and you need a newer one (e.g., 8.5.1):
# .ddev/web-build/Dockerfile.apt
RUN apt-get update
RUN apt-get install --only-upgrade -y php${PHP_VERSION}-*
Then run ddev restart.
PHP Extensions (.ddev/web-build/Dockerfile):
# Use apt-get, NOT pecl (pecl not available in DDEV)
RUN apt-get update && apt-get install -y php${PHP_VERSION}-pcov
RUN apt-get update && apt-get install -y php${PHP_VERSION}-redis
Custom PHP Settings (.ddev/php/custom.ini):
memory_limit = 512M
max_execution_time = 300
XDebug (enable/disable):
ddev xdebug on # Enable
ddev xdebug off # Disable
Database (Tiered Selection: SQLite/MariaDB/PostgreSQL/MySQL):
The skill uses intelligent tiered database selection based on extension complexity:
🎯 Tier 1: SQLite (Simple Extensions - Development Optimized)
For extensions using only TYPO3 Core APIs (no custom tables, no raw SQL):
# No .ddev/config.yaml database config needed
# TYPO3 installation automatically uses SQLite
Benefits:
⚠️ Development ONLY - Never use SQLite in production. Switch to MariaDB for final testing.
🔧 Tier 2: MariaDB 10.11 (Complex Extensions - Production Parity)
For extensions with custom tables, raw SQL, or unknown complexity:
# Default for complex extensions (.ddev/config.yaml)
database:
type: mariadb
version: "10.11"
Why MariaDB 10.11? Production standard (95% hosting), extension compatibility, 13-36% faster than MySQL 8.
🌐 Tier 3 & 4: Specialized Databases
# PostgreSQL 16 (for GIS, analytics, full-text search)
database:
type: postgres
version: "16"
# MariaDB 11 (forward-looking performance)
database:
type: mariadb
version: "11.4"
# MySQL 8.0 (corporate/Oracle ecosystem)
database:
type: mysql
version: "8.0"
For detailed rationale, see docs/adr/0002-mariadb-default-with-database-alternatives.md.
Caching Service (Valkey or Redis):
The skill provides Valkey 8 as the default caching service (open source, future-proof):
# Default: Valkey 8
cp .ddev/templates/docker-compose.services.yaml.optional .ddev/docker-compose.services.yaml
# Alternative: Redis 7 (for legacy production parity)
cp .ddev/templates/docker-compose.services-redis.yaml.optional .ddev/docker-compose.services.yaml
# Restart DDEV
ddev restart
Why Valkey? True open source (BSD-3), AWS/Google/Oracle backing, 30% smaller than Redis 8, cost-effective. See docs/adr/0001-valkey-default-with-redis-alternative.md for details.
Additional Services (add to .ddev/docker-compose.services.yaml):
# The services template includes: Valkey/Redis, MailPit, Ofelia
# See SKILL.md for complete documentation
Port Conflicts:
# Check what's using ports 80/443
sudo lsof -i :80
sudo lsof -i :443
# Option 1: Stop conflicting services
# Option 2: Change ports in .ddev/config.yaml
router_http_port: "8080"
router_https_port: "8443"
If DDEV ships with an older PHP patch version:
# Create .ddev/web-build/Dockerfile.apt
echo 'RUN apt-get update' > .ddev/web-build/Dockerfile.apt
echo 'RUN apt-get install --only-upgrade -y php${PHP_VERSION}-*' >> .ddev/web-build/Dockerfile.apt
ddev restart
DDEV doesn't include pecl. Use apt-get instead:
# In .ddev/web-build/Dockerfile
RUN apt-get update && apt-get install -y php${PHP_VERSION}-pcov
Place settings in .ddev/php/custom.ini, NOT in /usr/local/etc/php/conf.d/:
# .ddev/php/custom.ini (correct location)
memory_limit = 512M
Check Composer Issues:
ddev ssh
composer diagnose
View Installation Logs:
ddev logs
Retry Installation:
# For specific version
ddev ssh
rm -rf /var/www/html/v13/*
exit
ddev install-v13
Verify Extension Key:
ddev ssh
echo $EXTENSION_KEY # Should match your ext_emconf.php
Check Composer Repository:
ddev ssh
cd /var/www/html/v13
composer config repositories
For complete troubleshooting guide, see references/troubleshooting.md.
Contributions welcome! Please:
git checkout -b feature/amazing-feature)git commit -m 'Add amazing feature')git push origin feature/amazing-feature)This skill is based on the excellent work by Armin Vieweg in ddev-for-typo3-extensions.
This project uses split licensing:
See the individual license files for full terms.
Made with ❤️ for the TYPO3 Community by Netresearch DTT GmbH
A Claude Code skill by Hao (駱君昊) that learns your Facebook voice and auto-posts to FB / IG / Threads / X with a 14-day c
1000+ skills curated from Anthropic, Vercel, Stripe, and other engineering teams
Claude Code skill for YouTube creators — channel audits, video SEO, retention scripts, thumbnails, content strategy, Sho
Design enforcement with memory — keeps your UI consistent across a project