claudeup 3.7.2 → 3.9.0

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.
Files changed (52) hide show
  1. package/package.json +1 -1
  2. package/src/data/settings-catalog.js +612 -0
  3. package/src/data/settings-catalog.ts +689 -0
  4. package/src/data/skill-repos.js +86 -0
  5. package/src/data/skill-repos.ts +97 -0
  6. package/src/services/plugin-manager.js +2 -0
  7. package/src/services/plugin-manager.ts +3 -0
  8. package/src/services/profiles.js +161 -0
  9. package/src/services/profiles.ts +225 -0
  10. package/src/services/settings-manager.js +108 -0
  11. package/src/services/settings-manager.ts +140 -0
  12. package/src/services/skills-manager.js +239 -0
  13. package/src/services/skills-manager.ts +328 -0
  14. package/src/services/skillsmp-client.js +67 -0
  15. package/src/services/skillsmp-client.ts +89 -0
  16. package/src/types/index.ts +101 -1
  17. package/src/ui/App.js +23 -18
  18. package/src/ui/App.tsx +27 -23
  19. package/src/ui/components/TabBar.js +9 -8
  20. package/src/ui/components/TabBar.tsx +15 -19
  21. package/src/ui/components/layout/ScreenLayout.js +8 -14
  22. package/src/ui/components/layout/ScreenLayout.tsx +51 -58
  23. package/src/ui/components/modals/ModalContainer.js +43 -11
  24. package/src/ui/components/modals/ModalContainer.tsx +44 -12
  25. package/src/ui/components/modals/SelectModal.js +4 -18
  26. package/src/ui/components/modals/SelectModal.tsx +10 -21
  27. package/src/ui/screens/CliToolsScreen.js +2 -2
  28. package/src/ui/screens/CliToolsScreen.tsx +8 -8
  29. package/src/ui/screens/EnvVarsScreen.js +248 -116
  30. package/src/ui/screens/EnvVarsScreen.tsx +419 -184
  31. package/src/ui/screens/McpRegistryScreen.tsx +18 -6
  32. package/src/ui/screens/McpScreen.js +1 -1
  33. package/src/ui/screens/McpScreen.tsx +15 -5
  34. package/src/ui/screens/ModelSelectorScreen.js +3 -5
  35. package/src/ui/screens/ModelSelectorScreen.tsx +12 -16
  36. package/src/ui/screens/PluginsScreen.js +154 -66
  37. package/src/ui/screens/PluginsScreen.tsx +280 -97
  38. package/src/ui/screens/ProfilesScreen.js +255 -0
  39. package/src/ui/screens/ProfilesScreen.tsx +487 -0
  40. package/src/ui/screens/SkillsScreen.js +325 -0
  41. package/src/ui/screens/SkillsScreen.tsx +574 -0
  42. package/src/ui/screens/StatusLineScreen.js +2 -2
  43. package/src/ui/screens/StatusLineScreen.tsx +10 -12
  44. package/src/ui/screens/index.js +3 -2
  45. package/src/ui/screens/index.ts +3 -2
  46. package/src/ui/state/AppContext.js +2 -1
  47. package/src/ui/state/AppContext.tsx +2 -0
  48. package/src/ui/state/reducer.js +151 -19
  49. package/src/ui/state/reducer.ts +167 -19
  50. package/src/ui/state/types.ts +58 -14
  51. package/src/utils/clipboard.js +56 -0
  52. package/src/utils/clipboard.ts +58 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "claudeup",
3
- "version": "3.7.2",
3
+ "version": "3.9.0",
4
4
  "description": "TUI tool for managing Claude Code plugins, MCPs, and configuration",
5
5
  "type": "module",
6
6
  "main": "src/main.tsx",
