name: github-codespaces-efficiency
description: > Use when this capability is needed.
metadata:
author: drvoss
GitHub Codespaces Efficiency
Audit GitHub Codespaces efficiency with a GitHub-native lens. Focus on devcontainer size,
startup time, machine sizing, prebuild scope, and idle-time discipline without stripping away
tools the team relies on every day.
Why This is Copilot-Exclusive
GitHub Codespaces is a GitHub-native development environment. This skill is most useful when
you can inspect repository configuration, correlate it with gh-based Codespaces metadata,
and turn the result into Copilot-driven GitHub workflow guidance.
When to Use
- Codespaces start too slowly or cost more than the team expects
.devcontainer/ exists and needs trimming, right-sizing, or prebuild tuning
- A team wants guidance on machine sizing, idle timeout, or prebuild scope
- The repository is onboarding Codespaces for the first time and needs a minimal baseline
When NOT to Use
| Instead of github-codespaces-efficiency | Use |
|---|
| Debugging a failing GitHub Actions run | actions-debugging |
| Reviewing PR lifecycle and checks | github-pr-workflow |
| General local development environment setup without Codespaces | ordinary repo setup guidance |
Prerequisites
- Access to
.devcontainer/ when it exists
gh CLI access if you want live Codespaces or machine data
- Understanding of the team's baseline tooling requirements
Load Only What You Need
If no .devcontainer/ exists yet, start with codespaces.md and define a minimal baseline
before optimizing.
Core Workflow
1. Measure first
Get-ChildItem .devcontainer -Recurse -File | Select-Object -ExpandProperty FullName
gh codespace list
$repo = gh repo view --json nameWithOwner --jq ".nameWithOwner"
gh api "/repos/$repo/codespaces/machines"
If gh auth fails or the user lacks repo admin scope, continue with static analysis of
.devcontainer/ files and mark machine-type or prebuild recommendations as unverified.
Look for:
- devcontainer image larger than the task justifies
- too many features, packages, or extensions
- machine types larger than usage patterns support
- missing
devcontainer-lock.json
- prebuilds scoped too broadly
- idle timeout guidance mismatched to actual usage
2. Apply guardrails
- Do not remove tools the team uses every day.
- Do not assume smaller is always better; balance cost against developer throughput.
- Do not turn the devcontainer into a production image unless the team explicitly needs it.
- Prefer incremental changes for existing configs; a greenfield reset is for missing configs, not stable ones.
- Split repo-editable changes from org-level or user-level Codespaces settings.
3. Select the top 3 fixes
Rank by expected monthly savings or startup-time improvement:
- trim the devcontainer
- right-size the machine type
- scope prebuilds to sustained-usage branches
- tune idle timeout
- remove unused extensions or port-forwarding rules
- reduce image size and improve layer caching
Keep only evidence-backed, guardrail-safe recommendations. Return up to three.
4. Verify
- Start a test Codespace when possible and confirm that devcontainer changes still build and boot correctly.
- Validate machine sizing against observed usage when telemetry exists; otherwise mark it as an assumption.
- Treat startup or build regressions as real bugs even if the configuration looks "cleaner" on paper.
Required Output
- Waste sources - top startup-time or cost drivers
- Proposed fixes - up to 3 recommendations backed by audit evidence
- Validation - live, static-only, and unverified areas
- Impact - expected versus measured startup time, spend, and utilization
Tips
- Optimize the slowest, most common developer path first
- Separate startup-time wins from steady-state cost wins
- Prefer documentation changes when the real control lives outside the repository
- Keep prebuild recommendations tight and usage-based
See Also
Source: drvoss/everything-copilot-cli — distributed by TomeVault.