Skill

sync-environment-variables

Install
1
Install the plugin
$
npx claudepluginhub melodic-software/claude-code-plugins --plugin claude-ecosystem

Want just this skill?

Add to a custom plugin, then install with one command.

Description

Add missing environment variable defaults to settings.json or settings.local.json

Tool Access

This skill is limited to using the following tools:

TaskSkillReadWriteEditWebFetchAskUserQuestion
Skill Content

Sync Environment Variables

Add missing environment variable entries with explicit defaults to settings files.

Arguments

ArgumentDescription
--target projectUpdate .claude/settings.json (default)
--target localUpdate .claude/settings.local.json
--dry-runShow changes without modifying files
--include-undocumentedInclude changelog/discovered vars (not just official)

Phase 1: Discovery

Run environment variable discovery using the same process as list-environment-variables:

  1. Invoke docs-management skill for official documentation
  2. WebFetch CHANGELOG.md for additional variables
  3. If --include-undocumented, spawn MCP research agents

Collect all discovered variables with their default values.

Phase 2: Read Current Settings

Determine target file based on --target argument:

TargetFile Path
project (default).claude/settings.json
local.claude/settings.local.json

Read the target file. If it doesn't exist:

  • For project: Create new file with basic structure
  • For local: Create new file (this is gitignored)

Parse the current env section (if present).

Phase 3: Compare and Categorize

For each discovered environment variable, categorize:

CategoryCriteriaAction
MISSINGNot in current settings, has known defaultAdd to settings
EXISTSAlready in current settingsSkip (preserve user value)
USER-SPECIFICNo universal default (e.g., API keys)Skip, report only
CUSTOMCLAUDE_HOOK_* or repo-specificNever touch

Variables to Add (with defaults)

These variables have known, safe defaults:

{
  "env": {
    "DISABLE_AUTOUPDATER": "0",
    "DISABLE_TELEMETRY": "0",
    "CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR": "0",
    "CLAUDE_CODE_SKIP_EXT_PROMPT": "0"
  }
}

Variables to NEVER Add Automatically

  • ANTHROPIC_API_KEY - User-specific, no default
  • CLAUDE_CODE_USE_BEDROCK - Provider choice, user decision
  • CLAUDE_CODE_USE_VERTEX - Provider choice, user decision
  • AWS_* - AWS credentials, user-specific
  • GOOGLE_* - Google credentials, user-specific
  • HTTP_PROXY / HTTPS_PROXY - Network-specific
  • CLAUDE_HOOK_* - Repository-specific hook variables

Phase 4: Preview Changes

Display what will be added:

## Environment Variable Sync Preview

### Target: .claude/settings.json

### Variables to Add
| Variable | Default | Reason |
|----------|---------|--------|
| DISABLE_AUTOUPDATER | "0" | Official default, not in current settings |
| ... | ... | ... |

### Variables Skipped (Already Set)
| Variable | Current Value |
|----------|---------------|
| DISABLE_TELEMETRY | "1" |
| ... | ... |

### Variables Skipped (No Safe Default)
| Variable | Reason |
|----------|--------|
| ANTHROPIC_API_KEY | User-specific, no universal default |
| ... | ... |

Phase 5: User Confirmation

Unless --dry-run is specified, ask for confirmation:

AskUserQuestion:
  question: "Apply these changes to settings?"
  options:
    - "Yes, apply changes"
    - "No, abort"
    - "Show me the full file preview first"

If --dry-run, stop here and report "Dry run complete. No changes made."

Phase 6: Apply and Validate

  1. Read current file (or create new if doesn't exist)
  2. Merge new env vars into existing env section
  3. Preserve existing values - never overwrite user-set values
  4. Alphabetical order - sort env vars alphabetically
  5. Write updated file
  6. Validate JSON - ensure file is valid JSON after write
  7. Report success

File Structure

{
  "env": {
    "CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR": "0",
    "DISABLE_AUTOUPDATER": "0",
    "DISABLE_TELEMETRY": "0"
  }
}

If file has other sections (permissions, hooks, etc.), preserve them.

Error Handling

ErrorAction
Target file not valid JSONReport error, do not modify
Write permission deniedReport error with path
Discovery failedReport partial results, ask to continue

Post-Sync Verification

After applying changes:

  1. Read back the modified file
  2. Validate JSON syntax
  3. Confirm all intended changes were applied
  4. Report any discrepancies

Example Output

## Sync Complete

**Target:** .claude/settings.json

### Added (3 variables)
- CLAUDE_BASH_MAINTAIN_PROJECT_WORKING_DIR = "0"
- DISABLE_AUTOUPDATER = "0"
- CLAUDE_CODE_SKIP_EXT_PROMPT = "0"

### Preserved (1 variable)
- DISABLE_TELEMETRY = "1" (user-set value kept)

### Skipped (2 variables)
- ANTHROPIC_API_KEY (no safe default)
- CLAUDE_CODE_USE_BEDROCK (provider choice)

**File validated:** JSON syntax OK
Stats
Stars40
Forks6
Last CommitFeb 15, 2026
Actions

Similar Skills