forked from trailofbits/claude-code-devcontainer
-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathdevcontainer.json
More file actions
69 lines (69 loc) · 2.84 KB
/
Copy pathdevcontainer.json
File metadata and controls
69 lines (69 loc) · 2.84 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
{
"$schema": "https://raw.githubusercontent.com/devcontainers/spec/main/schemas/devContainer.schema.json",
"name": "AI Sandbox - ${localWorkspaceFolderBasename}",
"image": "my-ai-sandbox/devcontainer:local",
"runArgs": [
"--cap-add=NET_ADMIN",
"--cap-add=NET_RAW",
"--name",
"ai-sandbox-${localWorkspaceFolderBasename}"
],
"init": true,
"updateRemoteUserUID": true,
"customizations": {
"vscode": {
"extensions": [
"anthropic.claude-code",
"openai.chatgpt"
],
"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=devc-${localWorkspaceFolderBasename}-bashhistory-${devcontainerId},target=/commandhistory,type=volume",
"source=devc-${localWorkspaceFolderBasename}-claude-code-config-${devcontainerId},target=/home/vscode/.claude,type=volume",
"source=devc-${localWorkspaceFolderBasename}-codex-config-${devcontainerId},target=/home/vscode/.codex,type=volume",
"source=devc-${localWorkspaceFolderBasename}-claude-code-gh-${devcontainerId},target=/home/vscode/.config/gh,type=volume",
"source=${localWorkspaceFolder}/.devcontainer/.mount-cache/gitconfig,target=/home/vscode/.gitconfig,type=bind,readonly",
"source=${localWorkspaceFolder}/.devcontainer/.mount-cache/claude-commands,target=/home/vscode/.claude/commands,type=bind,readonly",
"source=${localWorkspaceFolder}/.devcontainer/.mount-cache/codex-commands,target=/home/vscode/.codex/commands,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"
},
"remoteEnv": {
"CLAUDE_CODE_OAUTH_TOKEN": "${localEnv:CLAUDE_CODE_OAUTH_TOKEN:}",
"ANTHROPIC_API_KEY": "${localEnv:ANTHROPIC_API_KEY:}"
},
"initializeCommand": "bash \"${localWorkspaceFolder}/.devcontainer/setup-mounts.sh\"",
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=delegated",
"workspaceFolder": "/workspace",
"postCreateCommand": "uv run --no-project /opt/post_install.py"
}