WebhookMon for JetBrains IDEs
Debug webhooks where your code is.
A Webhooks tool window for IntelliJ IDEA, PyCharm, PhpStorm, WebStorm, GoLand, Rider and every other IDE on the IntelliJ Platform. Get a public URL for Stripe, Polar, GitHub, Shopify and Slack, see every delivery with a plain-English signature verdict, forward it to the app you're running, and replay it into a debug session so your breakpoints hit on demand.
IntelliJ Platform 2025.2 or later • macOS, Windows and Linux • Free tier, Pro with a 30-day trial
In your IDE: Settings → Plugins → Marketplace, search WebhookMon, install, then open the Webhooks tool window on the right.
Why in the IDE
Edit the handler, replay the event, watch it pass.
Testing a webhook handler usually means a tunnel, the provider's dashboard and a lot of re-triggering. The plugin keeps the whole loop next to your code.
Signature verdicts you can act on
Every delivery is checked the way its provider signs it, with your signing secret from the IDE's password safe. A failure says whether the secret is wrong, the timestamp is outside tolerance, or the header is malformed.
Replay into your debug session
The plugin finds the port of the run configuration you're running or debugging. Replay any event to it, re-signed with a fresh timestamp, and your breakpoints hit without asking Stripe to send it again.
Turn an event into a test
Save as Fixture writes the event into your project, plus a JUnit 5 + MockMvc test that re-signs it at test time, so a real payload becomes a regression test in one click.
Free and Pro
Start free. Try Pro for 30 days.
Free
- Your first endpoint and its public URL
- The last 20 events, with headers and body
- Signature verification for all five providers
- Live auto-forward to a port or URL you enter
Pro
- Replay any event, re-signed, into run and debug sessions
- Run configurations detected as forward targets
- Save as Fixture with a JUnit/MockMvc test
- Signed sample events for each provider
- Up to 10 endpoints and 1,000 stored events each
Pro is a monthly or yearly subscription bought and managed through JetBrains, with the 30-day trial started from the IDE. Pricing is on the Marketplace page. Terms: JetBrains plugin license.
The hosted relay is included for development and testing, up to 5,000 events a day per account and 300 a minute per endpoint; it is not meant for production traffic.
Questions
Plugin FAQ.
Which IDEs does it work in?
Any IDE on the IntelliJ Platform 2025.2 or later: IntelliJ IDEA, PyCharm, PhpStorm, WebStorm, GoLand, Rider, RubyMine, CLion and the rest, on macOS, Windows and Linux. Run-configuration port detection recognises the startup line of Spring Boot, Uvicorn, Gunicorn, Django, Puma, Laravel, Vite and ASP.NET Core, and falls back to any localhost URL a server prints; for anything else you set the port once.
Do I need the Mac app?
No. The plugin is its own client for the same relay and works on its own. If you use both, sign in with the same email: endpoints you made in one show up in the other. The Mac app and the plugin are licensed separately.
Can the relay read my webhooks?
No. Each event is sealed at the relay to your signed-in devices' public keys, so only your IDE (or Mac) can open it, and it is deleted once your device acknowledges it or after 24 hours. Signing secrets stay in your IDE's password safe. See the privacy page.
How many IDEs can I sign in?
An account can have up to five signed-in devices; each IDE installation and each Mac counts as one. You can see and revoke them in Settings → Tools → WebhookMon.
What does Save as Fixture write?
The event as JSON and its raw body under src/test/resources/webhooks/<provider>/. In a Spring MVC project it also writes a JUnit 5 + MockMvc test and a small signing helper, so the test re-signs the body with a test secret each run instead of failing on a stale signature. Other projects get the fixture files.
Is my provider supported?
Stripe, Polar, GitHub, Shopify and Slack are verified and re-signed natively, and you can configure a custom HMAC-SHA256 header for others. Any sender that can POST to a URL works for receiving, forwarding and replaying. Request a provider to get it added.