Skip to content

Instantly share code, notes, and snippets.

@Pobega
Created December 11, 2025 14:55
Show Gist options
  • Select an option

  • Save Pobega/dfe338902439a16408a0c97d440fa3db to your computer and use it in GitHub Desktop.

Select an option

Save Pobega/dfe338902439a16408a0c97d440fa3db to your computer and use it in GitHub Desktop.
Copilot Show Usage Script
#!/usr/bin/bash
TOKEN=$(cat ~/.config/github-copilot/apps.json | jq '.[].oauth_token' | sed 's/^"\(.*\)"$/\1/')
JSON=$(curl -s -H "Authorization: Bearer $TOKEN" https://api.github.com/copilot_internal/user)
data=$(echo $JSON | jq -r '.quota_snapshots.premium_interactions')
entitlement=$(echo $data | jq -r '.entitlement')
remaining=$(echo $data | jq -r '.remaining')
percent=$(echo $data | jq -r '.percent_remaining')
unlimited=$(echo $data | jq -r '.unlimited')
overage_permitted=$(echo $data | jq -r '.overage_permitted')
reset_date=$(echo $JSON | jq -r '.quota_reset_date')
used=$(( entitlement - remaining ))
status="Limited"
if [ "$overage_permitted" = "true" ]; then
overage="Permitted ✓"
else
overage="Not Permitted "
fi
used_percent=$(awk "BEGIN {print 100 - $percent}")
# Usage bar
filled=$(awk "BEGIN {print int($used_percent / 100 * 20)}")
empty=$(( 20 - filled ))
bar_usage=""
if [ $filled -gt 0 ]; then bar_usage=$(printf '█%.0s' $(seq 1 $filled)); fi
if [ $empty -gt 0 ]; then bar_usage="${bar_usage}$(printf '░%.0s' $(seq 1 $empty))"; fi
# Days left
days_left=$(( ($(date -d "$reset_date" +%s) - $(date +%s)) / 86400 + 1 ))
# Time bar
filled_time=$(( days_left / 4 ))
if [ $filled_time -gt 20 ]; then filled_time=20; fi
if [ $filled_time -lt 0 ]; then filled_time=0; fi
empty_time=$(( 20 - filled_time ))
bar_time=""
if [ $filled_time -gt 0 ]; then bar_time=$(printf '█%.0s' $(seq 1 $filled_time)); fi
if [ $empty_time -gt 0 ]; then bar_time="${bar_time}$(printf '░%.0s' $(seq 1 $empty_time))"; fi
# Output
echo "Premium Interactions"
echo "- Used: $used / $entitlement"
echo " $bar_usage ($(printf "%.1f" $used_percent)%)"
echo "- Remaining: $remaining"
echo "- Percentage: $percent%"
echo "- Status: $status"
echo "- Overage: $overage"
echo ""
echo "> Quota resets on: $reset_date"
echo "> $bar_time ($days_left days left)"
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment