Skip to content

Commit 8cc74f9

Browse files
committed
fix(claude-code): make claude-unsafe fully bypass permission prompts
Consolidates the redundant claude-bypass/claude-danger aliases into one claude-unsafe (--dangerously-skip-permissions is documented as equivalent to --permission-mode bypassPermissions). That flag alone still honors permissions.nix's explicit ask list (git push, sudo, curl, etc.), so it wasn't actually a no-prompt escape hatch. Add an explicit --settings override with an empty ask array - CLI-arg precedence replaces that array outright - so the alias truly skips all prompts, while deny rules (rm -rf / circuit breaker) still merge across every settings layer and keep applying.
1 parent 56f9c92 commit 8cc74f9

1 file changed

Lines changed: 7 additions & 2 deletions

File tree

  • modules/home/programs/terminal/tools/claude-code

modules/home/programs/terminal/tools/claude-code/default.nix

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -64,8 +64,13 @@ in
6464
xdg.dataFile."icons/claude.ico".source = claudeIcon;
6565

6666
home.shellAliases = {
67-
"claude-bypass" = "claude --permission-mode bypassPermissions";
68-
"claude-danger" = "claude --dangerously-skip-permissions";
67+
# --dangerously-skip-permissions / --permission-mode bypassPermissions alone still
68+
# honor permissions.nix's explicit `ask` list (git push, sudo, curl, etc.) - only an
69+
# explicit `--settings` override with an empty `ask` array clears it. `deny` still
70+
# merges across every settings layer regardless, so the rm -rf / circuit breaker
71+
# in permissions.nix keeps applying even under this alias.
72+
"claude-unsafe" =
73+
''claude --permission-mode bypassPermissions --settings '{"permissions":{"ask":[],"defaultMode":"bypassPermissions"}}' '';
6974
};
7075

7176
programs.claude-code = {

0 commit comments

Comments
 (0)