mitmweb: add an opt-in split request/response flow view by sleeyax · Pull Request #8487 · mitmproxy/mitmproxy · GitHub
Skip to content

mitmweb: add an opt-in split request/response flow view - #8487

Open
sleeyax wants to merge 5 commits into
mitmproxy:mainfrom
sleeyax:feat/web-flowview-split
Open

sleeyax wants to merge 5 commits into
mitmproxy:mainfrom
sleeyax:feat/web-flowview-split

Conversation

@sleeyax

@sleeyax sleeyax commented Oct 17, 2026 •

Copy link
Copy Markdown
Contributor

Description

Adds a web_split_flowview option that shows HTTP flows as side-by-side request and response panels with a draggable divider. It is off by default, so the current single-column layout stays the default. It can be toggled under Options → View Options, or set from the command line and config file like the other web_* options.

Notes on the diff:

  • The request panel holds the Request, Error, Connection, Timing and Comment tabs. The response panel holds Response and WebSocket, and shows a "Waiting for response…" placeholder until a response arrives.
  • Each panel keeps its own active tab (tabRequest/tabResponse in ui/flow), so switching tabs on one side doesn't reset the other. The single-column view keeps using the existing tab.
  • Non-HTTP flows (TCP, UDP, DNS) always use the single-column view.

Part of #7789, #7694.

Screenshots

image image

Checklist

  • I have updated tests where applicable.
  • I have added an entry to the CHANGELOG.

sleeyax and others added 5 commits October 17, 2026 15:47
For HTTP flows, render the request and response as side-by-side panels with a draggable divider and independent tab state (new selectRequestTab/selectResponseTab reducers).
The request panel carries request/error/connection/timing/comment; the response panel carries response/websocket, with a placeholder until the response arrives.
Non-HTTP flows (tcp/udp/dns) keep the existing single-column view.

Part of mitmproxy#7789, mitmproxy#7694.
Add a `web_split_flowview` option (default on) so the split HTTP flow view can be turned off in favor of the single-column tab view.
It is exposed as a "Split request/response view" checkbox under Options → Appearance, and is settable from the CLI and config file like the other web_* options.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Default `web_split_flowview` to off so HTTP flows keep the familiar single-column tab view unless the user enables the split panels.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
A menu group only fits three rows, so a fourth entry in Appearance pushed Reset Column Widths over the group legend.
View Options had a free row and already holds the other layout toggles.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

@lups2000 lups2000 left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thanks @sleeyax! I’ll take a closer look over the coming days :)

Two things/questions:

  1. Is there a reason why you didn’t implement it the same way as in your first prototype back then? Are you still planning to go in that direction? Since you implemented this as an option that can be enabled/disabled, I’m curious what you had in mind exactly. Do you think this solution works better?
  2. Since we now have two splitters, I made some UI/UX improvements to the splitter component in #8492. Let me know what you think!

Thanks for your work 🚀

@sleeyax

sleeyax commented Oct 18, 2026

Copy link
Copy Markdown
Contributor Author

This branch has not been deployed

No deployments
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants