@brantshi1/devspace 1.2.0 → 1.3.1

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
@@ -23,7 +23,7 @@ cd ghostty-devspace
23
23
  已有 npm 的机器也可以:
24
24
 
25
25
  ```bash
26
- npm i -g @brant/devspace
26
+ npm i -g @brantshi1/devspace
27
27
  devspace setup
28
28
  ```
29
29
 
package/bin/devspace CHANGED
@@ -7,8 +7,8 @@
7
7
  # │ │ lazygit │
8
8
  # └──────────┴──────────┘
9
9
 
10
- VERSION="1.2.0"
11
- SCRIPT_DIR="${0:a:h}"
10
+ VERSION="1.3.1"
11
+ SCRIPT_DIR="${0:A:h}"
12
12
  REPO_DIR="${SCRIPT_DIR:h}"
13
13
  CONFIGS_DIR="$REPO_DIR/configs"
14
14
 
@@ -76,14 +76,27 @@ do_sync() {
76
76
  exit 1
77
77
  fi
78
78
 
79
- mkdir -p "$CONFIGS_DIR/ghostty/themes" "$CONFIGS_DIR/yazi"
79
+ mkdir -p "$CONFIGS_DIR/ghostty/themes" "$CONFIGS_DIR/yazi" "$CONFIGS_DIR/claude"
80
80
  local count=0
81
81
 
82
+ # Ghostty
82
83
  [[ -f "$HOME/.config/ghostty/config" ]] && cp "$HOME/.config/ghostty/config" "$CONFIGS_DIR/ghostty/config" && ((count++))
83
84
  [[ -d "$HOME/.config/ghostty/themes" ]] && cp -R "$HOME/.config/ghostty/themes"/ "$CONFIGS_DIR/ghostty/themes"/ && ((count++))
85
+
86
+ # Yazi
84
87
  [[ -f "$HOME/.config/yazi/yazi.toml" ]] && cp "$HOME/.config/yazi/yazi.toml" "$CONFIGS_DIR/yazi/yazi.toml" && ((count++))
85
88
  [[ -f "$HOME/.config/yazi/package.toml" ]] && cp "$HOME/.config/yazi/package.toml" "$CONFIGS_DIR/yazi/package.toml" && ((count++))
86
89
 
90
+ # Claude Code
91
+ [[ -f "$HOME/.claude/CLAUDE.md" ]] && cp "$HOME/.claude/CLAUDE.md" "$CONFIGS_DIR/claude/CLAUDE.md" && ((count++))
92
+ if [[ -f "$HOME/.claude/settings.json" ]]; then
93
+ # 过滤敏感字段:ANTHROPIC_AUTH_TOKEN / ANTHROPIC_BASE_URL 替换为占位提醒
94
+ sed -e 's/"ANTHROPIC_AUTH_TOKEN": *"[^"]*"/"ANTHROPIC_AUTH_TOKEN": "<请自行配置>"/' \
95
+ -e 's/"ANTHROPIC_BASE_URL": *"[^"]*"/"ANTHROPIC_BASE_URL": "<请自行配置>"/' \
96
+ "$HOME/.claude/settings.json" > "$CONFIGS_DIR/claude/settings.json"
97
+ ((count++))
98
+ fi
99
+
87
100
  echo "已同步 $count 项配置到 $CONFIGS_DIR"
88
101
  echo "下一步: cd $REPO_DIR && git add configs/ && git commit && git push"
89
102
  }
