Stu Mason
Stu Mason

Claude Code Global Settings: Where They Live and What They Do

Stu Mason3 min read

Breakdown of Claude Code's settings system - where config files live, how CLAUDE.md works, and the skill system.

Claude Code Global Settings: Where They Live and What They Do

Claude Code has gotten a lot more configurable over the past few months. Global settings, project settings, skills, custom agents - there's a lot to keep track of. Here's how I've got mine set up.

Settings File Locations

Claude Code looks for settings in multiple places, in order of priority:

  1. ~/.claude.json - Main global configuration (highest priority)
  2. ~/.claude/settings.json - User-specific global settings
  3. ~/.claude/settings.local.json - User local settings
  4. .claude/settings.local.json - Project-specific settings (in your project)

More specific settings override broader ones. If your global settings allow something but your project settings deny it, the project wins.

The CLAUDE.md System

This is the game changer. CLAUDE.md files are markdown files that Claude loads automatically at startup and treats as instructions.

They work hierarchically:

  • ~/.claude/CLAUDE.md - Global instructions (applies to all projects)
  • ./CLAUDE.md - Project root instructions
  • ./some-folder/CLAUDE.md - Directory-specific instructions

I use the global one for universal preferences:

# Global Preferences

- Never use emojis in code or comments
- Always use TypeScript, never JavaScript
- Prefer functional components over class components
- Use async/await, not .then() chains

Then project-specific files for patterns unique to that codebase:

# Project Standards

- Use Actions pattern for business logic (app/Actions/{Domain}/)
- DTOs for data transfer (app/DTOs/)
- Monetary values as integers, never floats

Claude reads these on every conversation. No need to explain your preferences repeatedly.

Skills and Hot-Reloading

Skills live in ~/.claude/skills/. Each skill is a markdown file with frontmatter that defines when it applies.

Recent update: skills now hot-reload. Change a skill file, and Claude picks it up immediately without restarting.

You can also run skills in a forked context now. Add context: fork to the skill frontmatter and it runs in isolation, not affecting your main conversation.

The /config Command

Run /config in Claude Code to open the settings interface. It's got tabs for:

  • Status information
  • Model selection
  • Permission settings
  • Skill configuration

Most things you'd want to configure are accessible there without editing JSON files directly.

Permission Settings

The settings files control what Claude can and can't do automatically. Bash commands, file operations, etc.

For example, allowing npm commands:

{
  "permissions": {
    "allow": ["Bash(npm run:*)"]
  }
}

Project settings can be more restrictive than global. If your global allows something but the project denies it, the command gets blocked.

Language Setting

You can set Claude's response language in settings. If you want responses in a specific language, configure it there instead of asking every time.

My Setup

Global CLAUDE.md: Coding style preferences that apply everywhere. No emojis, TypeScript over JS, async/await patterns.

Per-project CLAUDE.md: Framework-specific patterns. Project architecture decisions. File structure conventions. Testing approaches.

Skills: Custom commit workflow. PR review process. Quick deployment commands.

It takes a bit to set up, but once configured, Claude starts every conversation already knowing how I work. Worth the investment.

Where to Learn More

The official docs cover everything. They're updating it regularly as features get added.

Get the Friday email

What I shipped this week, what I learned, one useful thing.

No spam. Unsubscribe anytime. Privacy policy.