-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathdevcontainer.json
More file actions
78 lines (70 loc) · 3.21 KB
/
devcontainer.json
File metadata and controls
78 lines (70 loc) · 3.21 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
70
71
72
73
74
75
76
77
78
// Instructions to use this devcontainer:
// 0. Make sure Docker or Podman is running.
// 1. Install the VS Code extension "Dev Containers" (ms-vscode-remote.remote-containers).
// 2. Open the Command Palette (Shift+Ctrl+P / Shift+Cmd+P) and run "Dev Containers: Reopen in Container",
// alternatively "Dev Containers: Open Folder in Container".
// 3. When finished, run "Dev Containers: Close Remote Connection" from the Command Palette to stop the container.
{
"name": "Dev Environment",
"image": "mcr.microsoft.com/devcontainers/typescript-node:24",
"containerEnv": {
"DEVCONTAINER": "true",
"DEVCONTAINERS_NO_TELEMETRY": "true",
"CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC": "1",
"CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY": "1",
"DO_NOT_TRACK": "1",
"NEXT_TELEMETRY_DISABLED": "1",
"NO_UPDATE_NOTIFIER": "1",
"npm_config_update_notifier": "false"
},
// Persisted volumes to speed installs and avoid repeated network requests
"mounts": [
// Share a pnpm store cache volume to speed package resolution and install times across projects/containers
"source=pnpm-cache,target=${containerWorkspaceFolder}/.pnpm-store,type=volume"
],
// Run once after the container filesystem is created.
"postCreateCommand": {
// Enable corepack and fix workspace ownership for non-root user
"permissions": "sudo corepack enable && sudo chown -R node:node /home/node ${containerWorkspaceFolder}",
// Needed for AI Coworker extension to work with a pnpm installation
"aliases": "echo \"alias claude='pnpm coworker'\" >> ~/.bash_aliases",
// Install GSD
"gsd": "pnpm dlx get-shit-done-cc@latest --claude --global --force-statusline",
// Clipboard support for wl-copy/wl-paste (used by CLAUDE.md)
"clipboard": "sudo apt-get update -qq && sudo apt-get install -y -qq --no-install-recommends wl-clipboard",
// Install vscode focus timer extension
"focus-timer": "d=~/focus-timer-ext && git clone --depth 1 https://github.com/phroi/vscode-focus-timer.git $d && ln -sfn $d ~/.vscode-server/extensions/phroi.focus"
},
// Run each time the container starts. Ensures updated dependencies are installed inside the container user environment.
"postStartCommand": "corepack use pnpm@latest && pnpm up",
// Use the non-root 'node' user provided by the base image for safer file access and to mirror deployment permissions
"remoteUser": "node",
"customizations": {
"vscode": {
"settings": {
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"telemetry.enableTelemetry": false,
"telemetry.telemetryLevel": "off",
"chat.disableAIFeatures": true,
"claudeCode": {
"disableLoginPrompt": true,
"useTerminal": true
}
},
"extensions": [
"streetsidesoftware.code-spell-checker",
"bradlc.vscode-tailwindcss",
"dbaeumer.vscode-eslint",
"esbenp.prettier-vscode",
"yoavbls.pretty-ts-errors",
"davidanson.vscode-markdownlint",
"anthropic.claude-code",
"-github.copilot-chat" // Disable GitHub Copilot Chat extension
]
}
}
}