{ "$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json", "name": "Claude Code Sandbox", "build": { "dockerfile": "Dockerfile", "args": { "TZ": "${localEnv:TZ:UTC}", "GIT_DELTA_VERSION": "0.18.2", "ZSH_IN_DOCKER_VERSION": "1.2.1" } }, "features": { "ghcr.io/devcontainers/features/github-cli:1": {} }, "runArgs": [ "--cap-add=NET_ADMIN", "--cap-add=NET_RAW" ], "init": true, "updateRemoteUserUID": true, "customizations": { "vscode": { "extensions": [ "anthropic.claude-code" ], "settings": { "terminal.integrated.defaultProfile.linux": "zsh", "terminal.integrated.profiles.linux": { "bash": { "path": "bash", "icon": "terminal-bash" }, "zsh": { "path": "zsh" } }, "files.trimTrailingWhitespace": true, "files.insertFinalNewline": true, "files.trimFinalNewlines": true } } }, "remoteUser": "vscode", "mounts": [ "source=claude-code-bashhistory-${devcontainerId},target=/commandhistory,type=volume", "source=claude-code-config-${devcontainerId},target=/home/vscode/.claude,type=volume", "source=claude-code-gh-${devcontainerId},target=/home/vscode/.config/gh,type=volume", "source=${localEnv:HOME}/.gitconfig,target=/home/vscode/.gitconfig,type=bind,readonly", "source=${localWorkspaceFolder}/.devcontainer,target=/workspace/.devcontainer,type=bind,readonly" ], "containerEnv": { "NODE_OPTIONS": "--max-old-space-size=4096", "CLAUDE_CONFIG_DIR": "/home/vscode/.claude", "POWERLEVEL9K_DISABLE_GITSTATUS": "true", "GIT_CONFIG_GLOBAL": "/home/vscode/.gitconfig.local", "UV_LINK_MODE": "copy", "NPM_CONFIG_IGNORE_SCRIPTS": "true", "NPM_CONFIG_AUDIT": "true", "NPM_CONFIG_FUND": "false", "NPM_CONFIG_SAVE_EXACT": "true", "NPM_CONFIG_UPDATE_NOTIFIER": "false", "NPM_CONFIG_MINIMUM_RELEASE_AGE": "1440", "PYTHONDONTWRITEBYTECODE": "1", "PIP_DISABLE_PIP_VERSION_CHECK": "1" }, "workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=delegated", "workspaceFolder": "/workspace", "postCreateCommand": "uv run --no-project /opt/post_install.py" }