@@ -191,6 +204,20 @@ do_setup() {
191
204
  fi
192
205
  fi
193
206
 
207
+ # Claude Code 配置
208
+ _section "Claude Code 配置"
209
+ if [[ -d "$CONFIGS_DIR/claude" ]]; then
210
+ mkdir -p "$HOME/.claude"
211
+ [[ -f "$CONFIGS_DIR/claude/CLAUDE.md" ]] && _copy_config "$CONFIGS_DIR/claude/CLAUDE.md" "$HOME/.claude/CLAUDE.md"
212
+ [[ -f "$CONFIGS_DIR/claude/settings.json" ]] && _copy_config "$CONFIGS_DIR/claude/settings.json" "$HOME/.claude/settings.json"
213
+ echo ""
214
+ echo "${YELLOW} ⚠${RESET} 请手动编辑 ${BOLD}~/.claude/settings.json${RESET} 配置以下字段:"
215
+ echo " - ANTHROPIC_AUTH_TOKEN"
216
+ echo " - ANTHROPIC_BASE_URL"
217
+ else
218
+ _ok "无 Claude Code 配置快照,跳过"
219
+ fi
220
+
194
221
  # 完成
195
222
  echo ""
196
223
  echo "${GREEN}${BOLD}部署完成!${RESET}"
@@ -221,7 +248,7 @@ devspace - 在 Ghostty 中一键创建开发工作区
221
248
 
222
249
  命令:
223
250
  setup [-f] 部署开发环境(安装依赖 + 配置),-f 强制覆盖
224
- sync 将本机 ghostty/yazi 配置同步到仓库 configs/ 目录
251
+ sync 将本机 ghostty/yazi/claude 配置同步到仓库 configs/ 目录
225
252
 
226
253
  选项:
227
254
  -h, --help 显示帮助
@@ -0,0 +1,18 @@
1
+ # CLAUDE.md
2
+
3
+ ## 语言和称呼
4
+ - 使用中文回复
5
+ - 称呼用户为"长官"
6
+
7
+ ## Git 规范
8
+ - ❌ **禁止自动提交**:只能由用户手动执行 git 操作,任何 skill(包括 executing-plans、subagent-driven-development 的 implementer subagent)均不得执行 `git commit`
9
+ - 代码修改完成后只允许执行 `git add`(stage 到暂存区),等待用户 review 后手动提交
10
+ - 提交指令默认使用 `/commit-push-pr`
11
+ - ❌ **禁止执行 `git clean`**:会删除未跟踪文件
12
+
13
+ ## 编译规范
14
+ - 仅在重要代码修改后编译
15
+ - 文档修改不需要编译
16
+
17
+ ## 网页获取
18
+ - 默认使用 `agent-browser` skill 获取网页内容,而非 WebFetch
@@ -0,0 +1,190 @@
1
+ {
2
+ "env": {
3
+ "ANTHROPIC_AUTH_TOKEN": "<请自行配置>",
4
+ "ANTHROPIC_BASE_URL": "<请自行配置>",
5
+ "ANTHROPIC_DEFAULT_HAIKU_MODEL": "claude-haiku-4_5",
6
+ "ANTHROPIC_DEFAULT_OPUS_MODEL": "claude-opus-4-6",
7
+ "ANTHROPIC_DEFAULT_SONNET_MODEL": "claude-sonnet-4-6",
8
+ "ANTHROPIC_MODEL": "claude-opus-4-6",
9
+ "ANTHROPIC_REASONING_MODEL": "claude-opus-4-6",
10
+ "CLAUDE_CODE_DISABLE_EXPERIMENTAL_BETAS": "1",
11
+ "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS": "1",
12
+ "DISABLE_PROMPT_CACHING": "0",
13
+ "ENABLE_TOOL_SEARCH": "false"
14
+ },
15
+ "permissions": {
16
+ "defaultMode": "bypassPermissions"
17
+ },
18
+ "model": "opus[1m]",
19
+ "hooks": {
20
+ "PostToolUse": [
21
+ {
22
+ "matcher": "Edit|Write|WriteFile|CreateFile|write-file|create-file|Bash",
23
+ "hooks": [
24
+ {
25
+ "type": "command",
26
+ "command": "bash /Users/brant/.r2c/scripts/claude-cli-hook.sh",
27
+ "timeout": 15
28
+ }
29
+ ]
30
+ },
31
+ {
32
+ "matcher": "",
33
+ "hooks": [
34
+ {
35
+ "type": "command",
36
+ "command": "node \"/Users/brant/.confirmo/hooks/confirmo-hook.js\"",
37
+ "timeout": 5
38
+ }
39
+ ]
40
+ },
41
+ {
42
+ "matcher": "Edit|Write",
43
+ "hooks": [
44
+ {
45
+ "type": "command",
46
+ "command": "codemap hook post-edit"
47
+ }
48
+ ]
49
+ }
50
+ ],
51
+ "PreCompact": [
52
+ {
53
+ "hooks": [
54
+ {
55
+ "type": "command",
56
+ "command": "codemap hook pre-compact"
57
+ }
58
+ ]
59
+ }
60
+ ],
61
+ "PreToolUse": [
62
+ {
63
+ "matcher": "",
64
+ "hooks": [
65
+ {
66
+ "type": "command",
67
+ "command": "node \"/Users/brant/.confirmo/hooks/confirmo-hook.js\"",
68
+ "timeout": 5
69
+ }
70
+ ]
71
+ },
72
+ {
73
+ "matcher": "Edit|Write",
74
+ "hooks": [
75
+ {
76
+ "type": "command",
77
+ "command": "codemap hook pre-edit"
78
+ }
79
+ ]
80
+ }
81
+ ],
82
+ "SessionEnd": [
83
+ {
84
+ "matcher": "",
85
+ "hooks": [
86
+ {
87
+ "type": "command",
88
+ "command": "node \"/Users/brant/.confirmo/hooks/confirmo-hook.js\"",
89
+ "timeout": 5
90
+ }
91
+ ]
92
+ },
93
+ {
94
+ "hooks": [
95
+ {
96
+ "type": "command",
97
+ "command": "codemap hook session-stop"
98
+ }
99
+ ]
100
+ }
101
+ ],
102
+ "SessionStart": [
103
+ {
104
+ "matcher": "",
105
+ "hooks": [
106
+ {
107
+ "type": "command",
108
+ "command": "node \"/Users/brant/.confirmo/hooks/confirmo-hook.js\"",
109
+ "timeout": 5
110
+ },
111
+ {
112
+ "type": "command",
113
+ "command": "codemap hook session-start"
114
+ }
115
+ ]
116
+ }
117
+ ],
118
+ "Stop": [
119
+ {
120
+ "matcher": "",
121
+ "hooks": [
122
+ {
123
+ "type": "command",
124
+ "command": "node \"/Users/brant/.confirmo/hooks/confirmo-hook.js\"",
125
+ "timeout": 5
126
+ }
127
+ ]
128
+ }
129
+ ],
130
+ "UserPromptSubmit": [
131
+ {
132
+ "matcher": "",
133
+ "hooks": [
134
+ {
135
+ "type": "command",
136
+ "command": "node \"/Users/brant/.confirmo/hooks/confirmo-hook.js\"",
137
+ "timeout": 5
138
+ }
139
+ ]
140
+ },
141
+ {
142
+ "hooks": [
143
+ {
144
+ "type": "command",
145
+ "command": "codemap hook prompt-submit"
146
+ }
147
+ ]
148
+ }
149
+ ]
150
+ },
151
+ "statusLine": {
152
+ "type": "command",
153
+ "command": "bash -c 'plugin_dir=$(ls -d \"${CLAUDE_CONFIG_DIR:-$HOME/.claude}\"/plugins/cache/claude-hud/claude-hud/*/ 2>/dev/null | awk -F/ '\"'\"'{ print $(NF-1) \"\\t\" $(0) }'\"'\"' | sort -t. -k1,1n -k2,2n -k3,3n -k4,4n | tail -1 | cut -f2-); exec \"/Users/brant/.nvm/versions/node/v22.21.1/bin/node\" \"${plugin_dir}dist/index.js\"'"
154
+ },
155
+ "enabledPlugins": {
156
+ "frontend-design@claude-plugins-official": true,
157
+ "superpowers@claude-plugins-official": true,
158
+ "claude-hud@claude-hud": true
159
+ },
160
+ "extraKnownMarketplaces": {
161
+ "claude-hud": {
162
+ "source": {
163
+ "source": "github",
164
+ "repo": "jarrodwatts/claude-hud"
165
+ }
166
+ }
167
+ },
168
+ "language": "中文",
169
+ "spinnerVerbs": {
170
+ "mode": "replace",
171
+ "verbs": [
172
+ "正在召唤骨灰",
173
+ "邦布充电中",
174
+ "正在挑战一心",
175
+ "正在读取存档",
176
+ "正在购买血瓶",
177
+ "正在匹配旗鼓相当的对手",
178
+ "少女祈祷中",
179
+ "大剑蓄力中",
180
+ "正在挖断电缆",
181
+ "正在切酱板鸭",
182
+ "正在接受九年义务教育",
183
+ "正在下技能五子棋",
184
+ "逃离地球"
185
+ ]
186
+ },
187
+ "alwaysThinkingEnabled": true,
188
+ "effortLevel": "high",
189
+ "skipDangerousModePermissionPrompt": true
190
+ }
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@brantshi1/devspace",
3
- "version": "1.2.0",
3
+ "version": "1.3.1",
4
4
  "description": "Ghostty terminal workspace: claude + yazi + lazygit in split panes",
5
5
  "bin": {
6
6
  "devspace": "./bin/devspace"
package/setup.sh CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  set -euo pipefail
7
7
 
8
- SCRIPT_DIR="${0:a:h}"
8
+ SCRIPT_DIR="${0:A:h}"
9
9
 
10
10
  # 确保 Homebrew 可用
11
11
  if ! command -v brew &>/dev/null; then