An IntelliJ IDEA plugin that acts as an HTTP reverse proxy between your frontend and your Spring Boot backend. Point your frontend at the proxy port, keep your backend where it is, and inspect every request without changing a line of application code.
Version: 0.1-alpha β targeting IntelliJ IDEA 2025.3+
| Feature | Description |
|---|---|
| HTTP Proxy | Transparent reverse proxy. Configure listen port and target host/port directly in the tool window. |
| Traffic Table | Live table of captured exchanges β method, path, status, duration, size, timestamp. Sortable columns, filter bar. |
| Request / Response Inspection | Full headers and pretty-printed body for every exchange. |
| Response Body Search | Search bar with match counter and ββ navigation inside response bodies. |
| Pinned Requests | Right-click β Pin to protect an exchange from being cleared. Pinned rows are highlighted in amber. |
| Request Replay | Edit method, URL, headers, and body, then re-send. Replayed exchanges appear separately in the table. |
| Payload Diff | Double-click a POST/PUT request to navigate to the Spring controller method. If the JSON body doesn't match the @RequestBody DTO (missing fields, extra fields, type mismatches), a diff dialog is shown automatically. |
| Endpoint Overview | "Endpoints" tab β scan the project for all @RestController/@Controller methods, browse by method/path/handler, filter by path, double-click to navigate. Call counts and last status update live from captured traffic. |
| HAR Export / Import | Save all captured traffic as a HAR 1.2 file. Import HAR files to replay or inspect recorded traffic. |
| Copy as cURL | One-click copy of the selected request as a curl command. |
| Generate MockMvc Test | Right-click any exchange β generate a ready-to-paste @Test method using MockMvcRequestBuilders. |
| Persistent Settings | Proxy port, target host, and target port are persisted per project in .idea/apiricot.xml. |
- Install the plugin (
.zipfrom Releases or via Settings β Plugins β Install from Disk). - Open your Spring Boot project.
- Open the APIricot tool window (bottom bar).
- Set the proxy port (default
8090) and the target (defaultlocalhost:8080). - Click βΆ Start.
- Point your frontend at
http://localhost:8090instead ofhttp://localhost:8080. - Requests appear in the Traffic table in real time.
If your frontend runs on a different origin from the proxy, add the proxy origin to your Spring Boot CORS config:
@Bean
public CorsFilter corsFilter() {
var config = new CorsConfiguration();
config.addAllowedOrigin("http://localhost:8090"); // proxy port
config.addAllowedMethod("*");
config.addAllowedHeader("*");
var source = new UrlBasedCorsConfigurationSource();
source.registerCorsConfiguration("/**", config);
return new CorsFilter(source);
}- Inbound:
com.sun.net.httpserver.HttpServer(JDK built-in) - Outbound:
java.net.http.HttpClient - Concurrency: Java 21 virtual threads β no external networking dependencies
- JSON: Gson (bundled with IntelliJ Platform)
- PSI:
JavaAnnotationIndexfor controller/endpoint discovery
./gradlew buildPlugin
# Output: build/distributions/APIricot-0.1-alpha.zipRun in a sandboxed IDE:
./gradlew runIde