Loading...
Loading...
Review monitoring, filtering, and automated responses for Google Play. Use when managing user reviews and feedback.
npx skill4agent add tamtom/gplay-cli-skills gplay-review-managementgplay reviews list --package com.example.appgplay reviews list --package com.example.app --paginategplay reviews list \
--package com.example.app \
--output table# Get 1-star reviews
gplay reviews list --package com.example.app \
| jq '.reviews[] | select(.rating == 1)'
# Get 5-star reviews
gplay reviews list --package com.example.app \
| jq '.reviews[] | select(.rating == 5)'
# Get reviews with 3 stars or less
gplay reviews list --package com.example.app \
| jq '.reviews[] | select(.rating <= 3)'# Reviews from last 7 days
DATE_7_DAYS_AGO=$(date -u -v-7d +%Y-%m-%dT%H:%M:%SZ)
gplay reviews list --package com.example.app \
| jq --arg date "$DATE_7_DAYS_AGO" \
'.reviews[] | select(.comments[0].userComment.lastModified.time > $date)'# English reviews only
gplay reviews list --package com.example.app \
| jq '.reviews[] | select(.comments[0].userComment.language == "en")'# Find reviews mentioning "crash"
gplay reviews list --package com.example.app \
| jq '.reviews[] | select(.comments[0].userComment.text | contains("crash"))'gplay reviews get \
--package com.example.app \
--review-id REVIEW_IDgplay reviews reply \
--package com.example.app \
--review-id REVIEW_ID \
--text "Thank you for your feedback! We've fixed this issue in version 1.2.3."gplay reviews reply \
--package com.example.app \
--review-id REVIEW_ID \
--text "Thank you for reporting this issue. We've identified the problem and a fix will be available in the next update. Please update to version X.X.X when it's released."gplay reviews reply \
--package com.example.app \
--review-id REVIEW_ID \
--text "Thank you for your suggestion! We've added this to our roadmap and will consider it for a future release."gplay reviews reply \
--package com.example.app \
--review-id REVIEW_ID \
--text "Thank you so much for your kind words! We're glad you're enjoying the app."gplay reviews reply \
--package com.example.app \
--review-id REVIEW_ID \
--text "We're sorry you experienced a crash. This issue has been fixed in version X.X.X. Please update and let us know if you continue to have problems."#!/bin/bash
PACKAGE="com.example.app"
# Get all unreplied 1-star reviews
gplay reviews list --package $PACKAGE --paginate \
| jq -r '.reviews[] | select(.rating == 1 and (.comments | length == 1)) | .reviewId' \
| while read REVIEW_ID; do
echo "Replying to review: $REVIEW_ID"
gplay reviews reply \
--package $PACKAGE \
--review-id "$REVIEW_ID" \
--text "Thank you for your feedback. We're sorry to hear about your experience. Please email support@example.com so we can help resolve this issue."
donegplay reviews list --package com.example.app --paginate \
| jq '[.reviews[] | .rating] | group_by(.) | map({rating: .[0], count: length})'gplay reviews list --package com.example.app --paginate \
| jq '[.reviews[].rating] | add / length'gplay reviews list --package com.example.app --paginate \
| jq -r '.reviews[].comments[0].userComment.text' \
| tr '[:upper:]' '[:lower:]' \
| tr -s ' ' '\n' \
| sort | uniq -c | sort -rn | head -20gplay reviews list --package com.example.app --paginate \
| jq '.reviews[] | select(.comments[0].userComment.text | test("crash|freeze|hang"; "i"))'gplay reviews list --package com.example.app --paginate \
| jq '.reviews[] | select(.comments[0].userComment.text | test("competitor_name"; "i"))'gplay reviews list --package com.example.app --paginate \
| jq '.reviews[] | select(.comments[0].userComment.text | test("refund|money back"; "i"))'Thank you for reporting this. We've identified the issue and it will be fixed in our next update (version X.X.X). We appreciate your patience!Thank you for your feedback! This issue has been resolved in our latest version (X.X.X). Please update your app and let us know if you continue to experience any problems.Thank you for your feedback. We'd like to help resolve this issue. Could you please email us at support@example.com with more details about what happened? This will help us investigate further.Thank you for the suggestion! We've added this to our feature backlog and will consider it for a future release. Please keep the feedback coming!Thank you so much! We're thrilled to hear you're enjoying the app. If you have any suggestions for improvements, we'd love to hear them!#!/bin/bash
PACKAGE="com.example.app"
echo "=== Review Dashboard ==="
echo ""
# Total reviews
TOTAL=$(gplay reviews list --package $PACKAGE --paginate | jq '.reviews | length')
echo "Total reviews: $TOTAL"
# Rating distribution
echo ""
echo "Rating distribution:"
gplay reviews list --package $PACKAGE --paginate \
| jq -r '.reviews[] | .rating' \
| sort | uniq -c | sort -rn
# Avg rating
AVG=$(gplay reviews list --package $PACKAGE --paginate \
| jq '[.reviews[].rating] | add / length')
echo ""
echo "Average rating: $AVG"
# Unreplied reviews
UNREPLIED=$(gplay reviews list --package $PACKAGE --paginate \
| jq '[.reviews[] | select(.comments | length == 1)] | length')
echo ""
echo "Unreplied reviews: $UNREPLIED"
# Recent 1-star
echo ""
echo "Recent 1-star reviews:"
gplay reviews list --package $PACKAGE \
| jq -r '.reviews[] | select(.rating == 1) | "\(.comments[0].userComment.lastModified.time): \(.comments[0].userComment.text)"' \
| head -5# Add to crontab
0 9 * * * /path/to/check-reviews.sh#!/bin/bash
PACKAGE="com.example.app"
# Get unreplied 1-star and 2-star reviews
UNREPLIED=$(gplay reviews list --package $PACKAGE \
| jq '[.reviews[] | select(.rating <= 2 and (.comments | length == 1))] | length')
if [ "$UNREPLIED" -gt 0 ]; then
echo "⚠️ You have $UNREPLIED unreplied negative reviews!"
# Send notification (email, Slack, etc.)
fi#!/bin/bash
# Get reviews mentioning "support" or "help"
gplay reviews list --package com.example.app --paginate \
| jq -r '.reviews[] | select(.comments[0].userComment.text | test("support|help"; "i")) |
"Review ID: \(.reviewId)\nRating: \(.rating)\nText: \(.comments[0].userComment.text)\n---"' \
| mail -s "Support Reviews" support@example.com