Manage Claude Code Settings with the Config CLI
Editing settings.json by hand works, but claude config gives you a safer, faster way to manage Claude Code configuration from the terminal — no JSON syntax errors, no hunting for the right file path.
# List all current settings
claude config list
# Read a single value
claude config get model
# Set a value
claude config set model claude-opus-4-5
# Delete a value (reset to default)
claude config delete model
By default, claude config writes to your global user settings. Add --project to scope the change to the current project's .claude/settings.json instead:
# Set a model override just for this project
claude config set --project model claude-haiku-4-5
# Set allowed tools for this project
claude config set --project allowedTools '["Bash","Read","Write","Edit"]'
This is especially useful in scripts or onboarding flows where you want to configure Claude Code programmatically without requiring developers to locate and hand-edit JSON files.
You can also inspect what settings a project has configured separately from global defaults — claude config list --project shows only project-level overrides.
claude config is the safe, scriptable way to manage settings — skip the JSON editor.
Log in to leave a comment.
The autoUpdatesChannel setting pins Claude Code to a stable release track that skips versions with major regressions.
The language setting makes Claude respond in your preferred language by default, across every session and project.
The attribution setting lets you customize or completely remove Claude's Co-Authored-By trailer from git commits and pull requests.