Key Feature: Use FREE Qwen tier (2,000 req/day) with ANY platform! How it works: 1. Get Qwen OAuth: qwen && /auth (FREE) 2. Extract token from ~/.qwen/ 3. Configure any platform with token Supported platforms: - OpenClaw ✅ - NanoBot ✅ - PicoClaw ✅ - ZeroClaw ✅ - NanoClaw ✅ Configuration: export OPENAI_API_KEY="$QWEN_TOKEN" export OPENAI_BASE_URL="https://api.qwen.ai/v1" export OPENAI_MODEL="qwen3-coder-plus" Added: - import-qwen-oauth.sh script for automation - Cross-platform configuration examples - Qwen API endpoints reference - Troubleshooting guide Free tier: 2,000 requests/day, 60 requests/minute Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
100 lines
3.5 KiB
Bash
Executable File
100 lines
3.5 KiB
Bash
Executable File
#!/bin/bash
|
|
# import-qwen-oauth.sh - Import Qwen OAuth to any platform
|
|
# Usage: source import-qwen-oauth.sh && <platform-command>
|
|
|
|
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 ""
|