Frayo

← Guide

Secret detection

Frayo checks your captures for things that should not be shared: API keys, tokens, private keys, email addresses and card numbers. It marks them with an orange key badge and can cover them with one click.

This is best effort. It can miss a secret, and it can flag something harmless. Always check a screenshot yourself before you share it.

On this Mac only

The check runs on the text that Frayo already reads from the capture. It uses no network and sends nothing anywhere.

What it looks for

Under Settings › Redaction › Find these come as three switches: Secrets (keys, tokens, private keys, card numbers), Names and Emails (names, email addresses) and Phones, Addresses and IPs (phone numbers, street addresses, IP addresses).

A broad "generic API key" rule runs last. It only claims text that no specific rule matched. Names, phones, addresses and IP addresses are lower priority than keys, emails and cards.

A name that Apple's tools tag by first name only ("Assignee: Jane Doe" tags "Jane") is extended over up to two capitalised words after it on the same line. A UI label such as "Jane Settings" would be covered too.

What is looked for

Settings › Redaction › Find has three switches, and they are the only control:

All three off means nothing is looked for. The same three switches are checkmarks in the Frayo menu › Redaction. Changing one makes old captures scan again.

The key badge

When a capture has sensitive items, a small orange key badge appears on its thumbnail, its Library tile and its menu-bar row. Hover the badge to see "3 sensitive items".

The scan runs a moment after the capture, so the dot can appear a second late. Captures made before you updated are scanned when Frayo indexes them.

Redact

Where a capture has an orange key badge, the Redact button is available (an eye with a slash):

Redact covers every flagged spot, a little larger than the text. The cover is written into the file at full resolution, so the secret is gone from the image.

A message says "Redacted 3 secrets" and has Undo and Edit buttons. Undo works for a few seconds only, and only for the last capture you redacted.

Unredact one block

Edit (right-click the capture, on the thumbnail or in the Library; double-click it; or Edit in the message) opens, while the original is still held, the editor on the original image with every cover as its own mark. Select a block and press Delete to uncover just that one, move or resize covers, or add more, then Save. Whatever covers remain are written into the file; nothing is uncovered unless you delete its cover.

The original is held in memory only, never on disk, for 10 minutes after the capture was last redacted (at most 512 MB of originals in all; the oldest go first). It is dropped when you quit Frayo, move the capture to the Trash, or edit it in the editor. After that Edit opens the capture as it is, and redaction is permanent.

If you also have a project copy, it is updated too.

How a secret is covered

Settings › Redaction › Cover › Cover style chooses the style Redact uses:

Keep visible (the first 0 to 6 characters; default 0, which covers everything) leaves the start of a secret readable so you can tell keys apart, and covers the rest. Frayo never leaves more than a third of a secret visible (rounded down), and covers a secret under 6 characters completely. To place the cut it reads the capture's text again when you redact.

Redact on the thumbnail and in the Library follows these settings. A preview line in Settings shows the result.

Auto-redact

Settings › Redaction › Redact › Auto-redact has three choices. Secrets Only (the default) covers API keys, tokens, card numbers and your custom patterns; names, email addresses, phone numbers, street addresses and IP addresses are still found and flagged on the thumbnail, so you can cover them with Redact. Everything Found covers every type your Find switches look for. Off covers nothing. Each new screenshot is scanned and covered (with your style and Keep visible) before it is copied, saved, shown as a thumbnail or returned by the command-line tool. For the usual capture paths the uncovered image is never written to disk. Scrolling captures are the exception: so the thumbnail and the shutter come at once, they are saved uncovered and scanned in the background; when something is found the thumbnail and tile get the key badge, a toast offers Redact, and you cover it on request (with After capture set to Copy or Save they are covered first, as other captures are). A few paths (the screencapture fallback, code shots) write the file first and cover it in place before anything else happens. There is no Undo, but the original is held in memory for 10 minutes, so Edit works the same way as above.

If the text cannot be read, the capture is delivered as it is and a message says "Couldn't check for secrets". Screen recordings, and images you open from the clipboard, are not covered. The editor does not cover again when you save, so a cover you removed there stays removed. If you had turned this on before, it is now Everything Found; if you had left it off, it stays Off.

Redact in the editor

When a capture has detected secrets, the editor toolbar has a Redact button (an eye with a slash). One click covers every detected secret, using your Settings choice of Cover style and Keep First N Visible.

Each cover is a normal object in the editor: select it to move or resize it, press Delete to leave that one visible, or Undo to take back the whole step. Nothing is written until you Save or Copy. The original capture file is not changed by this; Save creates the annotated copy.

You can also draw your own cover with the Pixelate tool (B). It uses the same strong blocks.

Frayo keeps no part of a secret on disk: the scan file next to each capture holds only the type, the boxes and where the secret sits in the text. It is left out of a Library export.

Turn it off

Turn off all three Find switches. That hides all dots.

Custom patterns

In Settings › Redaction › Custom Patterns, add a name and a regular expression, then Add. Use this for internal IDs, codenames, customer numbers and company hostnames, for example EMP-\d{6} or [\w-]+\.corp\.example\.com. The Examples menu fills in a starting point. Type text into Try it to see what the expression matches (or why it is invalid). Remove a pattern with Remove. Custom patterns apply when API keys and tokens is on.

Frayo refuses a pattern that is empty, is not a valid regular expression, or is too slow to run on screenshots. Changing patterns makes old captures scan again.

What it cannot do

See also Privacy and permissions and Settings.