Claude Code /permissions + blockWritesOutsideWorkingDirectories (2.1.314)
Need the Claude Code permissions map in one place? This guide covers /permissions, settings.json permission rules, why reckless bypass is a bad idea, and the new 2.1.314 blockWritesOutsideWorkingDirectories switch. We also checked claude --help for --permission-mode and --add-dir.

Claude Code permission topics usually sprawl across several posts. This one puts them together: what /permissions shows, permission fields in settings.json, why reckless bypass is a bad default, and the 2.1.314 permissions.blockWritesOutsideWorkingDirectories switch. It also separates “working directory no longer exists” from “writes blocked outside the working directories.”
What I saw: claude --help on this box lists --permission-mode, --add-dir, --dangerously-skip-permissions, --effort, and more; claude --version is still 2.1.312, so blockWrites behavior is taken from the official CHANGELOG 2.1.314 and labeled as documentation. Settings paths: settings.json location.
What /permissions does
Run /permissions in a session to review allow / deny rules and recently blocked calls (the CHANGELOG refers to /permissions listing blocked calls in several fixes). When something feels inconsistently blocked, open it before rewriting half your config.
Related: auto mode temporarily unavailable. Error hub: Claude Code Errors.
Permissions in settings.json
Rules live in settings.json (user / project / managed — see the path guide). Typical pattern: allow / deny for Bash, edits, MCP, and so on; the session mode comes from permission mode. On this box, --permission-mode help mentions values such as bypassPermissions and manual (check your build’s --help).
Add extra folders with --add-dir. Help text on this box discusses tools working inside the working directories (including --add-dir) and notes around bypass — read your local help for the exact wording.
Do not treat --dangerously-skip-permissions as a normal convenience flag. Help describes it as bypassing all permission checks. Use it only when you understand the risk and the environment is disposable. This article does not teach how to permanently disable every prompt.
blockWritesOutsideWorkingDirectories (2.1.314)
CHANGELOG 2.1.314 adds:
> permissions.blockWritesOutsideWorkingDirectories: Write, Edit and NotebookEdit refuse paths outside the working directories in every permission mode.
I inferred from that sentence (not reproduced on this 2.1.312 box): with the option on, even a wide permission mode will not let Write/Edit/NotebookEdit change files outside the working directories (and dirs added with --add-dir). That is a write-path boundary, not the same thing as “skip all prompts.”
Put the flag in your settings stack; verify in a throwaway folder. We did not screenshot the toggle here because this CLI is still 2.1.312.
Missing folder vs blocked outside writes
| Symptom | Usual meaning | First move |
|---|---|---|
| Working directory no longer exists | Folder moved/deleted, or session remembers an old path | Re-open the correct directory |
| Write refused outside the tree | Working-directory boundary or deny rule; from 2.1.314 maybe blockWrites… | Check path vs project / --add-dir; read /permissions |
| index.lock File exists | Git index lock, not permission JSON | index.lock guide |
Quick slash-command table
| Command | Role |
|---|---|
/permissions | Allow/deny + recent blocks |
/model | Model / effort level |
/status | Connection / account status |
/login /logout | Auth |
/compact | Shrink long-context history |
/resume | Resume a session |
Launch flags seen in local help: --permission-mode, --add-dir, --effort, --dangerously-skip-permissions (use with care). Effort 400: Invalid effort level.
FAQ
Does bypass turn off blockWrites?
Per 2.1.314 wording, blockWritesOutsideWorkingDirectories applies in every permission mode for Write/Edit/NotebookEdit. I inferred it is a hard write boundary, not a soft prompt. Confirm on ≥ 2.1.314.
Settings changed but nothing happened?
Check which settings layer you edited, whether --setting-sources excluded it, and whether managed policy overrides you. Paths: settings.json location.
Related to org effort caps?
No. Effort 400 is about model effort; permissions are tool boundaries. See Invalid effort level.