Skip to content

[BUG] Hot-reload permissions from settings.local.json without session restart #33829

Description

@amcclassics

Preflight Checklist

  • I have searched existing issues and this hasn't been reported yet
  • This is a single bug report (please file separate reports for different bugs)
  • I am using the latest version of Claude Code

What's Wrong?

Permission rules added to .claude/settings.local.json mid-session don't take effect until restart. Settings should be re-read dynamically so users don't
have to lose conversation context just to allow a new command.

What Should Happen?

  ## Expected behavior

  - Permission changes in settings files should be detected and applied dynamically without requiring a restart
  - Either watch the file for changes or re-read it before each permission check

Error Messages/Logs

● That's not something I can fix from my side — the permission rules I added should work, but your Claude Code session may need to be restarted to pick up the  
  new settings in .claude/settings.local.json.

  Try restarting Claude Code, then the docker * and /home/user/bin/kubectl * rules should take effect.

Steps to Reproduce

  During a deployment workflow, a user realizes certain bash commands (e.g., `docker push`, `kubectl rollout`) are prompting for approval. They add the     
  permission rules to `settings.local.json` but must restart their session to pick them up, losing conversation context and wasting time.
  EOF
  )")

Claude Model

None

Is this a regression?

No, this never worked

Last Working Version

No response

Claude Code Version

● Bash(claude --version) ⎿ 2.1.74 (Claude Code) ● Claude Code version 2.1.74.

Platform

Anthropic API

Operating System

Windows

Terminal/Shell

WSL (Windows Subsystem for Linux)

Additional Information

● Bash(gh create-issue anthropics/claude-code -t "Hot-reload permissions from settings.local.json without session restart" -d "## Problem

  When permission rules are added or modified in .claude/settings.local.json during an active session, they do not take effect until Claude Code is
  restarted. This creates friction when users need to allow new commands mid-session — they have to restart and lose their conversation context.

  ## Current behavior

  - Permissions from .claude/settings.local.json are only read at session startup
  - Adding a new rule (e.g., Bash(docker *)) requires ending and restarting the session
  - This is especially painful during long sessions with accumulated context

  ## Expected behavior

  - Permission changes in settings files should be detected and applied dynamically without requiring a restart
  - Either watch the file for changes or re-read it before each permission check

  ## Use case

  During a deployment workflow, a user realizes certain bash commands (e.g., docker push, kubectl rollout) are prompting for approval. They add the
  permission rules to settings.local.json but must restart their session to pick them up, losing conversation context and wasting time.")

Metadata

Metadata

Assignees

No one assigned

    Labels

    duplicateThis issue or pull request already exists

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions