if ___x_cmd os is win; then
    ___X_CMD_CLAUDE_CODE_GIT_BASH_PATH="$CLAUDE_CODE_GIT_BASH_PATH"
    [ -n "$___X_CMD_CLAUDE_CODE_GIT_BASH_PATH" ] || \
        ___X_CMD_CLAUDE_CODE_GIT_BASH_PATH="$( ___x_cmd pwsh path gitbash --windows )"
fi

___x_cmd_claude___runmain(){
    local claudearg
    arg:init:x  claudearg
    while [ $# -gt 0 ]; do
        case "$1" in
            --yolo)     arg:add claudearg "--dangerously-skip-permissions" ; shift ;;
            *)          arg:add claudearg "$1" ; shift ;;
        esac
    done
    eval ___x_cmd_claude___runcmd  "$claudearg" -- '"$@"'
}

___x_cmd_claude___runcmd(){
    if ___x_cmd_hascmd claude; then
        ___x_cmd_claude___runcmd(){
            CLAUDE_CODE_GIT_BASH_PATH="$___X_CMD_CLAUDE_CODE_GIT_BASH_PATH" \
                ___x_cmd_cmds claude "$@"
        }
    else
        ___x_cmd env use claude-code >&2 || return $?
        ___x_cmd_claude___runcmd(){
            CLAUDE_CODE_GIT_BASH_PATH="$___X_CMD_CLAUDE_CODE_GIT_BASH_PATH" \
                ___x_cmd snap --run claude "$@"
        }
    fi && ___x_cmd_claude___runcmd "$@"
}

___x_cmd_claude___install(){
    ___x_cmd env use claude-code
}
