{ "description": "Real-time Cloudflare Pages deployment monitor with clickable deploy link. Shows build status, time since last deployment, and a clickable OSC 8 hyperlink to the deployment URL (Cmd+click). Setup: Export environment variables 'export CLOUDFLARE_API_TOKEN=your_token', 'export CLOUDFLARE_ACCOUNT_ID=your_account_id' and 'export CLOUDFLARE_PROJECT_NAME=your_project_name', or add them to a .env file in your project root. Get your API token from dash.cloudflare.com/profile/api-tokens (needs 'Cloudflare Pages: Read' permission), your account ID from the right sidebar of any zone in the Cloudflare dashboard, and the project name from your Pages project settings.", "statusLine": { "type": "command", "command": "bash -c 'input=$(cat); DIR=$(echo \"$input\" | jq -r \".workspace.current_dir\" 2>/dev/null || echo \".\"); if [ -f \"$DIR/.env\" ]; then while IFS= read -r line; do case \"$line\" in CLOUDFLARE_API_TOKEN=*) export CLOUDFLARE_API_TOKEN=\"${line#*=}\";; CLOUDFLARE_ACCOUNT_ID=*) export CLOUDFLARE_ACCOUNT_ID=\"${line#*=}\";; CLOUDFLARE_PROJECT_NAME=*) export CLOUDFLARE_PROJECT_NAME=\"${line#*=}\";; esac; done < \"$DIR/.env\"; fi; if [ -z \"$CLOUDFLARE_API_TOKEN\" ] || [ -z \"$CLOUDFLARE_ACCOUNT_ID\" ] || [ -z \"$CLOUDFLARE_PROJECT_NAME\" ]; then echo \"☁️ Cloudflare 🔧 config-needed | set CLOUDFLARE_API_TOKEN, CLOUDFLARE_ACCOUNT_ID & CLOUDFLARE_PROJECT_NAME\"; exit 0; fi; DEPLOY_DATA=$(curl -s -H \"Authorization: Bearer $CLOUDFLARE_API_TOKEN\" \"https://api.cloudflare.com/client/v4/accounts/$CLOUDFLARE_ACCOUNT_ID/pages/projects/$CLOUDFLARE_PROJECT_NAME/deployments?per_page=1\" 2>/dev/null); if [ -n \"$DEPLOY_DATA\" ] && [ \"$DEPLOY_DATA\" != \"null\" ]; then RAW_STATE=$(printf %s \"$DEPLOY_DATA\" | jq -r \".result[0].latest_stage.status // empty\"); FULL_URL=$(printf %s \"$DEPLOY_DATA\" | jq -r \".result[0].url // empty\"); CREATED=$(printf %s \"$DEPLOY_DATA\" | jq -r \".result[0].created_on // empty\"); if [ -n \"$CREATED\" ] && [ \"$CREATED\" != \"null\" ]; then CREATED_CLEAN=$(echo \"$CREATED\" | sed -E \"s/\\.[0-9]+Z$/Z/\"); CREATED_EPOCH=$(echo \"$CREATED_CLEAN\" | jq -R \"fromdateiso8601\" 2>/dev/null); if [ -n \"$CREATED_EPOCH\" ]; then AGO=$(( ($(date +%s) - CREATED_EPOCH) / 60 )); TIME_AGO=\"${AGO}m ago\"; else TIME_AGO=\"unknown\"; fi; else TIME_AGO=\"unknown\"; fi; case \"$RAW_STATE\" in success) STATE=\"READY\"; STATUS_ICON=\"✅\";; active) STATE=\"BUILDING\"; STATUS_ICON=\"🔄\";; idle) STATE=\"QUEUED\"; STATUS_ICON=\"⏳\";; failure|canceled) STATE=\"ERROR\"; STATUS_ICON=\"❌\";; *) STATE=\"unavailable\"; STATUS_ICON=\"❓\";; esac; else STATE=\"unavailable\"; FULL_URL=\"\"; TIME_AGO=\"unknown\"; STATUS_ICON=\"❓\"; fi; echo \"☁️ Cloudflare | $STATUS_ICON $STATE | ⏰ $TIME_AGO | \u001b]8;;$FULL_URL\u0007🌐 Deploy\u001b]8;;\u0007\"'" } }