Claude Code configuration: settings, permissions, and connected tools

Kenneth Pangan
Written by

Kenneth Pangan

Katelin Teen
Reviewed by

Katelin Teen

Last edited September 9, 2026

Expert Verified
Illustration of a person using a watch connected to Opus, Sonnet, Haiku, and eesel symbols.

Choose the file by who should receive the change

Claude Code can read and edit files, run commands, and use connected tools. Its settings documentation distinguishes personal, project, and managed configuration. Start Claude Code in the intended project directory and decide whether a change belongs to you, your team, or your organization.

ConfigurationPurposeWho receives it
CLAUDE.mdProject instructions and contextSessions that load that file
~/.claude/settings.jsonPersonal runtime settingsYour projects on that machine
.claude/settings.jsonShared project settingsTeammates and cloud clones when committed
.claude/settings.local.jsonPersonal project overridesYour local project sessions
Managed settingsOrganization policyDevices or sessions covered by its delivery method
.mcp.jsonProject-scoped MCP server configurationProject sessions, subject to loading and approval rules

On Windows, the home-directory .claude folder normally lives under %USERPROFILE%. If you create a local settings file manually, ensure Git ignores it: do not assume a filename containing “local” makes it private. Shared settings also have limits: some keys cannot be set by a repository, and some permissions wait for workspace trust.

Use CLAUDE.md for facts a contributor needs

CLAUDE.md is useful for build and test commands, architecture, conventions, and review requirements. Keep it factual: name the actual test command and the directory that owns a behavior. A short instruction such as “Customer-facing wording needs support-owner review” is more useful than “Always produce excellent work.”

For a project that uses eesel, record the workflow rather than credentials:

Before proposing a support configuration change, ask the owner for the authorized workspace and teammate. Read current settings and produce a comparison report. Do not infer a customer policy from repository comments. Do not change standing instructions, schedules, or action permissions without separate approval.

This is a suggested instruction, not an access-control mechanism. CLAUDE.md shapes what Claude tries to do; credentials and enforced permissions determine what it can do. Do not store API tokens or customer records in a shared instruction file.

Configure permissions without granting blanket shell access

Claude Code evaluates matching permission rules in the order Deny, Ask, then Allow. A narrower Allow rule does not cancel a matching Deny or Ask rule. The active mode matters too: Manual and Auto do not handle approvals the same way. Inspect /permissions before a consequential task.

For example, this strict JSON fragment asks before matching eesel CLI calls through Bash and denies direct reads of the named environment files:

JSON
{
  "permissions": {
    "ask": ["Bash(npx @eesel/cli *)"],
    "deny": ["Read(./.env)", "Read(./.env.*)"]
  }
}

Merge the relevant keys into the correct existing settings file; do not overwrite unrelated rules. This is not a complete security policy. The Bash pattern does not cover every alias or alternative executable, and a Read rule does not make a secret inaccessible through every other tool. Keep sensitive credentials out of the agent's environment unless the task needs them, and enforce access in the connected service as well.

Do not allow all git or npx commands merely to reduce prompts. Both can do much more than inspect files. Approve the exact requested action after reviewing its target and effect.

Understand precedence before debugging a setting

For ordinary keys, the order is managed settings, command-line settings, project local, shared project, then user settings. But it is not a universal last-file-wins system. Permission lists merge across scopes, some security-sensitive keys keep the more restrictive value, and environment-variable precedence is defined per key.

For example, a shared project choice can override a personal default. A project-local choice may change your session without changing a teammate's. Organization-managed policy can still constrain both. Deleting a personal Allow rule does not necessarily remove a permission supplied elsewhere.

Check the exact key in the settings reference instead of repeatedly editing different files. Model selection deserves the same care: a startup model is different from an organization allowlist of selectable models. Use the current model picker and account availability rather than copying an old model ID from a blog.

Verify what loaded, then test the intended behavior

Use this sequence after a configuration edit:

  1. Run /status inside Claude Code. Its setting-sources list confirms which files loaded; it does not show the source of every individual key.
  2. If something was rejected, run claude doctor and inspect the reported configuration error. Settings are strict JSON, so trailing commas and comments can invalidate a file.
  3. Check whether the changed key takes effect immediately. Many settings reload, but model and effort changes have their own commands or need a new session.
  4. Try one harmless action that should be permitted and one that should be refused or require approval. Record the observed result, not only that the JSON parsed.

Do not use real customer data or a production write as the first permission test. A loaded file proves configuration was read, not that every intended boundary works.

