Skip to content

Conversation

@DragonFSKY
Copy link
Contributor

@DragonFSKY DragonFSKY commented Dec 3, 2025

Summary

Add automatic detection for Claude CLI installed via native methods that may not be in PATH:

  • curl https://claude.ai/install.sh | bash~/.local/bin/claude
  • brew install --cask claude-code/opt/homebrew/bin/claude (Apple Silicon) or /usr/local/bin/claude (Intel)

When claude is not found in PATH, the script checks these paths in order and adds the first found to PATH.

Changes

  • Added multi-path detection logic in check_claude_cli_integration() function
  • Checks paths: ~/.local/bin, /opt/homebrew/bin, /usr/local/bin
  • Informative log messages showing which path was found and added

Test plan

  • Tested with simulated native install scenario
  • Verified log messages display correctly
  • Verified subsequent claude commands work after PATH modification
  • Confirmed paths match official installation methods

References

Closes #303

@gemini-code-assist
Copy link
Contributor

Summary of Changes

Hello @DragonFSKY, I'm Gemini Code Assist1! I'm currently reviewing this pull request and will post my feedback shortly. In the meantime, here's a summary to help you and other reviewers quickly get up to speed!

This pull request enhances the 'run-server.sh' script by implementing automatic detection for the Claude CLI when it's installed via its native method. This ensures that users who have installed Claude in the default '/.local/bin' location will have the CLI correctly recognized and added to their session's PATH, even if '/.local/bin' is not pre-configured in their environment, thereby improving usability and reducing setup friction.

Highlights

  • Native Claude CLI Detection: The script now automatically detects the Claude CLI when installed via its native installer.
  • Default Install Location: The native installer places the 'claude' executable at '~/.local/bin/claude', which is often not included in the system's default PATH.
  • PATH Modification: If the Claude CLI is not found in the system's PATH, the script now checks for its presence in '/.local/bin/claude' and, if found, adds '/.local/bin' to the current session's PATH.
Using Gemini Code Assist

The full guide for Gemini Code Assist can be found on our documentation page, here are some quick tips.

Invoking Gemini

You can request assistance from Gemini at any point by creating a comment using either /gemini <command> or @gemini-code-assist <command>. Below is a summary of the supported commands on the current page.

Feature Command Description
Code Review /gemini review Performs a code review for the current pull request in its current state.
Pull Request Summary /gemini summary Provides a summary of the current pull request in its current state.
Comment @gemini-code-assist Responds in comments when explicitly tagged, both in pull request comments and review comments.
Help /gemini help Displays a list of available commands.

Customization

To customize Gemini Code Assist for GitHub experience, repository maintainers can create a configuration file and/or provide a custom code review style guide (such as PEP-8 for Python) by creating and adding files to a .gemini/ folder in the base of the repository. Detailed instructions can be found here.

Limitations & Feedback

Gemini Code Assist may make mistakes. Please leave feedback on any instances where its feedback is incorrect or counter productive. You can react with 👍 and 👎 on @gemini-code-assist comments. If you're interested in giving your feedback about your experience with Gemini Code Assist for Github and other Google products, sign up here.

You can also get AI-powered code generation, chat, as well as code reviews directly in the IDE at no cost with the Gemini Code Assist IDE Extension.

Footnotes

  1. Review the Privacy Notices, Generative AI Prohibited Use Policy, Terms of Service, and learn how to configure Gemini Code Assist in GitHub here. Gemini can make mistakes, so double check it and use code with caution.

Copy link
Contributor

@gemini-code-assist gemini-code-assist bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Code Review

This pull request adds support for detecting the Claude CLI when installed via the native installer. The implementation correctly checks for the CLI at ~/.local/bin/claude and adds it to the PATH if found. My review includes a suggestion to refactor the CLI check to improve efficiency and reduce redundant commands, making the script more maintainable.

Comment on lines 1235 to 1253
if ! command -v claude &> /dev/null; then
if [[ -x "$HOME/.local/bin/claude" ]]; then
print_info "Found native installed Claude CLI at ~/.local/bin/claude"
export PATH="$HOME/.local/bin:$PATH"
print_success "Added ~/.local/bin to PATH"
fi
fi

if ! command -v claude &> /dev/null; then
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

medium

The logic to check for the Claude CLI is correct, but it could be made more efficient. Currently, command -v claude might be executed multiple times. You can refactor this to check only once by combining the logic for the native install check and the subsequent check for when the CLI is not found.

For example, you could structure it like this:

    if ! command -v claude &> /dev/null; then
        # Check for native installed Claude CLI if not found in PATH
        if [[ -x "$HOME/.local/bin/claude" ]]; then
            print_info "Found native installed Claude CLI at ~/.local/bin/claude"
            export PATH="$HOME/.local/bin:$PATH"
            print_success "Added ~/.local/bin to PATH"
        else
            echo ""
            print_warning "Claude CLI not found"
            echo ""
            read -p "Would you like to add Zen to Claude Code? (Y/n): " -n 1 -r
            echo ""
            if [[ $REPLY =~ ^[Nn]$ ]]; then
                print_info "Skipping Claude Code integration"
                return 0
            fi

            echo ""
            echo "Please install Claude Code first:"
            echo "  Visit: https://docs.anthropic.com/en/docs/claude-code/cli-usage"
            echo ""
            echo "Then run this script again to register MCP."
            return 1
        fi
    fi

    # Now the rest of the function can assume 'claude' is available.

This refactoring would make the code more efficient and easier to follow. Since this change would affect code outside of the current diff, I'm providing it as an example in the comment body rather than a direct suggestion.

Add automatic detection for Claude CLI installed via native methods:
- curl https://claude.ai/install.sh | bash -> ~/.local/bin/claude
- brew install --cask claude-code -> /opt/homebrew/bin/claude (Apple Silicon)
- brew install --cask claude-code -> /usr/local/bin/claude (Intel Mac/Linux)

When claude is not found in PATH, the script checks these paths in order
and adds the first found to PATH, with informative log messages.

Closes BeehiveInnovations#303
DragonFSKY added a commit to DragonFSKY/pal-mcp-server that referenced this pull request Dec 6, 2025
…ns#354)

- Auto-detect Claude CLI at ~/.local/bin, /opt/homebrew/bin, /usr/local/bin
- Add found path to PATH when claude not in system PATH
- Closes BeehiveInnovations#303
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Zen does not support native installed claude code

1 participant