Run this project in a consistent Node.js 24 + TypeScript environment without installing toolchains on your machine. Dependencies install automatically; your repo is the workspace inside the container.
- Same stack for everyone — Node 24, pnpm, and tooling match CI and collaborators.
- Fast onboarding — Open the folder in a container;
pnpm installand local git tweaks run once after create. - Host secrets, container dev —
ANTHROPIC_API_KEYandSNYK_TOKENare passed from your Mac/Linux session into the container when set locally (see below). - Optional CLI workflow — Use
start.shif you prefer a terminal-driven container instead of only the editor.
| File | Role |
|---|---|
devcontainer.json |
Image, mounts (e.g. your ~/.gitconfig), lifecycle commands, env forwarding. |
post-create.sh |
Runs once after the container is created — e.g. installs APM (Agent Package Manager) for agent-related tooling. |
start.sh |
Brings the dev container up with the Dev Containers CLI, then opens a shell inside the container. |
- Install the Dev Containers extension (VS Code) or use Cursor’s dev container support.
- Command Palette → Dev Containers: Reopen in Container (or Rebuild Container after config changes).
- Wait for create/start; the editor attaches when ready.
pnpm run devruns on each start whenpackage.jsonexists.
From the repository root on your host:
bash .devcontainer/start.shRequires Docker running. Uses npx @devcontainers/cli to up the workspace, then exec into bash.
Set these on your machine before opening/rebuilding the container so they appear inside:
export ANTHROPIC_API_KEY=sk-...
export SNYK_TOKEN=...They are wired in devcontainer.json under containerEnv via localEnv.
- Agent config on the host — Uncomment the
mountsentries indevcontainer.jsonto bind~/.claude,~/.gemini, or~/.codexinto the container so coding agents see your existing settings. - 1Password / other CLIs — Follow the commented blocks in
devcontainer.jsonandpost-create.shif you need them; keep the image lean by default.
After scaffolding, edit paths and secrets to match your team’s policies; this folder is yours to extend.