Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 4 additions & 0 deletions .claude/rules/devcontainer.md
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,10 @@ paths:
// README at: {relevant-reference-url}
```

## Comments

Skip a comment that only repeats the line below it in other words, such as `// Show workspace folder name in window title` above `"window.title"`. Extension descriptions are not that: they say what an extension ID does.

## node_modules Mount

Always include to keep node_modules off the host:
Expand Down
4 changes: 0 additions & 4 deletions .devcontainer/claude-sandbox/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -43,23 +43,20 @@
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
},
// Show workspace folder name in window title
"window.title": "${localWorkspaceFolderBasename}",
// Sandbox visual identity — Claude Dark theme with coral remote indicator
"workbench.colorTheme": "Claude Dark",
"workbench.colorCustomizations": {
"statusBarItem.remoteBackground": "#C15F3C",
"statusBarItem.remoteForeground": "#ffffff"
},
// Allow Claude Code to skip permission prompts in sandbox
"claudeCode.allowDangerouslySkipPermissions": true
}
}
},
"mounts": [
"source=devcontainers-sandbox-config-${devcontainerId},target=/home/node/.claude,type=volume",
"source=devcontainers-sandbox-zsh-history-${devcontainerId},target=/commandhistory,type=volume",
// Mount firewall script into the expected path
"source=${localWorkspaceFolder}/.devcontainer/claude-sandbox/init-firewall.sh,target=/usr/local/bin/init-firewall.sh,type=bind"
],
"containerEnv": {
Expand All @@ -71,7 +68,6 @@
},
// Plugins before firewall (network still open during postCreateCommand)
"postCreateCommand": "sudo chown -R node /home/node/.claude /commandhistory && bash /workspace/.devcontainer/init-plugins.sh",
// Firewall locks down the network
"postStartCommand": "sudo /usr/local/bin/init-firewall.sh",
"waitFor": "postStartCommand"
}
4 changes: 0 additions & 4 deletions .devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@
"zsh": { "path": "zsh" },
"bash": { "path": "bash", "icon": "terminal-bash" }
},
// Suppress extension recommendation prompts
"extensions.ignoreRecommendations": true,
// ── Formatter settings (customize per project) ──────────────────
// Change "editor.defaultFormatter" to match your tooling:
Expand All @@ -46,7 +45,6 @@
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
},
// Show workspace folder name in window title
"window.title": "${localWorkspaceFolderBasename}",
// Visual identity — Claude Dark theme with coral remote indicator
"workbench.colorTheme": "Claude Dark",
Expand All @@ -58,9 +56,7 @@
}
},
"mounts": [
// Persist Claude Code configuration between container rebuilds
"source=devcontainers-claude-config-${devcontainerId},target=/home/node/.claude,type=volume",
// Persist zsh history between container rebuilds
"source=devcontainers-zsh-history-${devcontainerId},target=/commandhistory,type=volume"
],
"containerEnv": {
Expand Down
2 changes: 0 additions & 2 deletions bun/.devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@
"source=${localWorkspaceFolderBasename}-node_modules,target=${containerWorkspaceFolder}/node_modules,type=volume"
],

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Use zsh as the default shell for better VS Code integration
"settings": {
Expand Down
6 changes: 0 additions & 6 deletions claude-bun/.devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -21,13 +21,10 @@
// Persist shell history between container rebuilds. zsh writes here
// (HISTFILE in the Dockerfile); the volume name is legacy.
"source=claude-code-bashhistory-${devcontainerId},target=/commandhistory,type=volume",
// Persist Claude Code configuration between container rebuilds
"source=claude-code-config-${devcontainerId},target=/home/bun/.claude,type=volume"
],

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Use zsh as the default shell for better VS Code integration
"settings": {
Expand All @@ -43,10 +40,8 @@
},
// Suppress extension recommendation prompts (e.g., Container Tools in Codespaces)
"extensions.ignoreRecommendations": true,
// Format on save with Biome
"editor.formatOnSave": true,
"editor.defaultFormatter": "biomejs.biome",
// Biome auto-fix on save
"editor.codeActionsOnSave": {
"source.fixAll.biome": "explicit",
"source.organizeImports.biome": "explicit"
Expand Down Expand Up @@ -81,7 +76,6 @@
},
"workspaceMount": "source=${localWorkspaceFolder},target=/workspace,type=bind,consistency=delegated",
"workspaceFolder": "/workspace",
// Initialize firewall after container starts
"postStartCommand": "sudo /usr/local/bin/init-firewall.sh",
"waitFor": "postStartCommand"
}
1 change: 0 additions & 1 deletion claude-code/.devcontainer/claude-sandbox/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -95,7 +95,6 @@
"statusBarItem.remoteBackground": "#C15F3C",
"statusBarItem.remoteForeground": "#ffffff"
},
// Allow Claude Code to skip permission prompts in sandbox
"claudeCode.allowDangerouslySkipPermissions": true
}
}
Expand Down
2 changes: 0 additions & 2 deletions claude-code/.devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,7 +75,6 @@
"zsh": { "path": "zsh" },
"bash": { "path": "bash", "icon": "terminal-bash" }
},
// Suppress extension recommendation prompts
"extensions.ignoreRecommendations": true,
// ── Formatter settings (customize per project) ──────────────────
// Change "editor.defaultFormatter" to match your tooling:
Expand All @@ -87,7 +86,6 @@
"source.fixAll": "explicit",
"source.organizeImports": "explicit"
},
// Show workspace folder name in window title
"window.title": "${localWorkspaceFolderBasename}"
}
}
Expand Down
2 changes: 0 additions & 2 deletions hugo-bun-node/.devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@
"source=${localWorkspaceFolderBasename}-node_modules,target=${containerWorkspaceFolder}/node_modules,type=volume"
],

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Use zsh as the default shell for better VS Code integration
"settings": {
Expand Down
2 changes: 0 additions & 2 deletions hugo-bun/.devcontainer/devcontainer.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,7 @@
"source=${localWorkspaceFolderBasename}-node_modules,target=${containerWorkspaceFolder}/node_modules,type=volume"
],

// Configure tool-specific properties.
"customizations": {
// Configure properties specific to VS Code.
"vscode": {
// Use zsh as the default shell for better VS Code integration
"settings": {
Expand Down
Loading