If you find this add-on useful, please star it on GitHub — stars show appreciation and help maintainers know their work matters.
This DDEV add-on installs GitHub Copilot CLI inside the DDEV web container and automatically shares your host GitHub CLI and Copilot configuration — including authentication and Copilot settings — with no additional setup required.
Once installed, running copilot inside ddev ssh or ddev exec uses a writable copy of your host configuration and a token derived from your host gh authentication.
gh) authenticated on the host (for configuration sharing and COPILOT_GITHUB_TOKEN)ddev add-on get e0ipso/ddev-assistant-copilot
ddev restart
After installation, commit the .ddev directory to version control.
$PATH for every shellnpm install -g @github/copilot into ~/.local/bin (warns and continues if npm install fails)~/.config/gh/ and ~/.copilot/ trees are mounted read-only under ~/.cred-seed/, then mirrored into the writable container directories on every restart:
~/.config/gh/ — GitHub CLI configuration and authentication (e.g. hosts.yml)~/.copilot/ — Copilot CLI configuration (e.g. config.json, hooks)COPILOT_GITHUB_TOKEN on shell startup from in-container gh auth token when available, while preserving any token explicitly injected into the container environment. Interactive shells (.bashrc, .profile) and non-interactive shells (/etc/bash.env via BASH_ENV) run the lookup dynamically instead of storing the literal token value. The add-on defaults token lookup to github.com and supports an optional configured GitHub username for multi-account setups.gh and copilot are on $PATH for both interactive shells (ddev ssh) and non-interactive commands (ddev exec)The add-on ships with this non-secret default:
web_environment:
- DDEV_ASSISTANT_COPILOT_GH_HOSTNAME=github.com
# - DDEV_ASSISTANT_COPILOT_GH_USER=your-github-username
Use this when you have multiple GitHub accounts, such as a personal account and
a work account, authenticated for the same host. Uncomment and set
DDEV_ASSISTANT_COPILOT_GH_USER in your installed
.ddev/config.assistant-copilot.yaml to tell the add-on which account should
provide COPILOT_GITHUB_TOKEN.
If either variable is empty or removed, the add-on does not pass that option to
gh auth token, allowing GitHub CLI’s default account/host selection to apply.
# Open a shell with Copilot CLI available
ddev ssh
copilot
# Run Copilot CLI non-interactively
ddev exec copilot --version
# GitHub CLI is also available
ddev exec gh auth status
You can install Copilot CLI and gh inside a DDEV container yourself. This add-on automates the parts that are easy to get wrong or forget:
| This add-on | Manual setup | |
|---|---|---|
| GitHub CLI | Installed in the image layer via official apt repo; on $PATH for every shell |
Must install and re-install after image rebuilds |
| Copilot CLI | npm install -g @github/copilot on every start into ~/.local/bin |
Must run npm install manually; easy to lose on restart |
| Config approach | Seeds writable container ~/.config/gh/ and ~/.copilot/ from your host config on restart — zero setup if you already use gh and Copilot on the host |
Must copy or symlink config by hand; stale container files persist |
| Authentication | COPILOT_GITHUB_TOKEN exported automatically from in-container gh auth token when available, with optional hostname/user selection and without writing literal tokens into shell startup files |
Must export token manually in every shell type |
| Non-interactive shells | BASH_ENV=/etc/bash.env ensures ddev exec gets PATH and token |
ddev exec often misses PATH and env vars |
| Mount safety | Pre-start hook ensures host config directories exist before Docker bind-mounts them | Bind-mount fails silently or blocks start if dirs are missing |
| Tests / CI | BATS integration tests, GitHub Actions CI matrix (DDEV stable + HEAD), daily scheduled runs | No automated verification |
This add-on does one thing: install GitHub Copilot CLI into your DDEV container and share your existing host configuration. Nothing else.
Contributed and maintained by @e0ipso
If you find this add-on useful, please star it on GitHub — stars show appreciation and help maintainers know their work matters.