jetbrains-marketplace-reviews

Fetch and visualize reviews for any JetBrains Marketplace plugin. Use when (1) analyzing plugin review trends, (2) getting review statistics for a time period, (3) visualizing rating distributions, (4) monitoring user feedback. Triggers on requests like "get JetBrains reviews", "copilot plugin feedback", "JetBrains marketplace reviews", "visualize plugin ratings", "analyze JetBrains plugin reviews".

16 stars

Best use case

jetbrains-marketplace-reviews is best used when you need a repeatable AI agent workflow instead of a one-off prompt.

Fetch and visualize reviews for any JetBrains Marketplace plugin. Use when (1) analyzing plugin review trends, (2) getting review statistics for a time period, (3) visualizing rating distributions, (4) monitoring user feedback. Triggers on requests like "get JetBrains reviews", "copilot plugin feedback", "JetBrains marketplace reviews", "visualize plugin ratings", "analyze JetBrains plugin reviews".

Teams using jetbrains-marketplace-reviews should expect a more consistent output, faster repeated execution, less prompt rewriting.

When to use this skill

  • You want a reusable workflow that can be run more than once with consistent structure.

When not to use this skill

  • You only need a quick one-off answer and do not need a reusable workflow.
  • You cannot install or maintain the underlying files, dependencies, or repository context.

Installation

Claude Code / Cursor / Codex

$curl -o ~/.claude/skills/jetbrains-marketplace-reviews/SKILL.md --create-dirs "https://raw.githubusercontent.com/diegosouzapw/awesome-omni-skill/main/skills/data-ai/jetbrains-marketplace-reviews/SKILL.md"

Manual Installation

  1. Download SKILL.md from GitHub
  2. Place it in .claude/skills/jetbrains-marketplace-reviews/SKILL.md inside your project
  3. Restart your AI agent — it will auto-discover the skill

How jetbrains-marketplace-reviews Compares

Feature / Agentjetbrains-marketplace-reviewsStandard Approach
Platform SupportNot specifiedLimited / Varies
Context Awareness High Baseline
Installation ComplexityUnknownN/A

Frequently Asked Questions

What does this skill do?

Fetch and visualize reviews for any JetBrains Marketplace plugin. Use when (1) analyzing plugin review trends, (2) getting review statistics for a time period, (3) visualizing rating distributions, (4) monitoring user feedback. Triggers on requests like "get JetBrains reviews", "copilot plugin feedback", "JetBrains marketplace reviews", "visualize plugin ratings", "analyze JetBrains plugin reviews".

Where can I find the source code?

You can find the source code on GitHub using the link provided at the top of the page.

SKILL.md Source

# JetBrains Marketplace Reviews Skill

Fetch, analyze, and visualize reviews for any plugin on the JetBrains Marketplace.

## Well-Known Plugin IDs

| Plugin | ID | Slug |
|--------|----|------|
| GitHub Copilot | `17718` | `github-copilot--your-ai-pair-programmer` |
| JetBrains AI Assistant | `22282` | `ai-assistant` |

To find the ID of any plugin, open its JetBrains Marketplace page — the numeric ID is in the URL:
`https://plugins.jetbrains.com/plugin/{ID}-{slug}`

## Workflow

1. **Identify the plugin**: Determine the plugin ID from user input (default: 17718 for GitHub Copilot)
2. **Determine time scope**: Parse user input for the desired time range (e.g. "last 2 weeks", "all reviews", "since 2025-06-01")
3. **Fetch reviews**: Run the fetch script with the appropriate flags
4. **Visualize**: Run the visualize script against the fetched JSON
5. **Report**: Present summary statistics and the generated chart to the user

### Email Reports

When the user requests an email report or wants charts embedded in HTML:

1. **Fetch reviews** as usual
2. **Render email charts**: Use `render_email_charts.py` to generate an HTML report with base64-encoded PNG chart images. Email clients strip `<script>` tags, so JavaScript-based charting (Chart.js, Plotly) cannot work. This script uses matplotlib to render charts server-side and embeds them as `<img src="data:image/png;base64,...">` — universally supported by email clients.
3. **Send**: Pass the HTML output as the email body via the `send-email` skill

Alternatively, use `visualize_reviews.py --base64` to get individual chart images as a JSON dict for custom HTML assembly.

## Reference Scripts

The `scripts/` directory contains **reference implementations** that the AI agent should invoke directly. The scripts accept CLI arguments so the agent can adapt them to any user request without modifying the source.

### fetch_reviews.py

Fetches reviews from the JetBrains Marketplace API with full pagination support. Works with **any** plugin ID.

