#!/bin/bash # import-qwen-oauth.sh - Import Qwen OAuth to any platform # Usage: source import-qwen-oauth.sh && set -e echo "╔═══════════════════════════════════════════════════════════════╗" echo "║ QWEN OAUTH CROSS-PLATFORM IMPORTER ║" echo "║ FREE: 2,000 requests/day, 60 req/min ║" echo "╚═══════════════════════════════════════════════════════════════╝" # Check if Qwen Code is installed if ! command -v qwen &> /dev/null; then echo "📦 Qwen Code not found. Installing..." npm install -g @qwen-code/qwen-code@latest fi # Check if Qwen Code is authenticated if [ ! -d ~/.qwen ]; then echo "" echo "❌ Qwen Code not authenticated." echo "" echo "Please run:" echo " qwen" echo " /auth # Select 'Qwen OAuth'" echo "" echo "Then run this script again." exit 1 fi # Find OAuth token file TOKEN_FILES=$(find ~/.qwen -name "*.json" -type f 2>/dev/null) if [ -z "$TOKEN_FILES" ]; then echo "❌ No OAuth token found in ~/.qwen/" echo " Please authenticate first: qwen && /auth" exit 1 fi # Try to extract token from various file formats QWEN_TOKEN="" for TOKEN_FILE in $TOKEN_FILES; do # Try different JSON structures QWEN_TOKEN=$(cat "$TOKEN_FILE" | jq -r '.access_token // .token // .accessToken // .credentials?.token // empty' 2>/dev/null) if [ -n "$QWEN_TOKEN" ] && [ "$QWEN_TOKEN" != "null" ]; then echo "✅ Found token in: $TOKEN_FILE" break fi done if [ -z "$QWEN_TOKEN" ] || [ "$QWEN_TOKEN" = "null" ]; then echo "❌ Could not extract OAuth token" echo " Token files found but no valid token structure" echo " Try re-authenticating: qwen && /auth" exit 1 fi # Export environment variables export OPENAI_API_KEY="$QWEN_TOKEN" export OPENAI_BASE_URL="https://api.qwen.ai/v1" export OPENAI_MODEL="qwen3-coder-plus" # Save to .env for persistence mkdir -p ~/.qwen cat > ~/.qwen/.env << ENVEOF # Qwen OAuth Configuration for Cross-Platform Use # Generated: $(date) OPENAI_API_KEY=$QWEN_TOKEN OPENAI_BASE_URL=https://api.qwen.ai/v1 OPENAI_MODEL=qwen3-coder-plus # Usage: # source ~/.qwen/.env && openclaw # source ~/.qwen/.env && nanobot gateway # source ~/.qwen/.env && picoclaw gateway # source ~/.qwen/.env && zeroclaw gateway ENVEOF chmod 600 ~/.qwen/.env echo "" echo "✅ Qwen OAuth imported successfully!" echo "" echo " OPENAI_API_KEY=***${QWEN_TOKEN: -8}" echo " OPENAI_BASE_URL=$OPENAI_BASE_URL" echo " OPENAI_MODEL=$OPENAI_MODEL" echo "" echo "✅ Configuration saved to ~/.qwen/.env" echo "" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "Usage with platforms:" echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━" echo "" echo " source ~/.qwen/.env && openclaw" echo " source ~/.qwen/.env && nanobot gateway" echo " source ~/.qwen/.env && picoclaw gateway" echo " source ~/.qwen/.env && zeroclaw gateway" echo "" echo "Free tier limits: 2,000 requests/day, 60 requests/minute" echo ""