Documentation error: settings.json location
Resolved 💬 18 comments Opened May 20, 2025 by MattMagg Closed Dec 5, 2025
💡 Likely answer: A maintainer (ollie-anthropic, collaborator)
responded on this thread — see the highlighted reply below.
The Claude Code documentation at https://docs.anthropic.com/en/docs/claude-code/settings states that settings should be in ~/.claude/settings.json, but this file doesn't exist. Settings are only accessible via the claude config list command and cannot be edited directly. This appears to be a discrepancy between the documentation and the actual implementation.
18 Comments
Looks like the file is
~/.claude.jsonHere is the behavior I see:
This does update the ~/.claude/settings.json
But the setting is not reflected. If I run
claude config list -gthe env is empty.Just confirming that's where I'm seeing "User Settings" configuration stored (running claude code version 1.0.29).
Setting allowedTools in
~/.claude/settings.jsondoes cause those allowed tools to be reflected the next time I runclaude.It looks like the allowedTools rules I set in
~/.claude/settings.jsonare combined with the existing allowedTools permissions found in myproject_dir/.claude/settings.local.jsonfile that were already set.After creating
~/.claude/settings.json(manually) and confirming that it is loaded the next time I ranclaude, runningclaude config liststill does not pull from there—allowedTools still showing as blank. The documentation does say that claude config in in the process of being deprecated in place of settings.json.Same situation here. I have
~/.claude.jsonbut no~/.claude/settings.json.It'd be great if somebody from anthropic could clarify what's going on here. The docs appear to be incorrect?
Please & thank you! 😄
I think there is a stark difference in what
claude config listandclaude config list --globaldo.One seems to seek and print the local project settings
And
claude config list --globalseems to read your globally set user settings, weirdly located in~/claude.json(why isn't this file inside your~/.claude/directory, co-located with other CC-related things)?Plus, this command doesn't print any of the
allowedToolsfrom my globally set~/.claude/settings.json.---
I reckon that Anthropic is in the middle of migrating settings and cleaning this up. There might be something in the pipeline that got stuck or got some internal pushback for a better option, that's why there's little update on our end what's going on.
But this is a mess, but somewhat a normal mess for a very young product.
One more thing to note is that the
~/.claude.jsonfile is difficult to use since it mixes global settings with all your project settings (mcps configs) with content (history of your prompts) and statistics. In my case it's almost 1700 lines long.Is the documentation still outdated after 2 months, or is it just not working? Would've expected claude to corrected itself already..
looks like it is using
~/.claude.jsonindeed - I was experimenting and changing stuff through vscode and it changed in real time. I'm now transferring settings from~/.claude/settings.json(mainly env) to check what works.https://github.com/user-attachments/assets/995aae83-d000-4aa5-9c39-a3f856fcb5db
Bump. This is very misleading and we don't know what to do to configure settings.
Where are the config files on windows?
My project settings don't work properly:
~/dejoma/project/.claude/settings.jsonI haveBash(ls:*)allowedThen somehow it still creates a
~/dejoma/project/.claude/settings.local.jsonwhere sporadically it asks me permission for a "new" command. I still had to acceptBash(ls:*)-- this is now also inside the local settings.But then yesterday I have a
not_allowedcommand which isbun db:migrateand it mentioned "tool not allowed" so it is working for this?Bash(ls:*)to my local project settings if it is in the 'committed/shared project settings' ?following
What is the good file?
~/.claude.jsonor files in~/.claude/? I had my MCPs configured globally - now they are gone but I can see them in~/.claude.jsoncheck if
settings.jsonis well formattedWhich one is it?
Hey all, really sorry about the confusion here - we've updated the docs in multiple places to clearly indicate where things are.
Please see: https://code.claude.com/docs/en/troubleshooting#configuration-file-locations, https://code.claude.com/docs/en/mcp#local-scope
Right now, the mcp configuration for local and user scopes live in .claude.json; we understand this is a little confusing at the moment, and it's something we're thinking about
This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.