Created
May 26, 2026 09:04
-
-
Save suvl/332cc5b3e088bedff56d0c6933001026 to your computer and use it in GitHub Desktop.
node devcontainer with AI harness tooling
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Show hidden characters
| { | |
| "name": "FE+BE Development Container", | |
| "image": "mcr.microsoft.com/devcontainers/javascript-node:24-bookworm", | |
| // Configure tool-specific properties. | |
| "customizations": { | |
| "vscode": { | |
| "settings": { | |
| "editor.formatOnSave": true, | |
| "editor.defaultFormatter": "esbenp.prettier-vscode", | |
| "editor.codeActionsOnSave": { | |
| "source.fixAll.eslint": "explicit" | |
| }, | |
| "eslint.validate": ["javascript", "javascriptreact", "typescript", "typescriptreact"] | |
| }, | |
| "extensions": [ | |
| "dbaeumer.vscode-eslint", | |
| "esbenp.prettier-vscode", | |
| "bradlc.vscode-tailwindcss", | |
| "vitest.explorer", | |
| "drizzle-team.drizzle-journal" | |
| ] | |
| } | |
| }, | |
| // Enable host.docker.internal resolution on Linux hosts (native on macOS/Windows) | |
| "runArgs": ["--add-host=host.docker.internal:host-gateway"], | |
| // Use 'postCreateCommand' to run commands after the container is created. | |
| // We use sudo corepack enable to ensure the symlinks can be created in /usr/local/bin. | |
| "postCreateCommand": "sudo corepack enable && pnpm install && sudo npm install -g opencode-ai @google/gemini-cli @github/copilot && curl -fsSL https://antigravity.google/cli/install.sh | bash", | |
| // Comment out to connect as root instead. More info: https://aka.ms/vscode-remote/containers/non-root. | |
| "remoteUser": "node", | |
| // Add the local bin path to PATH so agy is accessible | |
| "remoteEnv": { | |
| "PATH": "${containerEnv:PATH}:/home/node/.local/bin" | |
| }, | |
| // Share auth and configuration directories between host and container | |
| "mounts": [ | |
| "source=${localEnv:HOME}/.config/opencode,target=/home/node/.config/opencode,type=bind,consistency=cached", | |
| "source=${localEnv:HOME}/.local/share/opencode,target=/home/node/.local/share/opencode,type=bind,consistency=cached", | |
| "source=${localEnv:HOME}/.gemini,target=/home/node/.gemini,type=bind,consistency=cached", | |
| "source=${localEnv:HOME}/.config/gh,target=/home/node/.config/gh,type=bind,consistency=cached", | |
| "source=${localEnv:HOME}/.copilot,target=/home/node/.copilot,type=bind,consistency=cached", | |
| "source=${localEnv:HOME}/.config/gcloud,target=/home/node/.config/gcloud,type=bind,consistency=cached" | |
| ], | |
| // Forward credential/token environment variables if they are set on the host | |
| "containerEnv": { | |
| "GEMINI_API_KEY": "${localEnv:GEMINI_API_KEY}", | |
| "COPILOT_GITHUB_TOKEN": "${localEnv:COPILOT_GITHUB_TOKEN}", | |
| "GH_TOKEN": "${localEnv:GH_TOKEN}", | |
| "GITHUB_TOKEN": "${localEnv:GITHUB_TOKEN}" | |
| } | |
| } |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment