I had a very unfortunate weather during my vacation and here is the result - mpshots, a small open-source CLI for making JetBrains Marketplace screenshots. You give it raw IDE captures and a short YAML spec. It renders a consistent set of 16:9 slides: headline and short text on a tinted background, next to a cropped, zoomed-in IDE window.
Four layouts: text left or right of the IDE window, a centred “hero” slide, or the window alone. You can add highlights around UI elements and overlay a second window.
Every slide comes out at one aspect ratio, 1920, 2560 or 3840 px wide, as the media guidelines ask.
mpshots validate warns before you upload if IDE text will be too small to read in the carousel, or if a screenshot is being upscaled and will look soft. --strict turns warnings into failures for CI.
mpshots grid draws a pixel grid over a capture so you can read off crop coordinates.
It’s plain Node 18+ and needs no headless browser.
Try it
npm i -g github:jreznot/mpshots#v0.1.0
mpshots init
mpshots build
Capture tip: capture with the IDE zoomed to 125–150% (View › Appearance › Zoom IDE), or on a Retina display. A capture at 100% zoom can’t be both readable and sharp once composed into a slide.
The README has two complete example sets, including slides from real captures of the Air plugin.
Feedback, issues and PRs are very welcome. I’d especially like to hear which layouts you’d need for your own plugin pages.
I love this idea. I can’t say how many plugins have screenshots in the wrong format, or just ugly, but a tool like this will undoubtedly be very useful (me first)
I used Junie Lite to port it to Rust. Claude Code was used to generate a detailed plan, then Junie Lite implemented it.
I asked Junie to fix things, again and again during one week (24/24). The code quality is far from optimal, but it works and the performance is good.
I won’t publish a github repo for that, because this is just for testing, I won’t maintain it, and I wanted a simple exe instead of Node.js stuff, but if you want to try it, you can play with this archive: https://www.extratoolspack.com/tmp2/mpshots.zip.
It contains the Rust sources, a Makefile, instructions to prepare Rust on Arch Linux, and you can find precompiled binaries for Linux and Windows x86 (I tested only the Windows binaries) in target/. You can use the Makefile to compile for Windows/Linux/macOS on x86 and ARM64.
So, even if Junie Lite was terribly slow, it did an acceptable job .
Haha, yes, I expected good performance for a Rust program.
The next step for me is to port svgo to Rust or Go, because I use it to optimize thousands of SVG files almost every day, and Node.js is too slow. And I don’t trust npm. mpshots was a good project to test the idea.