10:41One incident, played forward
Your logs, read like code.
Flux is an IDE for logs on your Mac — Graylog, Elasticsearch through Kibana, or the log files and containers you already have. Streams and endpoints are a tree you open; each gets its own console, timeline and grid. At 10:41, charges at a shop called acme start failing. This page plays that hour forward. Scroll, or do each step yourself.
Free and open source · macOS 13 or later · Apple silicon and Intel
10:43Why this stretch?
Why this stretch?
The timeline already shows where. Hold ⌥ and drag across the spike: Flux compares the stretch with the three times as long before it and names what makes it different — the version, the host, the route — before you have written a query. Click a row and the console narrows to it. Drag without ⌥ and the same gesture narrows the range instead.
Keys
⌥ + drag · click a row to narrow · Esc closes the panel
From the docs
With a project's GitHub repository set, the pull requests merged during the window are drawn on the timeline, so a spike that starts just after one is a question with half its answer. The dashed line is #412, merged at 10:38.
10:44One request, every service
One request, every service
Take the id from the failing line. ⇧⌘I searches it as text in every stream of the connection at once and tells its story oldest first: a lane per stream, a dot per line, the failure in red. Click a dot to read the line. The same ids, logged between your services, draw the service map — no agent, no tracing library, nothing to install on the server.
Keys
⇧⌘I trace · ⇧⌘M map · ← → between dots
From the docs
A request id, a trace id, an order id, a user id or an email — searched as text in every stream of a connection at once. From a row's context menu, Follow this request does the same for the id in that row. Try .
10:46The case
The case
Right-click the line and choose Investigate. Flux gathers the request across services, how often it happened and who else it hit, the line of code that logged it through the project's folder, and the commit that last changed that line. Then it hands the whole case to Claude Code in the terminal — one click.
Keys
right-click · Shift+F10 · ⋯ on the row
From the docs
Investigate goes further for one error: the request across services, who else the same failure hit, where in the code the message is logged — through the project's folder — and the commit that last changed that line. The case is Markdown; Copy report puts it on the clipboard.
10:51Handed to the terminal
Handed to the terminal
The case lands in the terminal where Claude Code runs, with a brief: find the cause, fix it on a branch with a test that fails without it, open a draft pull request. While it works, the agent reads your logs back through Flux — Flux is an MCP server with eight tools that read your sources and never write to them, listening on 127.0.0.1 behind a token it makes for you. One line adds it to Claude Code.
-
1
Turn it on — click the MCP icon in the status bar and tick Enable MCP Server.
-
2
Add it to Claude Code —
claude mcp add --transport http flux http://127.0.0.1:4319/mcp --header "Authorization: Bearer …" -
3
Ask —
claude, then a question.
The run above is made up; the tools and their arguments are real. The agent's reasoning is the agent's, not Flux's. Loopback only, behind a token, and nothing is ever written to a source.
Keys
⌥F12 the terminal · ↑ recalls the last call
From the docs
Tokens are never part of an answer. open_query opens the query in Flux in front of you; save_query leaves one behind, watched, after a deploy.
10:58Keep an eye on it
Keep an eye on it
Save the query, right-click it, Watch for new matches. While Flux is open it asks the query every minute — or the interval you choose — and the island under the notch keeps the score over every app: new matches, a sound if you like, a row you can click. Turn it around with Alert when › Nothing arrives, for a cron or a webhook that goes quiet. And when the fix merges, the island watches the ten minutes after it.
A minute on this page is three seconds.
The fix, #418, is reviewed and merged by a person. Flux draws the merge and watches the ten minutes after it.
Keys
right-click a saved query · Shift+F10 · ⋯
From the docs
The island can be muted for an hour, and it asks to be left out of screen sharing. With a project's repository set, the pull requests merged while a query ran are drawn on the timeline, and the island watches the ten minutes after each merge.