Case study

JoesProxy

A native Mac workbench for inspecting network traffic, preparing controlled response changes, and investigating streaming behavior.

Research prototype
JoesProxy application icon

Source code not yet released. The dedicated joesproxy.com website is a prototype planned for a separate, later launch. This page introduces the application; it is not a download announcement.

Follow a request through the system

A failed request rarely tells the whole story. JoesProxy brings captured traffic, response details, timing, and proposed changes into one native macOS workspace so developers can move from an observation to a focused investigation.

Request table beside a structured JSON response inspector, populated with example-host traffic
Inspect a selected request without losing the surrounding traffic. This real application capture uses demonstration data with the proxy stopped. Select any screenshot to view it at full size.

Find the endpoint that matters

Explorer groups requests by host and path. Instead of searching a flat log for every related call, expand the endpoint and keep its response beside the traffic tree.

Explorer with an expanded example host, GraphQL endpoint, and selected response
Grouped traffic gives an investigation structure. The selected example request remains visible in the response inspector.

See timing alongside the evidence

Timeline groups activity into lanes and places findings alongside request order. For streaming investigations, a gap between segment requests can be more useful than an isolated status code. The project’s media workflows also cover HLS and DASH manifests and advertising formats such as VAST and VMAP.

Request timeline with media segment lanes and a likely buffering risk finding
This synthetic scenario highlights a 9.9-second media-segment gap as a likely buffering risk. It is a diagnostic lead, not proof that playback buffered.

Prepare a change before activating it

Local overrides, request blocking, remote mapping, and response rewrites let developers explore controlled inputs without editing the upstream service. Review the proposed change and its scope before activation; preparation and live behavior are different states.

Batch editor defining Coast and Ridge demonstration items and an artwork binding, with zero active modifications
Define the change: two demonstration items have explicit identities, titles, and an artwork binding. These edits remain an unsaved draft with nothing active. Select the crop to see the original window.
Prepared review listing client and resource scope, a collection changing from one to three items, and zero active modifications
Review the prepared result: the collection grows from one to three items, with the changed fields and request scope listed explicitly. “Prepared · not serving” means no live traffic has changed.

Bind artwork to a specific response

The prepared response can associate an owned demonstration image with a named item. Inspect the JSON and asset metadata together before considering activation.

Prepared JSON linking the Coast item to an owned 640 by 360 demonstration image, with asset metadata and verification warnings
The Coast item references the prepared artwork. This shows insertion and binding—not delivery to a device or an image rendered by a target application.

Understand what could not be verified

An investigation should expose missing evidence, not hide it. Resource-delivery details help distinguish a prepared revision from an available asset and an observed delivery. Even successful transport does not establish what a client rendered or played.

Resource delivery evidence showing unavailable retained assets and investigation actions
A failure-diagnosis example: the retained asset could not be read. The interface explains the limitation rather than claiming successful delivery.

Keep the controls within reach

The compact HUD puts status, session counts, and controls in a small window alongside the application under investigation. Open the full workspace when you need deeper inspection.

Compact HUD showing stopped proxy status, seeded session counts, and proxy and MCP controls
The actual compact window with demonstration sessions and the proxy stopped. Instantaneous resource readings are not a performance benchmark.

Bring agents into a supervised workflow

An MCP interface and the joesproxyctl command-line tool support structured diagnostic workflows. The design separates observation, proposed changes, approval, and verification, with permissions and human supervision for sensitive access and state-changing actions.

Pending demonstration MCP request to simulate a 503 response, with its scope and local approval or denial choices
A seeded request waits for a local decision. This example proposes a create-disabled change for retry testing; no approval choice was selected. Approval itself does not execute the request.

The application combines Swift and SwiftNIO networking with an AppKit/SwiftUI interface. These are real application screenshots and faithful crops using demonstration data—not design mockups.

Availability

  • Source: not publicly released; no public repository link is available yet.
  • Dedicated website: prototype prepared, with a separate launch planned later.
  • Release date: not announced here.