NEW v0.0.3 — themes, Postman compat, streaming

The HTTP client that knows
your image is base64.

Multimodal LLM APIs want your image as base64 inside JSON. Generic HTTP clients leave you to copy-paste a 300KB blob by hand. MMRequest doesn't.

bytes stay in your browser Postman-compatible export
The problem

Vision LLMs want JSON.
You hand-carry a 300KB string.

Every multimodal API — GPT-4o, Claude vision, Gemini, vLLM, Llama vision — expects the file as a base64 string buried inside the request body. Generic HTTP clients (Postman, Insomnia, Bruno) don't help: they were built for REST in a pre-multimodal world.

Without MMRequest
The loop you've been doing manually:
  • Drop image into a base64-encoder website. Hope it doesn't log your file.
  • Copy the 300KB string. Paste it into Postman's body. Watch the editor stutter.
  • Image changes? Re-encode. Re-paste. Re-format the JSON. Re-send.
  • Push a Postman collection — your teammate gets a 300KB blob in their git diff.
  • Debug "Content-Type mismatch" on a multimodal endpoint that takes 12 different body shapes.
With MMRequest
The new loop:
  • Drop the file. Encoded in your browser by FileReader. Bytes never leave your machine.
  • Reference {{base64Image}} wherever your API expects it. JSON body stays human-readable.
  • Send. Substitution happens at the network boundary — collection files stay 1 KB, not 300.
  • Export to Postman when teammates ask for it. They don't need MMRequest to run it.
  • Stream merged. Reasoning + content chunks rejoin into one clean JSON, not 200 NDJSON lines.
How it works

Three steps. No proxies. No upload services.

Everything happens in your browser — no cloud, no account, no proxy server in front of your API.

01 · DROP

Attach the file.

Drag & drop, file picker, or ⌘ + V paste. Image or audio. Multiple files.

02 · REFERENCE

Use the variable.

Drop {{base64Image}} or {{rawBase64Image}} wherever the API expects it. Custom names allowed.

03 · SEND

Hit ⌘+Enter.

MMRequest substitutes at the network boundary. Inspect via Pretty, Raw, Stream, Headers, or Console.

vs. existing tools

It's not Postman, and that's the point.

Postman, Insomnia, and Bruno are excellent general HTTP clients. MMRequest is built around one specific workflow they leave to you. Here's what differs.

Postman / Insomnia / Bruno
MMRequest
Auto base64 for images / audio Drop a file → bound to a variable
Manual
Built-in
Ready-made LLM API templates OpenAI · Claude · Gemini · vLLM bodies, one click
~ Community-hosted
Curated, built-in
Streaming response merge NDJSON / SSE chunks → one combined JSON
Raw chunks
Auto-merged
Reasoning token capture o-series / DeepSeek reasoning + content joined
None
Both channels
Collapsible JSON viewer Long base64 strings fold per-field
~ Flood
Per-field fold
Privacy Where do your bodies + tokens live?
~ Cloud-synced
Browser only
Postman Collection v2.1 import / export Real base64 embedded — runs standalone
Native
Compatible
Whole-app themes + system sync Light/dark + 10 hand-tuned palettes
~ Theme limited
10 themes
Bottom line: if you call multimodal LLM APIs, MMRequest removes the one step that breaks the rest of your workflow. Keep using Postman for everything else — and import/export between them whenever you need.
Features

All the HTTP-client niceties.
Plus the one thing nobody else does.

Built on the actual day-to-day workflow developers have against LLM APIs.

🖼

Auto base64 — your file, in your body.

Drag, paste, or pick. Encoded in-browser via FileReader. Multiple files, raw + data-URL variants, renameable variables.

// 3 files attached {{base64Image}} → 34 KB {{base64Image2}} → 28 KB {{base64Audio}} → 184 KB // substituted only at Send time
📦

Postman compatible.

Export to Collection v2.1 with real base64 embedded — runs anywhere. Import Postman collections too. No lock-in.

🌊

Streaming, merged.

A Stream tab merges chunked NDJSON / SSE (incl. reasoning tokens) into one combined JSON. OpenAI, vLLM, Anthropic, Gemini, or your own.

🌲

Collapsible JSON.

Pretty view folds per field. Long strings collapse with "…expand" — base64 stops flooding your screen.

⌨️

VS Code-style editor.

CodeMirror: bracket match, multi-cursor, padded line numbers, ⌘ + / comments.

🗂️

Tabs & collections.

Multi-session, drag & drop reorder, pin favorites. ⌘ + S save · ⌘ + E rename.

Themes

Ten themes.
Pick one — or sync with your system.

Whole-app recoloring (not just an accent). Seven dark, three light. Auto day/night follows your OS.

🌙 Midnight
🌊 Ocean
🌲 Forest
🌌 Aurora
🌅 Sunset
🩸 Crimson
❄ Nord
☀ Daylight
📄 Paper
🌿 Mint
Changelog
v0.0.3
shipped · 2026-05-27

The biggest release yet.

🎨
10 themes + system syncSeven dark, three light. Whole-app recoloring, ambient gradient, brand-tinted UI.
📦
Postman compatibleExport to Collection v2.1 with real base64 embedded. Import Postman collections.
🌊
Stream tabMerges NDJSON / SSE chunks (incl. reasoning tokens) into one combined JSON.
🌲
Collapsible JSON viewerPer-field fold. Long strings collapse with "…expand" — no more base64 floods.
⌨️
VS Code-style body editorCodeMirror with bracket matching, multi-cursor, padded line numbers, ⌘ + / comment toggle.
🗂️
Tabs & collections polishRight-click menu, drag & drop reorder, pin favorites, rename / duplicate / copy, search.
Install

Stop pasting base64.
Start shipping.

Free during beta. Users who sign in before public launch keep free access after paid plans launch.

Get on the Chrome Web Store →
Got feedback? Join us on Discord →