```bash
# Default: GitHub Copilot, last 3 weeks
py .github/skills/jetbrains-marketplace-reviews/scripts/fetch_reviews.py \
  --output /path/to/reviews.json

# Specific plugin, last N weeks
py .github/skills/jetbrains-marketplace-reviews/scripts/fetch_reviews.py \
  --plugin-id 22282 --plugin-slug ai-assistant \
  --weeks 8 --output /path/to/reviews.json

# All reviews from the beginning
py .github/skills/jetbrains-marketplace-reviews/scripts/fetch_reviews.py \
  --plugin-id 17718 --all --output /path/to/reviews.json

# Date range with full content
py .github/skills/jetbrains-marketplace-reviews/scripts/fetch_reviews.py \
  --since 2025-01-01 --until 2025-06-30 --full-content \
  --output /path/to/reviews.json
```

**CLI options:**

| Flag | Description | Default |
|------|-------------|---------|
| `--plugin-id ID` | JetBrains plugin numeric ID | `17718` |
| `--plugin-slug SLUG` | Plugin URL slug (for review links) | `github-copilot--your-ai-pair-programmer` |
| `--all` | Fetch every review (paginated) | off |
| `--weeks N` | Fetch last N weeks | 3 (when no scope given) |
| `--since YYYY-MM-DD` | Start date filter | none |
| `--until YYYY-MM-DD` | End date filter | none |
| `--full-content` | Include author name and comment text | off |
| `--output PATH` | Output JSON file path | `scripts/reviews.json` |

### visualize_reviews.py

Generates visualization charts from the JSON data. **Auto-adapts** layout and granularity based on the time span of the data:

| Time Span | Granularity | Layout |
|-----------|-------------|--------|
| ≤ 30 days | Daily | 4-panel (2×2) |
| ≤ 365 days | Weekly | 4-panel (2×2) |
| > 365 days | Monthly | 6-panel (3×2) |

```bash
py .github/skills/jetbrains-marketplace-reviews/scripts/visualize_reviews.py \
  --input /path/to/reviews.json --output /path/to/chart.png \
  --title "My Plugin" --no-show
```

**CLI options:**

| Flag | Description | Default |
|------|-------------|---------|
| `--input PATH` | Input JSON file | `scripts/reviews.json` |
| `--output PATH` | Output PNG file | `scripts/review_analysis.png` |
| `--title TEXT` | Plugin name shown in chart titles | `JetBrains Plugin` |
| `--no-show` | Skip interactive display | off |
| `--base64` | Output each chart as base64 PNG (JSON dict) instead of a single image file. For email embedding. | off |

When `--base64` is used, the output is a JSON file (same path but `.json` extension) containing a dict of `{chart_name: base64_png_string}` pairs. Use these to build custom HTML emails with inline `<img>` tags.

### render_email_charts.py

Renders all review charts as base64-encoded PNG images and outputs a complete HTML report fragment suitable for embedding in email bodies. This is the recommended approach for email reports since email clients strip `<script>` tags (making Chart.js/Plotly unusable).

```bash
# Generate email-ready HTML report
py .github/skills/jetbrains-marketplace-reviews/scripts/render_email_charts.py \
  --input /path/to/reviews.json --output /path/to/report.html \
  --title "GitHub Copilot"

# Also export individual charts as JSON for custom use
py .github/skills/jetbrains-marketplace-reviews/scripts/render_email_charts.py \
  --input /path/to/reviews.json --output /path/to/report.html \
  --title "GitHub Copilot" --json-output /path/to/charts.json
```

**CLI options:**

| Flag | Description | Default |
|------|-------------|---------|
| `--input PATH` | Input JSON file | `scripts/reviews.json` |
| `--output PATH` | Output HTML file | `scripts/email_report.html` |
| `--title TEXT` | Plugin name shown in titles | `JetBrains Plugin` |
| `--json-output PATH` | Also save chart base64 data as JSON | none |

**Charts included:**
- Rating Distribution (bar chart)
- Average Rating by Year (bar chart, long-range only)
- Monthly Review Volume (bar chart)
- Monthly Average Rating Trend (line chart with 5-bucket moving avg + neutral line)
- Monthly Rating Breakdown (stacked bar)
- Rolling Average Rating (area chart, when enough data)
- Yearly Summary table, KPI cards, recent feedback tables

The output HTML uses inline styles and `<img src="data:image/png;base64,...">` tags, which are universally supported by email clients (Outlook, Gmail, Apple Mail, etc.).

## API Details

```
GET https://plugins.jetbrains.com/api/plugins/{plugin_id}/comments?size=100&page={page}
```

