[BUG] Status line won't show if "disableAllHooks": true

Status Fixed / completed
Maintainer reply ✓ Yes — dicksontsai
Activity 5 comments · opened Nov 16, 2025 · closed Nov 16, 2025
💡 Likely answer: A maintainer (dicksontsai, collaborator) responded on this thread — see the highlighted reply below.

Preflight Checklist

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

What's Wrong?

Statusline won't show up if you have set "disableAllHooks": true.

What Should Happen?

<img width="1379" height="697" alt="Image" src="https://github.com/user-attachments/assets/815bd05a-5d80-4974-bb16-a9509aae52cc" />

The above is the behaviour users see when we don't have "disableAllHooks": true in the user's settings.json

If the user has set that though:

<img width="1368" height="774" alt="Image" src="https://github.com/user-attachments/assets/e46a1fc5-4d28-47c2-afb1-9fc8a625ccff" />

/doctor response:

> /doctor 

 Diagnostics
 └ Currently running: npm-global (2.0.42)
 └ Path: /opt/homebrew/Cellar/node/23.7.0/bin/node
 └ Invoked: /opt/homebrew/bin/claude
 └ Config install method: global
 └ Auto-updates: default (true)
 └ Update permissions: Yes
 └ Search: OK (vendor)

I don't see any mention of this in the debug files either.

Error Messages/Logs

No errors associated with status line visible in logs, doctor also gives you nothing.

Steps to Reproduce

  1. Set "disableAllHooks": true e.g.:

/Users/username/Projects/claude/config/settings.json

{
  "includeCoAuthoredBy": false,
  "permissions": {
    "allow": [
      "Bash(npm run lint)",
      "Bash(npm run test)",
      "Bash(npm run build)",
      "Bash(git status)",
      "Bash(git diff)",
      "Bash(git log)"
    ],
    "deny": [
      "Read(.env)",
      "Read(.env.*)",
      "Edit(.env)",
      "Edit(.env.*)",
      "Bash(npm run package)"
    ],
    "ask": [
      "Bash(npm install)",
      "Bash(git commit)",
      "Bash(git push)"
    ]
  },
  "model": "haiku",
  "disableAllHooks": true,
  "statusLine": {
    "type": "command",
    "command": "npx -y ccstatusline@latest",
    "padding": 0
  },
  "alwaysThinkingEnabled": true
}
  1. statusline won't show
  2. remove "disableAllHooks": true,
  3. statusline will show

Claude Model

None

Is this a regression?

I don't know

Last Working Version

_No response_

Claude Code Version

2.0.42 (Claude Code)

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

5 Comments

dicksontsai collaborator · 11 months ago

I would say this is working as intended. Status line also runs a custom bash command, so the security posture is essentially the same as other hooks.

What's your particular use case for disabling hooks, which to me implies that you prefer to keep certain hooks registered?

antonbelev · 11 months ago

Thanks @dicksontsai, that's a fair point! I'm actually building an open source Claude config GUI, and I was testing different settings, one of which was "disableAllHooks": true. At first I didn't noticed my statusline disappeared when I added that until later when I investigated further.

I think you are right about the behaviour. The only question then is - should we see at least a debug line in the debug files to state the reason why the statusline wasn't loaded?

dicksontsai collaborator · 11 months ago

Sure, I can add that.

antonbelev · 11 months ago

Thank you! Feel free to close this issue, appreciate the swift response from your side @dicksontsai

github-actions[bot] · 10 months ago

This issue has been automatically locked since it was closed and has not had any activity for 7 days. If you're experiencing a similar issue, please file a new issue and reference this one if it's relevant.