[BUG] Can't open Claude

Resolved 💬 3 comments Opened Oct 1, 2025 by CoultonF Closed Jan 7, 2026

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?

when I execute Claude CLI I get this error:

578 | - This tool allows Claude Code to read images (eg PNG, JPG, etc). When reading an image file the contents are presented visually as Claude Code is a multimodal LLM.${Zl()?
579 | - This tool can read PDF files (.pdf). PDFs are processed page by page, extracting both text and visual content for analysis.
:""}
580 | - This tool can read Jupyter notebooks (.ipynb files) and returns all cells with their outputs, combining code, text, and visualizations.
581 | - This tool can only read files, not directories. To read a directory, use an ls command via the ${_8} tool.
582 | - You have the capability to call multiple tools in a single response. It is always better to speculatively read multiple files as a batch that are potentially useful.
583 | - If you read a file that exists but has empty contents you will receive a system reminder warning in place of file contents.`;var lA5=["allow","deny","ask"];function pA5(Z,G){if(!Z||!Z.permissions)return[];let{permissions:W}=Z,Y=[];for(let X of lA5){let B=W[X];if(B)for(let J of B)Y.push({source:G,ruleBehavior:X,ruleValue:sF(J)})}return Y}function iA5(Z,G){if(!Z.allowedTools||Z.allowedTools.length<1)return[];let W=new Set;for(let X of G)if(X.ruleBehavior==="allow"&&X.source==="localSettings")W.add(qX(X.ruleValue));let Y=new Set;for(let X of Z.allowedTools)if(!W.has(X))Y.add(X);return Array.from(Y)}function nA5(Z,G){if(!Z.ignorePatterns||Z.ignorePatterns.length<1)return[];let W=new Set;for(let X of G)if(X.ruleBehavior==="deny"&&X.source==="localSettings"&&X.ruleValue.toolName===OB&&X.ruleValue.ruleContent!==void 0)W.add(X.ruleValue.ruleContent);let Y=new Set;for(let X of Z.ignorePatterns)if(!W.has(X))Y.add(X);return Array.from(Y).map((X)=>({toolName:OB,ruleContent:X}))}function Ts1(){let Z=SY();if(!Z.allowedTo | ... truncated

TypeError: undefined is not an object (evaluating 'G.allowedTools')
at U70 (/$bunfs/root/claude:583:1372)
at daG (/$bunfs/root/claude:1684:5432)
at <anonymous> (/$bunfs/root/claude:3706:122)
at <anonymous> (/$bunfs/root/claude:3697:6237)
at _parseCommand (/$bunfs/root/claude:528:3115)
at parseAsync (/$bunfs/root/claude:525:4208)
at parseAsync (/$bunfs/root/claude:525:4220)
at d3X (/$bunfs/root/claude:3733:1512)
at d3X (/$bunfs/root/claude:3697:1559)
at h3X (/$bunfs/root/claude:3696:1519)

Bun v1.2.19 (Linux arm64)

What Should Happen?

I should be able to run Claude

Error Messages/Logs

578 | - This tool allows Claude Code to read images (eg PNG, JPG, etc). When reading an image file the contents are presented visually as Claude Code is a multimodal LLM.${Zl()?`
579 | - This tool can read PDF files (.pdf). PDFs are processed page by page, extracting both text and visual content for analysis.`:""}
580 | - This tool can read Jupyter notebooks (.ipynb files) and returns all cells with their outputs, combining code, text, and visualizations.
581 | - This tool can only read files, not directories. To read a directory, use an ls command via the ${_8} tool.
582 | - You have the capability to call multiple tools in a single response. It is always better to speculatively read multiple files as a batch that are potentially useful.
583 | - If you read a file that exists but has empty contents you will receive a system reminder warning in place of file contents.`;var lA5=["allow","deny","ask"];function pA5(Z,G){if(!Z||!Z.permissions)return[];let{permissions:W}=Z,Y=[];for(let X of lA5){let B=W[X];if(B)for(let J of B)Y.push({source:G,ruleBehavior:X,ruleValue:sF(J)})}return Y}function iA5(Z,G){if(!Z.allowedTools||Z.allowedTools.length<1)return[];let W=new Set;for(let X of G)if(X.ruleBehavior==="allow"&&X.source==="localSettings")W.add(qX(X.ruleValue));let Y=new Set;for(let X of Z.allowedTools)if(!W.has(X))Y.add(X);return Array.from(Y)}function nA5(Z,G){if(!Z.ignorePatterns||Z.ignorePatterns.length<1)return[];let W=new Set;for(let X of G)if(X.ruleBehavior==="deny"&&X.source==="localSettings"&&X.ruleValue.toolName===OB&&X.ruleValue.ruleContent!==void 0)W.add(X.ruleValue.ruleContent);let Y=new Set;for(let X of Z.ignorePatterns)if(!W.has(X))Y.add(X);return Array.from(Y).map((X)=>({toolName:OB,ruleContent:X}))}function Ts1(){let Z=SY();if(!Z.allowedTo | ... truncated 

TypeError: undefined is not an object (evaluating 'G.allowedTools')
      at U70 (/$bunfs/root/claude:583:1372)
      at daG (/$bunfs/root/claude:1684:5432)
      at <anonymous> (/$bunfs/root/claude:3706:122)
      at <anonymous> (/$bunfs/root/claude:3697:6237)
      at _parseCommand (/$bunfs/root/claude:528:3115)
      at parseAsync (/$bunfs/root/claude:525:4208)
      at parseAsync (/$bunfs/root/claude:525:4220)
      at d3X (/$bunfs/root/claude:3733:1512)
      at d3X (/$bunfs/root/claude:3697:1559)
      at h3X (/$bunfs/root/claude:3696:1519)

Bun v1.2.19 (Linux arm64)

Steps to Reproduce

578 | - This tool allows Claude Code to read images (eg PNG, JPG, etc). When reading an image file the contents are presented visually as Claude Code is a multimodal LLM.${Zl()?
579 | - This tool can read PDF files (.pdf). PDFs are processed page by page, extracting both text and visual content for analysis.
:""}
580 | - This tool can read Jupyter notebooks (.ipynb files) and returns all cells with their outputs, combining code, text, and visualizations.
581 | - This tool can only read files, not directories. To read a directory, use an ls command via the ${_8} tool.
582 | - You have the capability to call multiple tools in a single response. It is always better to speculatively read multiple files as a batch that are potentially useful.
583 | - If you read a file that exists but has empty contents you will receive a system reminder warning in place of file contents.`;var lA5=["allow","deny","ask"];function pA5(Z,G){if(!Z||!Z.permissions)return[];let{permissions:W}=Z,Y=[];for(let X of lA5){let B=W[X];if(B)for(let J of B)Y.push({source:G,ruleBehavior:X,ruleValue:sF(J)})}return Y}function iA5(Z,G){if(!Z.allowedTools||Z.allowedTools.length<1)return[];let W=new Set;for(let X of G)if(X.ruleBehavior==="allow"&&X.source==="localSettings")W.add(qX(X.ruleValue));let Y=new Set;for(let X of Z.allowedTools)if(!W.has(X))Y.add(X);return Array.from(Y)}function nA5(Z,G){if(!Z.ignorePatterns||Z.ignorePatterns.length<1)return[];let W=new Set;for(let X of G)if(X.ruleBehavior==="deny"&&X.source==="localSettings"&&X.ruleValue.toolName===OB&&X.ruleValue.ruleContent!==void 0)W.add(X.ruleValue.ruleContent);let Y=new Set;for(let X of Z.ignorePatterns)if(!W.has(X))Y.add(X);return Array.from(Y).map((X)=>({toolName:OB,ruleContent:X}))}function Ts1(){let Z=SY();if(!Z.allowedTo | ... truncated

TypeError: undefined is not an object (evaluating 'G.allowedTools')
at U70 (/$bunfs/root/claude:583:1372)
at daG (/$bunfs/root/claude:1684:5432)
at <anonymous> (/$bunfs/root/claude:3706:122)
at <anonymous> (/$bunfs/root/claude:3697:6237)
at _parseCommand (/$bunfs/root/claude:528:3115)
at parseAsync (/$bunfs/root/claude:525:4208)
at parseAsync (/$bunfs/root/claude:525:4220)
at d3X (/$bunfs/root/claude:3733:1512)
at d3X (/$bunfs/root/claude:3697:1559)
at h3X (/$bunfs/root/claude:3696:1519)

Bun v1.2.19 (Linux arm64)

Claude Model

None

Is this a regression?

Yes, this worked in a previous version

Last Working Version

_No response_

Claude Code Version

2.0.1

Platform

Anthropic API

Operating System

macOS

Terminal/Shell

Terminal.app (macOS)

Additional Information

_No response_

View original on GitHub ↗

This issue has 3 comments on GitHub. Read the full discussion on GitHub ↗