Privacy Policy
Last updated 12 September 2026
FlowPeek runs on your Mac and keeps what it reads there. There is no account, no analytics, and no server of ours for anything to be sent to.
Who this is about
FlowPeek is a free, open source macOS application published at github.com/FlowPeek/flowpeek. This policy covers the application and this website. Because the whole application is open source, every claim below can be checked against the source rather than taken on trust.
What the app reads
- Text you point at, select, or copy. With Accessibility permission granted, FlowPeek reads the text under the pointer while you hold the gesture key, the text you have selected, and the clipboard when it changes. It looks for Mermaid diagram source and ignores everything else.
- The visible part of a terminal or editor buffer. When one of the supported terminals or an editor with an integration is in front, FlowPeek reads the text around what is on screen so it can find where a diagram block starts and ends.
- How large a terminal's grid is, asked through its pty. A program that fills
the whole terminal, vim or a coding agent's interface, leaves nothing on screen that says where
one row ends and the next begins, so FlowPeek asks the terminal itself. It looks through the
terminal's child processes for the pty device behind the window, opens it read only, issues one
ioctl(TIOCGWINSZ)to ask how many rows and columns it has and how tall the grid is in pixels, and closes it. The column count is also what tells FlowPeek where a program broke a long line across two rows, so it can put the line back together as it was written. No byte of what is on that terminal is ever read through it. There is no read of that device anywhere in the app, and nothing is written to it. Only Ghostty is asked this; Terminal.app and iTerm2 answer where a character is drawn directly, so FlowPeek works their column count out from two of those answers instead and never reaches that code. - Two files belonging to a VS Code-family editor. When a gesture in VS Code,
Cursor, or another build of that editor finds nothing, FlowPeek reads the
product.jsoninside the editor's application bundle, which names the editor and the folder it files its data under, and then that editor's ownsettings.json, to see whethereditor.accessibilitySupportis on. That one setting is the difference between "there is no diagram here" and "this editor is not handing its text to macOS", and saying which is the only use either file is put to. Nothing is written to either one, and when the setting is already on nothing is said at all. - The file an editor in a terminal has open, if you switch that on. It is off until you do, and it is a separate switch from the terminal watch because it is a different thing to ask for. An editor that takes over the whole terminal paints on what a terminal calls its alternate screen, and that screen keeps no scrollback at all: measured, a 200-line file in a 19-row window shows FlowPeek nineteen lines and nothing else exists to read. So a diagram taller than the window cannot be recovered from the terminal at any price. The file can. With the switch on, FlowPeek asks the editor's own process which file it has open — from the command it was started with, and from the temporary file the editor keeps beside it — reads that file, and uses it only when its lines are the ones on your screen. Nothing is written to either file, and nothing is read while no editor is in front.
- A coding agent's session file, if you switch that on. Also off until you do, and also its own switch. It exists for one program: Codex lays out its own output and breaks lines in a way that cannot be undone, so about one diagram in fourteen would be rebuilt subtly wrong with nothing on screen to say which one. With the switch on, FlowPeek reads the file Codex is already writing — only the lines of it that contain a fenced Mermaid diagram, which it finds by scanning bytes rather than by reading the rest — and uses what it finds only to replace a diagram it had already found on your screen. A diagram that matches nothing on screen is never used.
- Nothing while the app is idle. Reading happens in response to your gesture, your copy, or a window you have in front, and each route can be switched off.
None of it is logged. Text read this way is held in memory for as long as it takes to decide whether it is a diagram and to draw it. It is not written to a log file, not written to disk, and not transmitted.
What the app keeps
- Diagrams it actually drew. The Mermaid source and a small picture of each
are stored in
~/Library/Application Support/FlowPeekso the shelf can offer them back to you. Something you selected but never previewed is never stored. - Your settings, in the usual macOS preferences file for the app, and alongside them one measurement per terminal: how tall a row of text is there, in points. It is kept so the first diagram after a launch is framed correctly rather than the second, and it is replaced whenever the terminal is measured again.
- An API key, if you supply one for the optional AI feature. It is stored in the macOS Keychain, not in preferences and not in any file of ours.
All of this lives on your Mac and none of it is sent anywhere. You can cap the history by count or by age, clear it, or switch it off entirely in Settings. Deleting the application and its Application Support folder removes everything it kept.
What leaves your Mac
- An update check, once a day. The app asks
github.comfor its release feed so it can tell you when a new version exists. GitHub sees that request the same way it sees any download, which means your IP address and the request itself. No identifier of ours is attached and no information about your Mac or your usage is sent with it. You can turn automatic checks off in the app. - The optional AI feature, only when you press Generate. It is off until you switch it on and add your own API key. When you use it, the text of your prompt goes to the provider you chose, under that provider's own privacy policy, using your own account with them. FlowPeek adds nothing to that request and keeps no copy of the response beyond the diagram it draws for you.
- Nothing else. Drawing a diagram makes no network request at all, because the Mermaid renderer is bundled inside the application. Searching the shelf by meaning runs on your Mac, using a model macOS already ships.
Permissions
FlowPeek asks for Accessibility and nothing else. Not Screen Recording, not Input Monitoring. Accessibility is what lets it read the text you are pointing at; without it, the copy and file routes still work and the app says so rather than appearing broken. You can withdraw the permission at any time in System Settings.
This website
These pages are static files hosted on GitHub Pages. They set no cookies, run no analytics and embed no third party trackers. GitHub, as the host, records ordinary server request information; see the GitHub Privacy Statement.
Children
FlowPeek is a developer tool and is not directed at children. It collects no personal information from anyone, of any age.
Changes
If this policy changes, the date at the top changes with it, and the edit is visible in the repository's history like every other change to the project.
Contact
Questions about privacy, or anything else, are best raised as an issue at github.com/FlowPeek/flowpeek/issues, where the answer is public and useful to the next person who asks.