get-shit-done-cc 1.3.22 → 1.3.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -22,6 +22,15 @@ npx get-shit-done-cc
22
22
 
23
23
  That's it. Works on Mac, Windows, and Linux.
24
24
 
25
+ ### Non-interactive Install (Docker, CI, Scripts)
26
+
27
+ ```bash
28
+ npx get-shit-done-cc --global # Install to ~/.claude/
29
+ npx get-shit-done-cc --local # Install to ./.claude/
30
+ ```
31
+
32
+ Use `--global` (`-g`) or `--local` (`-l`) to skip the interactive prompt.
33
+
25
34
  Verify: `/gsd:help`
26
35
 
27
36
  ---
package/bin/install.js CHANGED
@@ -35,6 +35,16 @@ const hasLocal = args.includes('--local') || args.includes('-l');
35
35
 
36
36
  console.log(banner);
37
37
 
38
+ /**
39
+ * Expand ~ to home directory (shell doesn't expand in env vars passed to node)
40
+ */
41
+ function expandTilde(filePath) {
42
+ if (filePath && filePath.startsWith('~/')) {
43
+ return path.join(os.homedir(), filePath.slice(2));
44
+ }
45
+ return filePath;
46
+ }
47
+
38
48
  /**
39
49
  * Recursively copy directory, replacing paths in .md files
40
50
  */
@@ -65,8 +75,10 @@ function copyWithPathReplacement(srcDir, destDir, pathPrefix) {
65
75
  */
66
76
  function install(isGlobal) {
67
77
  const src = path.join(__dirname, '..');
78
+ const configDir = expandTilde(process.env.CLAUDE_CONFIG_DIR);
79
+ const defaultGlobalDir = configDir || path.join(os.homedir(), '.claude');
68
80
  const claudeDir = isGlobal
69
- ? path.join(os.homedir(), '.claude')
81
+ ? defaultGlobalDir
70
82
  : path.join(process.cwd(), '.claude');
71
83
 
72
84
  const locationLabel = isGlobal
@@ -74,7 +86,10 @@ function install(isGlobal) {
74
86
  : claudeDir.replace(process.cwd(), '.');
75
87
 
76
88
  // Path prefix for file references
77
- const pathPrefix = isGlobal ? '~/.claude/' : './.claude/';
89
+ // Use actual path when CLAUDE_CONFIG_DIR is set, otherwise use ~ shorthand
90
+ const pathPrefix = isGlobal
91
+ ? (configDir ? `${claudeDir}/` : '~/.claude/')
92
+ : './.claude/';
78
93
 
79
94
  console.log(` Installing to ${cyan}${locationLabel}${reset}\n`);
80
95
 
@@ -108,9 +123,12 @@ function promptLocation() {
108
123
  output: process.stdout
109
124
  });
110
125
 
126
+ const globalPath = expandTilde(process.env.CLAUDE_CONFIG_DIR) || path.join(os.homedir(), '.claude');
127
+ const globalLabel = globalPath.replace(os.homedir(), '~');
128
+
111
129
  console.log(` ${yellow}Where would you like to install?${reset}
112
130
 
113
- ${cyan}1${reset}) Global ${dim}(~/.claude)${reset} - available in all projects
131
+ ${cyan}1${reset}) Global ${dim}(${globalLabel})${reset} - available in all projects
114
132
  ${cyan}2${reset}) Local ${dim}(./.claude)${reset} - this project only
115
133
  `);
116
134
 
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "get-shit-done-cc",
3
- "version": "1.3.22",
3
+ "version": "1.3.24",
4
4
  "description": "A meta-prompting, context engineering and spec-driven development system for Claude Code by TÂCHES.",
5
5
  "bin": {
6
6
  "get-shit-done-cc": "bin/install.js"