{"name":"permissions.blockReadsOutsideWorkingDirectories","slug":"permissions-blockreadsoutsideworkingdirectories","family":"setting","title":"Settings keys","noun":"settings key","description":"Make the file tools refuse reads outside the [working directories](https:\/\/code.claude.com\/docs\/en\/permissions.md#working-directories) in every permission mode","description_source":"docs","described_by":{"doc":"claude-code\/settings-reference","title":"All settings"},"presence":{"first_seen":null,"removed_in":null,"in_current_build":false,"newest_mined":"2.1.319","builds":0,"mined_builds":159,"first_cited":{"version":"2.1.257","released_at":"2026-09-01 17:15:33","spans":7}},"aliases":[],"entries":[{"version":"2.1.314","anchor":"read-block-error-for-upload-screening","heading":"File uploads now respect the setting that blocks reads outside working folders","line":"A file passed for upload is now refused with an error when `permissions.blockReadsOutsideWorkingDirectories` blocks reading it","released_at":"2026-10-30 00:12:56","reason":"found in this entry's text, named in this entry"},{"version":"2.1.275","anchor":"new-closed-set-decision-reason-code-field-on-permission-de","heading":"New closed-set decision_reason_code field on permission decisions","line":"New decision_reason_code field distinguishes specific reasons behind a permission decision","released_at":"2026-09-17 20:20:31","reason":"found in this entry's text"},{"version":"2.1.273","anchor":"bash-too-complex-command-handling-reworked-with-a-per-reas","heading":"Bash 'too complex' command handling reworked with a per-reason-kind table gating the outside-working-directory read block","line":"Bash's 'too complex to check' read-block guard now applies via a general table covering more refusal reasons, not just one hardcoded case","released_at":"2026-09-15 18:06:34","reason":"found in this entry's text"},{"version":"2.1.273","anchor":"background-memory-extraction-now-skips-when-reads-are-locked","heading":"Background memory extraction now skips when reads are locked to the working directory","line":"Background memory extraction now skips entirely when reads are locked to the working directory","released_at":"2026-09-15 18:06:34","reason":"found in this entry's text"},{"version":"2.1.273","anchor":"bash-commands-too-complex-for-ast-analysis-now-get-blocked-o","heading":"Bash commands too complex for AST analysis now get blocked outright under the read-block setting","line":"Bash commands too complicated to analyze are now blocked outright when reads are locked to the working directory","released_at":"2026-09-15 18:06:34","reason":"found in this entry's text"},{"version":"2.1.271","anchor":"new-auto-mode-guard-subshells-and-multi-directory-change-co","heading":"New auto-mode guard: subshells and multi-directory-change commands can't bypass the read block","line":"With blockReadsOutsideWorkingDirectories on, Bash subshells and multi-cd commands are now refused instead of evaluated","released_at":"2026-09-14 19:45:19","reason":"found in this entry's text"},{"version":"2.1.269","anchor":"new-read-block-bypass-guard-for-glob-obscured-path-segm","heading":"New read-block bypass guard for glob-obscured .. path segments","line":"A new check blocks reads that hide a '..' path segment behind a glob character to slip past directory restrictions","released_at":"2026-09-11 18:12:49","reason":"found in this entry's text"},{"version":"2.1.269","anchor":"sandboxed-command-deny-message-and-blockoutsidereads-flow-re","heading":"Sandboxed-command deny message and blockOutsideReads flow renamed\/reworked","line":"Internal rework of the sandbox 'reads outside working directory' deny dialog, same message and behavior","released_at":"2026-09-11 18:12:49","reason":"found in this entry's text"},{"version":"2.1.257","anchor":"new-permission-setting-blockreadsoutsideworkingdirectories","heading":"New permission setting: blockReadsOutsideWorkingDirectories","line":"A new permissions setting blocks any file read outside your working directories, in prompts and in the sandbox.","released_at":"2026-09-01 17:15:33","reason":"found in this entry's text, named in this entry"},{"version":"2.1.257","anchor":"new-settings-key-to-confine-file-reads-to-trusted-working-di","heading":"New settings key to confine file reads to trusted working directories","line":"Reads outside your working directories can be made to fail closed, with a prompt option that persists the setting.","released_at":"2026-09-01 17:15:33","reason":"found in this entry's text, named in this entry"}],"entries_total":11,"docs":[{"source":"claude-code","path":"settings-reference","title":"All settings","documented":true},{"source":"claude-code","path":"changelog","title":"Claude Code changelog","documented":false},{"source":"claude-code","path":"memory","title":"How Claude remembers your project","documented":false},{"source":"claude-code","path":"permission-modes","title":"Choose a permission mode","documented":false},{"source":"claude-code","path":"permissions","title":"Configure permissions","documented":false},{"source":"claude-code","path":"sandboxing","title":"Configure the sandboxed Bash tool","documented":false},{"source":"claude-docs","path":"third-party\/claude-desktop\/code","title":"Code in Claude Desktop on 3P","documented":false}],"docs_total":7,"gates":[],"related":[{"name":"permissions","slug":"permissions","description":"Set allow, ask, and deny rules and the default [permission mode](https:\/\/code.claude.com\/docs\/en\/permission-modes.md)"},{"name":"permissions.additionalDirectories","slug":"permissions-additionaldirectories","description":"Give Claude file access to [directories outside the current one](https:\/\/code.claude.com\/docs\/en\/permissions.md#working-directories)"},{"name":"permissions.allow","slug":"permissions-allow","description":"Approve listed [tool uses](https:\/\/code.claude.com\/docs\/en\/permissions.md#permission-rule-syntax) without a prompt"},{"name":"permissions.ask","slug":"permissions-ask","description":"Always prompt before listed [tool uses](https:\/\/code.claude.com\/docs\/en\/permissions.md#permission-rule-syntax)"},{"name":"permissions.blockReadsExemptPaths","slug":"permissions-blockreadsexemptpaths","description":"`permissions.blockReadsExemptPaths` lists paths that stay readable when `blockReadsOutsideWorkingDirectories` is on, and is read only from flag settings"},{"name":"permissions.blockWritesOutsideWorkingDirectories","slug":"permissions-blockwritesoutsideworkingdirectories","description":"Make the `Write`, `Edit`, and `NotebookEdit` tools refuse paths outside the [working directories](https:\/\/code.claude.com\/docs\/en\/permissions.md#working-directories) in every permission mode, apart from [some of Claude Code's own files](#what-the-write-block-refuses-and-what-stays-writable)"},{"name":"permissions.defaultMode","slug":"permissions-defaultmode","description":"Set the default [permission mode](https:\/\/code.claude.com\/docs\/en\/permission-modes.md#which-mode-a-session-starts-in) for new sessions"},{"name":"permissions.deny","slug":"permissions-deny","description":"Block listed [tool uses](https:\/\/code.claude.com\/docs\/en\/permissions.md#permission-rule-syntax), including reads of files that hold secrets"},{"name":"permissions.denyInsteadOfPrompting","slug":"permissions-denyinsteadofprompting","description":"Claude Code now passes along a `permissions.denyInsteadOfPrompting` setting when it is set to true, next to the read and write block settings"},{"name":"permissions.disableAutoMode","slug":"permissions-disableautomode","description":"Set `disableAutoMode` to \"disable\" to stop Claude Code ever falling back to auto permission mode."}],"url":"https:\/\/changelogs.core-directive.com\/reference\/setting\/permissions-blockreadsoutsideworkingdirectories","family_url":"https:\/\/changelogs.core-directive.com\/reference\/setting.json"}