Skip to content

Releases: kevin-lee/claude-proxymate

Release list

v0.1.0

Choose a tag to compare

@github-actions github-actions released this 05 Jul 01:53
1b78e69

Claude Proxymate 0.1.0

2026-07-04

The first release of Claude Proxymate — a real-time man-in-the-middle (MITM) proxy that intercepts and visualizes API traffic between Claude Code and the Anthropic API. It surfaces the hidden prompt-augmentation machinery (CLAUDE.md injection, slash commands, skills, sub-agents, MCP tools) in a desktop UI, with privacy-first masking so captures are safe to share.

Built as a hybrid Scala Native + Scala.js application: a native HTTP proxy binary forwards traffic to Anthropic and streams capture events into an Electron UI written entirely in Scala.

Highlights

Live capture

Every request/response pair between Claude Code and api.anthropic.com is captured and reconstructed from the SSE stream into a full message. The capture's own response is shown in the Messages tab in place, rather than lagging one turn behind.

Mechanism detection

Each request body is scanned for prompt-augmentation mechanisms and highlighted in place: injected CLAUDE.md / rules / memory sections, output styles, slash commands, skills, sub-agents, and MCP tools.

Request Anatomy

A dashboard on the Analysis tab that quantifies a request: per-segment byte/token estimates, structural facts (message / turn / tool / image / thinking counts, cache-eligible system blocks), a mechanism inventory, and flagged anomalies.

Token cost

Per-capture cost breakdown driven by model-based pricing.

Privacy masking

Display-only — raw captures are never mutated:

  • Sensitive field-name values (api_key, *_token, password, account / device / session identifiers, …).
  • Known-shape secrets in free text (sk-ant-… and friends) via regex detection, with longer-than-canonical tokens masked whole.
  • Verbose correlation IDs (msg_…, toolu_…) compacted to a short hash tag.
  • Sensitive URL query-string values.
  • Presenter mode — one decisive global mask-all / reveal-all toggle (⌘⇧M).
  • WYSIWYG Copy — the clipboard follows the on-screen mask state, in both the detail view and the Messages tab.

Search

Across request / response / analysis / messages, with match navigation.

Messages tab

All is the first sub-tab and the default selection.

Theme and i18n

  • System / light / dark theme, tracking the OS prefers-color-scheme.
  • English and Korean, externalized to .properties files and loaded at runtime.

Onboarding

A getting-started image carousel that walks new users through the app.

Security hardening

  • Chromium OS-level sandbox enabled on the renderer (sandbox: true).
  • All renderer-initiated navigations blocked on webContents.
  • Strict Content-Security-Policy meta tag on the generated index.html.
  • DevTools disabled in packaged builds, with an env-flag escape hatch.
  • A confirm prompt on the Clear button before captures are discarded.

Architecture

Five cross-compiled modules:

Module Platform Purpose
claude-proxymate-core JVM / JS / Native Shared core: data models, JSON codecs, SSE parser, CLAUDE.md parser, mechanism detector, Request Anatomy, masking primitives, IPC / element-ID constants, JSON-line protocol. The JVM side also generates index.html (ScalaTags) and the i18n JSON at build time.
claude-proxymate-server Scala Native HTTP proxy binary. Intercepts requests, forwards to Anthropic, tees the response, emits events as JSON lines on stdout. Default TLS backend is libcurl via FFI (CurlMain); an http4s Ember / s2n backend (Main) is available as a fallback.
claude-proxymate-electron Scala.js Electron main process. Spawns the native proxy, reads its stdout, forwards events to the renderer via IPC.
claude-proxymate-preload Scala.js Electron preload bridge. Exposes IPC channels to the renderer via contextBridge.
claude-proxymate-renderer Scala.js Electron renderer UI. All frontend logic, built on a testable View/logic split (pure ScalaTags *View modules render to strings; sibling modules wire them to the DOM).

Install

Prebuilt macOS DMGs are published on the Releases page:

  • Apple Silicon (M1/M2/M3/…): Claude-Proxy-0.1.0-arm64.dmg
  • Intel: Claude-Proxy-0.1.0-x64.dmg

Open the DMG and drag Claude Proxymate to Applications.

These builds are not yet signed with an Apple Developer ID or notarized, so
macOS Gatekeeper will refuse to open the app on the first try. Right-click the
app in Applications and choose Open, or clear the quarantine flag with
xattr -dr com.apple.quarantine "/Applications/Claude Proxymate.app". Signed +
notarized builds are planned once an Apple Developer ID is available.

Acknowledgements

Inspired by an early version of claude-inspector.

Full Changelog: https://github.com/kevin-lee/claude-proxymate/commits/v0.1.0