- API returns max 100 reviews per page; use `page=1,2,3…` for pagination
- Reviews are sorted newest-first

## JSON Data Schema

Each review object in the output JSON:

```json
{
  "id": 134243,
  "date": "2026-02-10",
  "rating": 5,
  "has_replies": false,
  "link": "https://plugins.jetbrains.com/plugin/17718-.../reviews#review=134243",
  "author": "Enes Oscar",
  "comment": "Overall, it provides a great experience..."
}
```

- `rating`: 0 = no rating given, 1-5 = star rating
- `author` and `comment` are only present when `--full-content` is used

## Usage Examples

- "Get the last 2 weeks of JetBrains Copilot reviews" → `--plugin-id 17718 --weeks 2`
- "Fetch all Copilot JetBrains reviews ever" → `--plugin-id 17718 --all`
- "Show reviews for JetBrains AI Assistant from January 2025" → `--plugin-id 22282 --plugin-slug ai-assistant --since 2025-01-01 --until 2025-01-31`
- "Visualize the rating trend for the last 6 months" → `--weeks 26`
- "Analyze recent feedback with full review text" → `--weeks 3 --full-content`

## Dependencies

- Python 3.x (stdlib only for fetching)
- matplotlib, numpy (for visualization)
- scipy (optional, for trend smoothing)

Install: `py -m pip install matplotlib numpy scipy`

## Notes

- Reviews with `rating: 0` mean the user left a comment without giving a star rating
- The API rate-limits large batch requests; the fetch script paginates responsibly
- For long ranges, the visualize script automatically switches to monthly aggregation and a 6-panel layout with yearly summaries, stacked breakdowns, and rolling averages

Related Skills

bgo

10
from diegosouzapw/awesome-omni-skill

Automates the complete Blender build-go workflow, from building and packaging your extension/add-on to removing old versions, installing, enabling, and launching Blender for quick testing and iteration.

Coding & Development

mcp-create-declarative-agent

16
from diegosouzapw/awesome-omni-skill

Skill converted from mcp-create-declarative-agent.prompt.md

MCP Architecture Expert

16
from diegosouzapw/awesome-omni-skill

Design and implement Model Context Protocol servers for standardized AI-to-data integration with resources, tools, prompts, and security best practices

mathem-shopping

16
from diegosouzapw/awesome-omni-skill

Automatiserar att logga in på Mathem.se, söka och lägga till varor från en lista eller recept, hantera ersättningar enligt policy och reservera leveranstid, men lämnar varukorgen redo för manuell checkout.

math-modeling

16
from diegosouzapw/awesome-omni-skill

本技能应在用户要求"数学建模"、"建模比赛"、"数模论文"、"数学建模竞赛"、"建模分析"、"建模求解"或提及数学建模相关任务时使用。适用于全国大学生数学建模竞赛(CUMCM)、美国大学生数学建模竞赛(MCM/ICM)等各类数学建模比赛。

matchms

16
from diegosouzapw/awesome-omni-skill

Mass spectrometry analysis. Process mzML/MGF/MSP, spectral similarity (cosine, modified cosine), metadata harmonization, compound ID, for metabolomics and MS data processing.

managing-traefik

16
from diegosouzapw/awesome-omni-skill

Manages Traefik reverse proxy for local development. Use when routing domains to local services, configuring CORS, checking service health, or debugging connectivity issues.

managing-skills

16
from diegosouzapw/awesome-omni-skill

Install, find, update, and manage agent skills. Use when the user wants to add a new skill, search for skills that do something, check if skills are up to date, or update existing skills. Triggers on: install skill, add skill, get skill, find skill, search skill, update skill, check skills, list skills.

manage-agents

16
from diegosouzapw/awesome-omni-skill

Create, modify, and manage Claude Code subagents with specialized expertise. Use when you need to "work with agents", "create an agent", "modify an agent", "set up a specialist", "I need an agent for [task]", or "agent to handle [domain]". Covers agent file format, YAML frontmatter, system prompts, tool restrictions, MCP integration, model selection, and testing.

maintainx-automation

16
from diegosouzapw/awesome-omni-skill

Automate Maintainx tasks via Rube MCP (Composio). Always search tools first for current schemas.

mailsoftly-automation

16
from diegosouzapw/awesome-omni-skill

Automate Mailsoftly tasks via Rube MCP (Composio). Always search tools first for current schemas.

mails-so-automation

16
from diegosouzapw/awesome-omni-skill

Automate Mails So tasks via Rube MCP (Composio). Always search tools first for current schemas.