Changelog¶
All notable changes to this project will be documented in this file.
[0.3.0] - 2026-04-30¶
Added¶
- Optional port config file —
peekr.config.jsonand.peekrrc.jsoncan define proxy, reverse proxy, UI, and app ports. --config <path>flag — proxy, run, and UI modes can load port settings from a custom JSON config file.- Common port resolver — CLI flags now override config values, which override defaults, with validation for valid TCP port ranges.
- Node 18 loader fallback —
peekr runnow usesNODE_OPTIONS=--requirewith a CJS intercept loader on older Node 18 releases that do not support--import.
Changed¶
- CLI startup and request/response output now use compact terminal panels with clearer status, scope, command, and log file details.
- Documentation now references the scoped package name
@marcosreuquen/peekr. - README and site docs now document default ports
49999,49998, and49997consistently. - Child process interception docs now describe both ESM and CJS loader paths.
Fixed¶
--no-forwardmock responses now use the shared response logger instead of raw divider output.- CLI port parsing now rejects invalid configured ports instead of accepting
NaNor out-of-range values.
[0.2.0] - 2026-04-19¶
Added¶
- Modify action — replaces mock/transform with a unified
modifyaction that mutates request and/or response headers and body req.setBody,req.setHeaders,req.removeHeaders— mutate the outgoing requestres.setBody,res.setHeaders,res.removeHeaders— mutate the response returned to the clientnoForwardflag — skip the upstream entirely and return the modified response directly- Header keys are normalized to lowercase on
setHeadersto avoid duplicate/casing issues - Breakpoint system — pause requests mid-flight for manual inspection and resume
breakpointrule action withphasefield (request,response,both)- Breakpoints panel in the dashboard showing all pending pauses
- REST endpoint
POST /api/breakpoints/:id/resolveto resume or abort - SSE
breakpointevent broadcasts new pauses to connected clients - Dashboard breakpoints panel — dedicated panel (▮ toggle) listing pending breakpoints with Resume/Abort controls
updateRuleAPI — partial-update endpoint for modifying existing rules in place- Expanded rules form — rules drawer now renders full edit cards with action-specific fields visible inline
- Host filter dropdown — top bar now has a Host filter populated from captured traffic
- Press Enter to open dashboard —
peekr uiprompts to open the dashboard URL on Enter key
Changed¶
- Rules engine:
mockandtransformactions replaced bymodify;phaseguard removed in favour of direction-based matching - Context menu: "Mock this host" replaced by "Modify this host"
- Proxy core and reverse proxy: transform/breakpoint pipeline integrated; console output suppressed in UI mode
- Rules REST API base URL changed from
:3000/api/rulesto:49997/api/rules(dashboard port) - Log drawer filter buttons relabelled: Raw / INFO / WARN / ERROR (was ALL / INFO / WARN / ERR)
- Rule match badge MCK renamed to MOD
Fixed¶
- Modify pipeline: header keys normalized to lowercase on
setHeaders - Rules engine:
modifyConfig/timeoutMsnot reset on partialupdateRulecalls - UI: context menu onclick handlers use
data-*attributes and escape user content to prevent XSS - UI: breakpoint resolve endpoint handles empty body gracefully
- Proxy core: async callbacks wrapped in try/catch; mock/edit handling uses
else-ifto avoid double-match - Reverse proxy:
console.errorsuppressed in UI mode to keep dashboard output clean
[0.1.0] - 2026-04-17¶
Added¶
- Proxy mode (
peekr --target <host>) — standalone HTTP capture proxy with optional forwarding - Auto-intercept mode (
peekr run -- <command>) — spawns child process with monkey-patched HTTP/HTTPS - Live web dashboard (
peekr ui) — real-time request table with detail drawer - Dark theme, sortable columns, method/status/direction filters
- JSON syntax highlighting for headers, payloads, and responses
- 3-state detail drawer (collapsed / medium / expanded)
- Dynamic rules engine — block or mock requests by host/method/path via context menu or rules drawer
- REST API for rules management (GET/POST/DELETE
/api/rules) - SSE broadcast on rule changes
- Reverse proxy for incoming traffic capture with timing data (durationMs, responseSize, resHeaders)
- Child process log decoupling — pipes stdout/stderr to
.peekr/app.log+ in-memory buffer + SSE broadcast peekr logscommand — follow app logs from peekr-managed child processes- Loop detection in proxy core (508 response)
- Double-patch guard in intercept template