@@ -0,0 +1,612 @@
1
+ export const SETTINGS_CATALOG = [
2
+ // ═══════ RECOMMENDED ═══════
3
+ {
4
+ id: "enable-tasks",
5
+ name: "Task Tracking",
6
+ description: "Enable task list for tracking progress. Shows visual task tracking in interactive and non-interactive mode",
7
+ category: "recommended",
8
+ type: "boolean",
9
+ storage: { type: "env", key: "CLAUDE_CODE_ENABLE_TASKS" },
10
+ defaultValue: "false",
11
+ },
12
+ {
13
+ id: "task-list-id",
14
+ name: "Task List ID",
15
+ description: "Share task list across sessions. Set same ID in multiple instances to coordinate on shared tasks",
16
+ category: "recommended",
17
+ type: "string",
18
+ storage: { type: "env", key: "CLAUDE_CODE_TASK_LIST_ID" },
19
+ },
20
+ {
21
+ id: "enable-agent-teams",
22
+ name: "Agent Teams",
23
+ description: "Enable agent teams. Allow Claude to spawn teammate agents that work in parallel via tmux or in-process",
24
+ category: "recommended",
25
+ type: "boolean",
26
+ storage: { type: "env", key: "CLAUDE_CODE_EXPERIMENTAL_AGENT_TEAMS" },
27
+ defaultValue: "false",
28
+ },
29
+ {
30
+ id: "effort-level",
31
+ name: "Effort Level",
32
+ description: "How much effort Claude puts into responses. Persists across sessions",
33
+ category: "recommended",
34
+ type: "select",
35
+ options: [
36
+ { label: "Low", value: "low" },
37
+ { label: "Medium", value: "medium" },
38
+ { label: "High", value: "high" },
39
+ ],
40
+ storage: { type: "setting", key: "effortLevel" },
41
+ },
42
+ {
43
+ id: "enable-all-project-mcp-servers",
44
+ name: "Auto-approve Project MCP Servers",
45
+ description: "Auto-approve all MCP servers in project .mcp.json files without prompting",
46
+ category: "recommended",
47
+ type: "boolean",
48
+ storage: { type: "setting", key: "enableAllProjectMcpServers" },
49
+ },
50
+ // ═══════ AGENTS & TEAMS ═══════
51
+ {
52
+ id: "team-name",
53
+ name: "Team Name",
54
+ description: "Name of the agent team this instance belongs to. Set automatically on team members",
55
+ category: "agents",
56
+ type: "string",
57
+ storage: { type: "env", key: "CLAUDE_CODE_TEAM_NAME" },
58
+ },
59
+ {
60
+ id: "plan-mode-required",
61
+ name: "Plan Mode Required",
62
+ description: "Require plan approval before teammates can execute. Auto-set on agent team teammates",
63
+ category: "agents",
64
+ type: "boolean",
65
+ storage: { type: "env", key: "CLAUDE_CODE_PLAN_MODE_REQUIRED" },
66
+ },
67
+ {
68
+ id: "teammate-mode",
69
+ name: "Teammate Display Mode",
70
+ description: "How agent team teammates display: auto picks split panes in tmux/iTerm2, in-process otherwise",
71
+ category: "agents",
72
+ type: "select",
73
+ options: [
74
+ { label: "Auto", value: "auto" },
75
+ { label: "In-process", value: "in-process" },
76
+ { label: "tmux", value: "tmux" },
77
+ ],
78
+ storage: { type: "setting", key: "teammateMode" },
79
+ },
80
+ {
81
+ id: "subagent-model",
82
+ name: "Subagent Model",
83
+ description: "Override model used for subagents spawned by the main session",
84
+ category: "agents",
85
+ type: "string",
86
+ storage: { type: "env", key: "CLAUDE_CODE_SUBAGENT_MODEL" },
87
+ },
88
+ {
89
+ id: "agent",
90
+ name: "Run as Named Agent",
91
+ description: "Run the main thread as a named subagent. Applies that subagent's system prompt, tool restrictions, and model",
92
+ category: "agents",
93
+ type: "string",
94
+ storage: { type: "setting", key: "agent" },
95
+ },
96
+ // ═══════ MODELS & THINKING ═══════
97
+ {
98
+ id: "model",
99
+ name: "Default Model",
100
+ description: "Override the default model for Claude Code",
101
+ category: "models",
102
+ type: "select",
103
+ options: [
104
+ { label: "Default", value: "" },
105
+ { label: "Sonnet", value: "claude-sonnet-4-6" },
106
+ { label: "Opus", value: "claude-opus-4-6" },
107
+ { label: "Haiku", value: "claude-haiku-4-5-20251001" },
108
+ ],
109
+ storage: { type: "setting", key: "model" },
110
+ },
111
+ {
112
+ id: "always-thinking",
113
+ name: "Always Extended Thinking",
114
+ description: "Enable extended thinking by default for all sessions",
115
+ category: "models",
116
+ type: "boolean",
117
+ storage: { type: "setting", key: "alwaysThinkingEnabled" },
118
+ defaultValue: "false",
119
+ },
120
+ {
121
+ id: "max-thinking-tokens",
122
+ name: "Max Thinking Tokens",
123
+ description: "Override extended thinking token budget. Set to 0 to disable thinking entirely",
124
+ category: "models",
125
+ type: "string",
126
+ storage: { type: "env", key: "MAX_THINKING_TOKENS" },
127
+ },
128
+ {
129
+ id: "disable-adaptive-thinking",
130
+ name: "Disable Adaptive Thinking",
131
+ description: "Disable adaptive reasoning for Opus and Sonnet. Falls back to fixed thinking budget",
132
+ category: "models",
133
+ type: "boolean",
134
+ storage: { type: "env", key: "CLAUDE_CODE_DISABLE_ADAPTIVE_THINKING" },
135
+ defaultValue: "false",
136
+ },
137
+ {
138
+ id: "disable-1m-context",
139
+ name: "Disable 1M Context",
140
+ description: "Disable 1M context window support. 1M model variants become unavailable",
141
+ category: "models",
142
+ type: "boolean",
143
+ storage: { type: "env", key: "CLAUDE_CODE_DISABLE_1M_CONTEXT" },
144
+ defaultValue: "false",
145
+ },
146
+ // ═══════ WORKFLOW ═══════
147
+ {
148
+ id: "include-git-instructions",
149
+ name: "Git Workflow Instructions",
150
+ description: "Include built-in commit and PR workflow instructions in system prompt",
151
+ category: "workflow",
152
+ type: "boolean",
153
+ storage: { type: "setting", key: "includeGitInstructions" },
154
+ defaultValue: "true",
155
+ },
156
+ {
157
+ id: "disable-git-instructions",
158
+ name: "Disable Git Instructions",
159
+ description: "Remove built-in git workflow instructions from system prompt. Takes precedence over includeGitInstructions setting",
160
+ category: "workflow",
161
+ type: "boolean",
162
+ storage: { type: "env", key: "CLAUDE_CODE_DISABLE_GIT_INSTRUCTIONS" },
163
+ defaultValue: "false",
164
+ },
165
+ {
166
+ id: "output-style",
167
+ name: "Output Style",
168
+ description: "Adjust Claude's response style",
169
+ category: "workflow",
170
+ type: "select",
171
+ options: [
172
+ { label: "Default", value: "" },
173
+ { label: "Concise", value: "concise" },
174
+ { label: "Explanatory", value: "explanatory" },
175
+ { label: "Formal", value: "formal" },
176
+ { label: "Minimal", value: "minimal" },
177
+ ],
178
+ storage: { type: "setting", key: "outputStyle" },
179
+ },
180
+ {
181
+ id: "language",
182
+ name: "Response Language",
183
+ description: "Language Claude responds in",
184
+ category: "workflow",
185
+ type: "select",
186
+ options: [
187
+ { label: "Default (English)", value: "" },
188
+ { label: "Spanish", value: "spanish" },
189
+ { label: "French", value: "french" },
190
+ { label: "German", value: "german" },
191
+ { label: "Japanese", value: "japanese" },
192
+ { label: "Chinese", value: "chinese" },
193
+ { label: "Korean", value: "korean" },
194
+ { label: "Portuguese", value: "portuguese" },
195
+ { label: "Italian", value: "italian" },
196
+ { label: "Russian", value: "russian" },
197
+ { label: "Ukrainian", value: "ukrainian" },
198
+ { label: "Arabic", value: "arabic" },
199
+ { label: "Hindi", value: "hindi" },
200
+ ],
201
+ storage: { type: "setting", key: "language" },
202
+ },
203
+ {
204
+ id: "plans-directory",
205
+ name: "Plans Directory",
206
+ description: "Where plan files are stored. Path relative to project root. Default: ~/.claude/plans",
207
+ category: "workflow",
208
+ type: "string",
209
+ storage: { type: "setting", key: "plansDirectory" },
210
+ },
211
+ {
212
+ id: "default-permission-mode",
213
+ name: "Default Permission Mode",
214
+ description: "Default permission mode when opening Claude Code",
215
+ category: "workflow",
216
+ type: "select",
217
+ options: [
218
+ { label: "Default", value: "default" },
219
+ { label: "Accept Edits", value: "acceptEdits" },
220
+ { label: "Bypass Permissions", value: "bypassPermissions" },
221
+ ],
222
+ storage: { type: "setting", key: "permissions.defaultMode" },
223
+ },
224
+ {
225
+ id: "disable-bypass-permissions",
226
+ name: "Disable Bypass Permissions Mode",
227
+ description: "Prevent bypassPermissions mode from being activated. Disables --dangerously-skip-permissions flag",
228
+ category: "workflow",
229
+ type: "select",
230
+ options: [
231
+ { label: "Not set", value: "" },
232
+ { label: "Disable", value: "disable" },
233
+ ],
234
+ storage: { type: "setting", key: "disableBypassPermissionsMode" },
235
+ },
236
+ {
237
+ id: "additional-directories",
238
+ name: "Additional Directories",
239
+ description: "Additional working directories Claude has access to, comma-separated",
240
+ category: "workflow",
241
+ type: "string",
242
+ storage: { type: "setting", key: "permissions.additionalDirectories" },
243
+ },
244
+ {
245
+ id: "respect-gitignore",
246
+ name: "Respect .gitignore",
247
+ description: "Exclude .gitignore-matched files from @ file picker suggestions",
248
+ category: "workflow",
249
+ type: "boolean",
250
+ storage: { type: "setting", key: "respectGitignore" },
251
+ defaultValue: "true",
252
+ },
253
+ {
254
+ id: "enable-tool-search",
255
+ name: "MCP Tool Search",
256
+ description: "Control MCP tool search behavior. Auto enables at percentage of context used",
257
+ category: "workflow",
258
+ type: "select",
259
+ options: [
260
+ { label: "Default", value: "" },
261
+ { label: "Always on", value: "true" },
262
+ { label: "Auto (10%)", value: "auto" },
263
+ { label: "Disabled", value: "false" },
264
+ ],
265
+ storage: { type: "env", key: "ENABLE_TOOL_SEARCH" },
266
+ },
267
+ // ═══════ TERMINAL & UI ═══════
268
+ {
269
+ id: "shell",
270
+ name: "Shell Override",
271
+ description: "Override automatic shell detection. Useful when login shell differs from preferred working shell",
272
+ category: "terminal",
273
+ type: "string",
274
+ storage: { type: "env", key: "CLAUDE_CODE_SHELL" },
275
+ },
276
+ {
277
+ id: "shell-prefix",
278
+ name: "Shell Command Prefix",
279
+ description: "Command prefix to wrap all bash commands, e.g. for logging or auditing",
280
+ category: "terminal",
281
+ type: "string",
282
+ storage: { type: "env", key: "CLAUDE_CODE_SHELL_PREFIX" },
283
+ },
284
+ {
285
+ id: "prompt-suggestion",
286
+ name: "Prompt Suggestions",
287
+ description: "Show prompt suggestions after Claude responds. Grayed-out predictions in prompt input",
288
+ category: "terminal",
289
+ type: "select",
290
+ options: [
291
+ { label: "Default", value: "" },
292
+ { label: "Enabled", value: "true" },
293
+ { label: "Disabled", value: "false" },
294
+ ],
295
+ storage: { type: "env", key: "CLAUDE_CODE_ENABLE_PROMPT_SUGGESTION" },
296
+ },
297
+ {
298
+ id: "voice-enabled",
299
+ name: "Voice Dictation",
300
+ description: "Enable push-to-talk voice dictation. Requires Claude.ai account",
301
+ category: "terminal",
302
+ type: "boolean",
303
+ storage: { type: "setting", key: "voiceEnabled" },
304
+ defaultValue: "false",
305
+ },
306
+ {
307
+ id: "spinner-tips",
308
+ name: "Spinner Tips",
309
+ description: "Show tips in the spinner while Claude is working",
310
+ category: "terminal",
311
+ type: "boolean",
312
+ storage: { type: "setting", key: "spinnerTipsEnabled" },
313
+ defaultValue: "true",
314
+ },
315
+ {
316
+ id: "disable-terminal-title",
317
+ name: "Disable Terminal Title",
318
+ description: "Disable automatic terminal title updates based on conversation context",
319
+ category: "terminal",
320
+ type: "boolean",
321
+ storage: { type: "env", key: "CLAUDE_CODE_DISABLE_TERMINAL_TITLE" },
322
+ defaultValue: "false",
323
+ },
324
+ {
325
+ id: "terminal-progress-bar",
326
+ name: "Terminal Progress Bar",
327
+ description: "Show terminal progress bar in supported terminals like Windows Terminal and iTerm2",
328
+ category: "terminal",
329
+ type: "boolean",
330
+ storage: { type: "setting", key: "terminalProgressBarEnabled" },
331
+ defaultValue: "true",
332
+ },
333
+ {
334
+ id: "reduced-motion",
335
+ name: "Reduced Motion",
336
+ description: "Reduce or disable UI animations (spinners, shimmer, flash effects) for accessibility",
337
+ category: "terminal",
338
+ type: "boolean",
339
+ storage: { type: "setting", key: "prefersReducedMotion" },
340
+ defaultValue: "false",
341
+ },
342
+ // ═══════ PERFORMANCE ═══════
343
+ {
344
+ id: "max-output-tokens",
345
+ name: "Max Output Tokens",
346
+ description: "Maximum output tokens per response. Increasing reduces context window before auto-compaction",
347
+ category: "performance",
348
+ type: "string",
349
+ storage: { type: "env", key: "CLAUDE_CODE_MAX_OUTPUT_TOKENS" },
350
+ },
351
+ {
352
+ id: "file-read-max-output-tokens",
353
+ name: "File Read Token Limit",
354
+ description: "Override default token limit for file reads. Useful for reading larger files in full",
355
+ category: "performance",
356
+ type: "string",
357
+ storage: { type: "env", key: "CLAUDE_CODE_FILE_READ_MAX_OUTPUT_TOKENS" },
358
+ },
359
+ {
360
+ id: "max-mcp-output-tokens",
361
+ name: "Max MCP Output Tokens",
362
+ description: "Maximum tokens in MCP tool responses. Warning at 10,000 tokens. Default: 25000",
363
+ category: "performance",
364
+ type: "string",
365
+ storage: { type: "env", key: "MAX_MCP_OUTPUT_TOKENS" },
366
+ },
367
+ {
368
+ id: "bash-timeout",
369
+ name: "Bash Default Timeout",
370
+ description: "Default timeout for bash commands in milliseconds",
371
+ category: "performance",
372
+ type: "string",
373
+ storage: { type: "env", key: "BASH_DEFAULT_TIMEOUT_MS" },
374
+ defaultValue: "120000",
375
+ },
376
+ {
377
+ id: "bash-max-timeout",
378
+ name: "Bash Max Timeout",
379
+ description: "Maximum timeout the model can set for bash commands in milliseconds",
380
+ category: "performance",
381
+ type: "string",
382
+ storage: { type: "env", key: "BASH_MAX_TIMEOUT_MS" },
383
+ },
384
+ {
385
+ id: "autocompact-pct",
386
+ name: "Auto-compaction Threshold",
387
+ description: "Context capacity percentage (1-100) at which auto-compaction triggers. Default ~95%",
388
+ category: "performance",
389
+ type: "string",
390
+ storage: { type: "env", key: "CLAUDE_AUTOCOMPACT_PCT_OVERRIDE" },
391
+ },
392
+ {
393
+ id: "auto-compact-window",
394
+ name: "Auto-compaction Window",
395
+ description: "Context capacity in tokens for compaction calculations. Use lower value to compact earlier on 1M models",
396
+ category: "performance",
397
+ type: "string",
398
+ storage: { type: "env", key: "CLAUDE_CODE_AUTO_COMPACT_WINDOW" },
399
+ },
400
+ {
401
+ id: "cleanup-period-days",
402
+ name: "Session Cleanup Period",
403
+ description: "Sessions inactive longer than this are deleted at startup. Default: 30. Set to 0 to disable persistence",
404
+ category: "performance",
405
+ type: "string",
406
+ storage: { type: "setting", key: "cleanupPeriodDays" },
407
+ },
408
+ // ═══════ ADVANCED ═══════
409
+ {
410
+ id: "disable-telemetry",
411
+ name: "Disable Statsig Telemetry",
412
+ description: "Opt out of Statsig telemetry. Events do not include user data like code or file paths",
413
+ category: "advanced",
414
+ type: "boolean",
415
+ storage: { type: "env", key: "DISABLE_TELEMETRY" },
416
+ defaultValue: "false",
417
+ },
418
+ {
419
+ id: "enable-otel",
420
+ name: "Enable OpenTelemetry",
421
+ description: "Enable OpenTelemetry data collection for metrics and logging",
422
+ category: "advanced",
423
+ type: "boolean",
424
+ storage: { type: "env", key: "CLAUDE_CODE_ENABLE_TELEMETRY" },
425
+ defaultValue: "false",
426
+ },
427
+ {
428
+ id: "disable-autoupdater",
429
+ name: "Disable Auto Updater",
430
+ description: "Disable automatic updates for Claude Code",
431
+ category: "advanced",
432
+ type: "boolean",
433
+ storage: { type: "env", key: "DISABLE_AUTOUPDATER" },
434
+ defaultValue: "false",
435
+ },
436
+ {
437
+ id: "force-autoupdate-plugins",
438
+ name: "Force Plugin Auto-updates",
439
+ description: "Force plugin auto-updates even when main auto-updater is disabled",
440
+ category: "advanced",
441
+ type: "boolean",
442
+ storage: { type: "env", key: "FORCE_AUTOUPDATE_PLUGINS" },
443
+ defaultValue: "false",
444
+ },
445
+ {
446
+ id: "disable-cost-warnings",
447
+ name: "Disable Cost Warnings",
448
+ description: "Disable cost warning messages",
449
+ category: "advanced",
450
+ type: "boolean",
451
+ storage: { type: "env", key: "DISABLE_COST_WARNINGS" },
452
+ defaultValue: "false",
453
+ },
454
+ {
455
+ id: "disable-error-reporting",
456
+ name: "Disable Error Reporting",
457
+ description: "Opt out of Sentry error reporting",
458
+ category: "advanced",
459
+ type: "boolean",
460
+ storage: { type: "env", key: "DISABLE_ERROR_REPORTING" },
461
+ defaultValue: "false",
462
+ },
463
+ {
464
+ id: "disable-feedback-command",
465
+ name: "Disable /feedback Command",
466
+ description: "Disable the /feedback command",
467
+ category: "advanced",
468
+ type: "boolean",
469
+ storage: { type: "env", key: "DISABLE_FEEDBACK_COMMAND" },
470
+ defaultValue: "false",
471
+ },
472
+ {
473
+ id: "disable-feedback-survey",
474
+ name: "Disable Feedback Surveys",
475
+ description: "Disable session quality surveys",
476
+ category: "advanced",
477
+ type: "boolean",
478
+ storage: { type: "env", key: "CLAUDE_CODE_DISABLE_FEEDBACK_SURVEY" },
479
+ defaultValue: "false",
480
+ },
481
+ {
482
+ id: "disable-nonessential-traffic",
483
+ name: "Disable Non-essential Traffic",
484
+ description: "Disable auto-updater, feedback, error reporting, and telemetry at once",
485
+ category: "advanced",
486
+ type: "boolean",
487
+ storage: { type: "env", key: "CLAUDE_CODE_DISABLE_NONESSENTIAL_TRAFFIC" },
488
+ defaultValue: "false",
489
+ },
490
+ {
491
+ id: "disable-cron",
492
+ name: "Disable Cron Tasks",
493
+ description: "Disable scheduled tasks. /loop skill and cron tools become unavailable",
494
+ category: "advanced",
495
+ type: "boolean",
496
+ storage: { type: "env", key: "CLAUDE_CODE_DISABLE_CRON" },
497
+ defaultValue: "false",
498
+ },
499
+ {
500
+ id: "disable-background-tasks",
501
+ name: "Disable Background Tasks",
502
+ description: "Disable background tasks, run_in_background parameter, and Ctrl+B shortcut",
503
+ category: "advanced",
504
+ type: "boolean",
505
+ storage: { type: "env", key: "CLAUDE_CODE_DISABLE_BACKGROUND_TASKS" },
506
+ defaultValue: "false",
507
+ },
508
+ {
509
+ id: "disable-fast-mode",
510
+ name: "Disable Fast Mode",
511
+ description: "Disable fast mode toggle",
512
+ category: "advanced",
513
+ type: "boolean",
514
+ storage: { type: "env", key: "CLAUDE_CODE_DISABLE_FAST_MODE" },
515
+ defaultValue: "false",
516
+ },
517
+ {
518
+ id: "disable-auto-memory",
519
+ name: "Disable Auto Memory",
520
+ description: "Stop Claude from creating and loading auto memory files",
521
+ category: "advanced",
522
+ type: "boolean",
523
+ storage: { type: "env", key: "CLAUDE_CODE_DISABLE_AUTO_MEMORY" },
524
+ defaultValue: "false",
525
+ },
526
+ {
527
+ id: "simple-mode",
528
+ name: "Simple Mode",
529
+ description: "Run with minimal system prompt and only Bash, file read, and edit tools. Disables MCP, hooks, CLAUDE.md",
530
+ category: "advanced",
531
+ type: "boolean",
532
+ storage: { type: "env", key: "CLAUDE_CODE_SIMPLE" },
533
+ defaultValue: "false",
534
+ },
535
+ {
536
+ id: "ide-skip-auto-install",
537
+ name: "Skip IDE Extension Install",
538
+ description: "Skip auto-installation of IDE extensions",
539
+ category: "advanced",
540
+ type: "boolean",
541
+ storage: { type: "env", key: "CLAUDE_CODE_IDE_SKIP_AUTO_INSTALL" },
542
+ defaultValue: "false",
543
+ },
544
+ {
545
+ id: "use-builtin-ripgrep",
546
+ name: "Bundled ripgrep",
547
+ description: "Set to 0 to use system-installed rg instead of bundled version",
548
+ category: "advanced",
549
+ type: "select",
550
+ options: [
551
+ { label: "Default", value: "" },
552
+ { label: "System rg", value: "0" },
553
+ ],
554
+ storage: { type: "env", key: "USE_BUILTIN_RIPGREP" },
555
+ },
556
+ {
557
+ id: "config-dir",
558
+ name: "Config Directory",
559
+ description: "Custom directory for Claude Code configuration and data files",
560
+ category: "advanced",
561
+ type: "string",
562
+ storage: { type: "env", key: "CLAUDE_CONFIG_DIR" },
563
+ },
564
+ {
565
+ id: "env-file",
566
+ name: "Env File Path",
567
+ description: "Path to shell script sourced before each Bash command. Use for virtualenv/conda activation",
568
+ category: "advanced",
569
+ type: "string",
570
+ storage: { type: "env", key: "CLAUDE_ENV_FILE" },
571
+ },
572
+ {
573
+ id: "additional-dirs-claude-md",
574
+ name: "Load CLAUDE.md from Extra Dirs",
575
+ description: "Load CLAUDE.md files from directories specified with --add-dir",
576
+ category: "advanced",
577
+ type: "boolean",
578
+ storage: {
579
+ type: "env",
580
+ key: "CLAUDE_CODE_ADDITIONAL_DIRECTORIES_CLAUDE_MD",
581
+ },
582
+ defaultValue: "false",
583
+ },
584
+ {
585
+ id: "auto-updates-channel",
586
+ name: "Update Channel",
587
+ description: "Release channel: stable (typically one week old, skips regressions) or latest",
588
+ category: "advanced",
589
+ type: "select",
590
+ options: [
591
+ { label: "Latest", value: "latest" },
592
+ { label: "Stable", value: "stable" },
593
+ ],
594
+ storage: { type: "setting", key: "autoUpdatesChannel" },
595
+ },
596
+ {
597
+ id: "worktree-symlink-directories",
598
+ name: "Worktree Symlink Directories",
599
+ description: "Directories to symlink from main repo into each worktree, comma-separated. Reduces disk usage",
600
+ category: "advanced",
601
+ type: "string",
602
+ storage: { type: "setting", key: "worktree.symlinkDirectories" },
603
+ },
604
+ {
605
+ id: "worktree-sparse-paths",
606
+ name: "Worktree Sparse Paths",
607
+ description: "Directories for git sparse-checkout in worktrees, comma-separated. Only listed paths are written to disk",
608
+ category: "advanced",
609
+ type: "string",
610
+ storage: { type: "setting", key: "worktree.sparsePaths" },
611
+ },
612
+ ];