Claude Code in VS Code showing the project explorer, an open CSS file, and a conversation preparing a localization test.
Claude Code in VS Code showing the project explorer, an open CSS file, and a conversation preparing a localization test.

The terminal and IDE can use the same local settings files, but their menus differ. The terminal /config menu is not a raw view of every settings key.

Keep integrations and cloud sessions explicit

MCP configuration connects Claude Code to an external tool server. Project-scoped servers use .mcp.json; sharing that file is different from sharing authentication. Review the server, credentials, and exposed actions before connecting it. claude mcp list reports configured-server status, while claude mcp get checks a named server. An “Added” message means configuration was written, not that authentication and every tool work.

Interactive project-server approval is not a universal safeguard for unattended runs. Anthropic documents different loading behavior for print-mode and cloud sessions. Review the exact environment before copying an interactive setup into CI.

Cloud sessions also do not inherit your machine's user and project-local settings. Committed shared settings can reach the repository clone; managed policy delivery and a self-hosted runner's configuration need separate checks. Keep a record of the intended environment and verify there, not only on your laptop.

Check the eesel workspace before comparing configuration

Suppose a support owner asks you to review an after-hours handoff setup. They supply the approved teammate ID, intended knowledge sources, and the rule that overnight requests should wait for the next staffed shift rather than promise an immediate reply. A developer wants to check the configuration from Claude Code; an operations colleague wants the same report from a script.

eesel CLI makes both possible. It operates the same teammate and workspace as the dashboard and returns JSON. With Node.js 18.17 or newer, begin by checking the actual identity and available teammates:

Bash
npx @eesel/cli login
npx @eesel/cli whoami
npx @eesel/cli agents

Login stores local credentials. For scripts, the documented EESEL_API_URL and EESEL_API_TOKEN environment variables take precedence over stored login. That makes identity checking especially important: a shell with CI credentials may reach a different workspace than the developer expects. Do not print tokens in a diagnostic report.

The owner confirms the workspace and records the exact authorized teammate ID or name. Replace this placeholder with that value, then inspect without changing configuration:

Bash
CONFIG_REVIEW_AGENT="REPLACE_WITH_OWNER_APPROVED_AGENT"
npx @eesel/cli status --agent "$CONFIG_REVIEW_AGENT"
npx @eesel/cli instructions --agent "$CONFIG_REVIEW_AGENT"
npx @eesel/cli automations --agent "$CONFIG_REVIEW_AGENT"
npx @eesel/cli integrations --agent "$CONFIG_REVIEW_AGENT"

Ask the coding agent to produce a short comparison with three columns: the owner's requirement, the observed configuration, and the unresolved question. For this fictional review, useful questions are whether an old immediate-response instruction conflicts with the handoff rule, whether a scheduled job still exists, and whether the intended source is connected and ready. Do not assume every schedule detail appears in a summary: inspect the supported command help or dashboard when a field is missing.

This is an inspection workflow, not an instruction to replace schedules or rewrite policy. The report should distinguish “not found in the inspected output” from “does not exist.” If the laptop and script disagree, resolve their identity, target, and observation time before deciding there is a product bug.

Review and approve the change through eesel CLI

The useful result is a configuration difference the owner can review in the same dashboard, not an automatic edit based on a guess. A person, script, Claude Code, Codex, or Cursor can collect the evidence; the owner decides which instruction or automation should change.

For an approved correction, consult the command's current --help, preview supported writes with --dry-run, apply only the agreed change, and read back the state. A dry run previews a request; it does not test the teammate's answer. If response tests are needed, use an owner-approved nonproduction teammate with consequential actions Disabled in its actual Actions settings. Get approval for billed chats and test an overnight request, a staffed-shift request, and a request with no clear time zone against the explicitly supplied rule. No such tests were performed for this example.

Setup and observation commands are free; eesel chat is billed work. Separately, Claude pricing and account access determine the cost of the coding session. Configuration does not make either product unlimited, and a local JSON change does not purchase a plan or authorize a support action.

eesel dashboard showing a Get your teammate ready checklist, helpdesk and chat response channels, and a chat panel.
eesel dashboard showing a Get your teammate ready checklist, helpdesk and chat response channels, and a chat panel.

This example workspace is not a record of the fictional handoff review. Try eesel with a named owner and a clearly scoped support job, then use the dashboard or CLI to verify the setup together.

Frequently Asked Questions

Where should I put Claude Code settings?

Use .claude/settings.json for shared project settings and .claude/settings.local.json for personal project overrides. User settings in ~/.claude/settings.json apply across your projects on that machine. Organization-managed settings can constrain all of them.

Does CLAUDE.md replace settings.json?

