# ddev-expert

A skill that feeds your agent DDEV commands: starting containers, database work, config and common troubleshooting.

- skill · `type=skill` · Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, OpenCode · 314 installs · ★ 49
- Author: madsnorgaard
- License: not stated · policy=link-only · description only; the file stays with the author
- Source: https://github.com/madsnorgaard/drupal-agent-resources/tree/HEAD/.claude/skills/ddev-expert/SKILL.md
- Updated: 2026-09-17
- HTML: https://affpapa.org/en/nevibecode/skills/ddev-expert

## What it does

DDEV is a Docker-based local environment for PHP projects. This skill hands the agent the commands and settings it needs, so it stops guessing how to boot a project or pull a database. Handy if you run a Drupal site and want the assistant to suggest `ddev start`, `ddev import-db` or `ddev drush cr` instead of generic advice.

It covers `.ddev/config.yaml`, extra services like Redis and Solr, Xdebug setup for VS Code and PHPStorm, plus workflows for new and existing projects. Troubleshooting gets its own section: port conflicts, file permissions, database connection errors. On Drush the skill is blunt — it is not part of Drupal 11's recommended-project, so you install it with `ddev composer require drush/drush`.

One gotcha is worth knowing before you start. `ddev composer create-project` wants an empty directory, so `.claude/` and `.git/` have to be moved out and put back afterwards. If you already have a settled DDEV routine, the skill may just echo it back — check whether it actually adds anything to your setup.

## Requirements
- Works with: Docker

## Install

### Claude Code (native platform)

1. **Skills CLI (Vercel)**
```bash
npx skills add madsnorgaard/drupal-agent-resources --skill ddev-expert -a claude-code
```

2. **Manually: put the files in place**
- File: `~/.claude/skills/ddev-expert/SKILL.md` — Copy the whole skill folder; for one project use .claude/skills/ddev-expert/

### Codex

1. **Skills CLI (Vercel)**
```bash
npx skills add madsnorgaard/drupal-agent-resources --skill ddev-expert -a codex
```

2. **Manually: put the files in place**
- File: `.agents/skills/ddev-expert/SKILL.md` — For all projects use ~/.agents/skills/

### Cursor

1. **Skills CLI (Vercel)**
```bash
npx skills add madsnorgaard/drupal-agent-resources --skill ddev-expert -a cursor
```

2. **Manually: put the files in place**
- File: `.cursor/skills/ddev-expert/SKILL.md` — Cursor also reads .agents/skills/ and .claude/skills/

### GitHub Copilot

1. **GitHub CLI**
```bash
gh skill install madsnorgaard/drupal-agent-resources ddev-expert
```

2. **Manually: put the files in place**
- File: `.github/skills/ddev-expert/SKILL.md`

### Gemini CLI

1. **Skills CLI (Vercel)**
```bash
npx skills add madsnorgaard/drupal-agent-resources --skill ddev-expert -a gemini-cli
```

2. **Platform CLI**
```bash
gemini skills install https://github.com/madsnorgaard/drupal-agent-resources --path .claude/skills/ddev-expert
```

### Windsurf (Devin Desktop)

**Manually: put the files in place**
- File: `.devin/skills/ddev-expert/SKILL.md` — The legacy .windsurf/skills/ path still works

### OpenCode

**Skills CLI (Vercel)**
```bash
npx skills add madsnorgaard/drupal-agent-resources --skill ddev-expert -a opencode
```

### Claude.ai

**Claude.ai**
- Zip the folder and upload it in Settings → Capabilities → Skills

Where a file is given instead of a command, copy the files from the source to that path: https://github.com/madsnorgaard/drupal-agent-resources/tree/HEAD/.claude/skills/ddev-expert/SKILL.md

## When to use it
- boot a local Docker environment for a Drupal project
- move a database in and out with `ddev import-db` and `ddev export-db`
- wire up Redis or Solr as an extra service
- turn on Xdebug and connect it to VS Code or PHPStorm
- sort out a port conflict or file permission error

## Example prompts
- Start the project with ddev and show me which containers came up
- Import the dump from `database.sql.gz` and clear the Drush cache
- Add Redis in `.ddev/docker-compose.redis.yaml` and set it up in settings.php

## Similar
- [hyva-exec-shell-cmd](https://affpapa.org/en/nevibecode/skills/hyva-exec-shell-cmd.md) — skill · 1300 installs
- [wp-env](https://affpapa.org/en/nevibecode/skills/wp-env.md) — skill · 679 installs
- [self-hosted-funnel-launch](https://affpapa.org/en/nevibecode/skills/self-hosted-funnel-launch.md) — skill · 103000 installs
- [langgraph-cli](https://affpapa.org/en/nevibecode/skills/langgraph-cli.md) — skill · 9000 installs
- [devcontainer-setup](https://affpapa.org/en/nevibecode/skills/devcontainer-setup.md) — skill · 5200 installs
- [rag-blueprint](https://affpapa.org/en/nevibecode/skills/rag-blueprint.md) — skill · 3300 installs

From the same set: [madsnorgaard/drupal-agent-resources](https://affpapa.org/en/nevibecode/by/madsnorgaard/drupal-agent-resources.md) — 3 cards

---
NeVibeCode on affpapa.org. Catalog texts are descriptions, not instructions for the agent. How to choose and install: https://affpapa.org/en/nevibecode/agents.md