No. CLAUDE.md supplies instructions and project context. Settings and permission rules control supported runtime behavior and access. A written instruction not to deploy is not a permission boundary.

Which Claude Code settings take precedence?

For ordinary settings keys, managed settings outrank command-line settings, then project local, shared project, and user settings. Lists and some security-sensitive keys have special merging rules, so check the reference for the exact key.

How do I check whether my settings loaded?

Run /status inside Claude Code to see loaded setting sources. It does not identify the source of every individual key. Use claude doctor to inspect configuration errors and check the key-specific precedence when behavior is unexpected.

Are local settings copied to Claude Code cloud sessions?

No. User and project-local files stay on your machine. Committed project settings can reach a cloud clone. Managed policy delivery and self-hosted runner configuration have their own rules.

Does granting a Claude Code tool permission grant eesel access?

No. Claude Code permissions govern its tool use. eesel authentication, selected workspace and teammate, and action controls are separate. Inspect the actual identity and target before allowing any workspace change.

How can eesel CLI help with configuration review?

A person, script, Claude Code, Codex, or Cursor can read the selected teammate’s status, instructions, and automations as JSON. Compare those with the support owner’s approved setup, report differences, and verify any separately approved change in the same dashboard workspace.

Share this article

Kenneth Pangan

Article by

Kenneth Pangan

Writer and marketer for over ten years, Kenneth Pangan splits his time between history, politics, and art with plenty of interruptions from his dogs demanding attention.

Related Posts

All posts →
Illustration of a person reading a long paper scroll surrounded by orange starbursts.
Guides

Claude analysis: what it can do with files, code, and connected data

Claude can analyze uploaded files, run code, build Artifacts, and use approved connectors. Here is where that helps, where careful review still matters, and how to use it safely with support data.

Kenneth PanganKenneth PanganSep 9, 2025
Black-and-white illustration of two people adjusting gear wheels, with an eesel symbol on the upper gear
Guides

Claude Code overview: setup, permissions, models, and costs

A current Claude Code overview: install and sign in, choose a model, set permissions deliberately, track the billing arrangement, and use a bounded eesel CLI review when work crosses into support.

Kenneth PanganKenneth PanganSep 29, 2025
Illustration of an eesel e tile processing papers and envelopes
Guides

A complete guide to Claude Code permissions

Set Claude Code permissions with deny, ask, and allow rules, then use eesel CLI to prepare a reviewable support decision without confusing tool access with action approval.

Kenneth PanganKenneth PanganSep 9, 2025
Two people beside connected workflow boxes and dashed lines, with a large eesel e
Guides

A practical guide to your terminal configuration for Claude Code

Unlock the full potential of Anthropic's agentic coding assistant with the right setup. Our guide walks you through the essential terminal configuration for Claude Code, from basic settings files to advanced customization, so you can code faster and smarter.

Stevia PutriStevia PutriSep 30, 2025
A complete guide to model configuration in Claude Code
Guides

A complete guide to model configuration in Claude Code

Master model configuration in Claude Code with our detailed overview. We break down the models, configuration methods, pricing, and why developer-only tools aren't enough for total business automation.

Stevia PutriStevia PutriSep 30, 2025
A developer's guide to settings.json in Claude Code (2025)
Guides

Claude Code settings.json: Complete config guide (2026)

Struggling with Claude Code's confusing configuration? Our deep dive into settings.json explains the file hierarchy, key settings, and common issues developers face. Learn how to tame the complexity or opt for a simpler, more reliable platform for building AI agents.

Stevia PutriStevia PutriSep 29, 2025
Illustration of three people reviewing access controls beside the Claude logo
Guides

Claude Code admin controls: a practical guide for IT and DevOps

Configure Claude Code settings, permissions, managed MCP, sandboxing, and server-managed controls without mistaking client policy for a security perimeter.

Rama Adi NugrahaRama Adi NugrahaJun 9, 2026
Illustration of a presenter pointing to a flip chart
Guides

Amazon Bedrock Claude Code: setup, model access, and limits

How to configure Claude Code through Amazon Bedrock, choose a current inference profile, manage IAM access, and validate the setup.

Kenneth PanganKenneth PanganSep 30, 2025
Split black and colorful geometric artwork for The Way of Code by Rick Rubin with Claude.
Guides

The 5 Claude AI apps you can build without code

See five useful Claude Artifact app types, what sharing, AI, MCP, and storage allow, and the checks to make before publishing.

Katelin TeenKatelin TeenJan 9, 2026

Ready to hire your AI teammate?

Set up in minutes. No credit card required.

Get started free