A LOCAL-FIRST CAPTURE, ANNOTATION & OCR WORKSPACE

From what you seeto what you can use.

Annotate screenshots for AI feedback, extract text, work with PDFs and organize references. Send images and notes between Windows and Mac over your LAN.

  • Windows / macOS
  • Built-in offline OCR
  • No account needed

Workflow demo, not the actual interface.

SanFrame
Source

More than a screenshot.

Keep the context. Find the key idea.

Turn scattered material into useful references.

Text preview
More than a screenshot.
 
Keep the context. Find the key idea.
Turn scattered material into useful references.

Image text extracted

01 / EVERYDAY TOOLS

From collecting to using again

Capture quickly

  • Shortcuts for region and scrolling screenshots.
  • Drop, choose or paste images; choose to save text or images.
  • Record file paths, with optional file backups.

Recognize & edit

  • Use offline OCR or connect other models.
  • Mark up with pens, arrows, text, letter labels and mosaic.
  • Recognize PDF pages; export text or searchable PDFs.

Organize & reuse

  • Search history content, file names or paths; filter archives by date.
  • Organize with tags, favorites and archives.
  • Copy images, text or paths; export text or a ZIP with files.

ACTUAL APP · CHINESE UI

Image tools and history

Work with images on the left. Search, filter and archive history on the right.

History content is blurred in this screenshot.

SanFrame Image tools in Chinese: image and screenshot inputs on the left, search, tag filters and blurred image history on the right.

03 / RECOGNITION

Choose how to recognize

Ready to use

Built-in OCR · Plain text

Bundled PP-OCRv6 Small extracts plain text offline, without an internet connection or a model service to configure.

Optional extension

GLM-OCR, HunyuanOCR & more

Use a compatible image-input model via Ollama or llama.cpp for text, tables and formulas, with Markdown preview and export. Services and model files are set up separately.

Built-in OCR runs locally. Other OCR services receive images and prompts at your configured address, on this computer or a remote one.

04 / GOOD TO KNOW

Good to know

Do I need to install a model before extracting text?

No. Open Content tools → Image tools or PDF OCR to extract plain text with built-in offline OCR, without a separate model service. You can optionally configure a compatible image-input model for capabilities such as table and formula recognition.

What leaves my computer?

The SanFrame desktop app requires no account and has no telemetry. Built-in OCR runs locally; other models receive images and prompts at the configured address, with processing and retention determined by that service and its settings. Discovery broadcasts device names, identifiers and connection information on the LAN. Once an authorized connection is established, automatic and manual transfers are encrypted between connected devices and relayed by the host; file transfers may use temporary caches. Synced records do not attach source directory paths or OCR credentials.

How do computers connect and stay connected?

All computers need compatible versions of SanFrame on the same LAN. Invite through the device list and check the pairing code; each device confirms separately before joining. Joining adopts that group’s settings. Changes to members or scope before joining is complete require confirmation again. The host relays content and must keep the app running alongside the other members. When the host quits, the current group disconnects.

Can paired devices connect automatically?

From 4.19.0, devices successfully paired through the device list can be remembered. Connect on startup and reconnect after an unexpected disconnection are off by default. Both sides must enable the option appropriate to their situation, and the original host restores the connection. Manually stopping or leaving pauses automatic connections for that app session. Invitation links create only the current connection and do not remember devices. From 4.20.0, you can unpair one device locally without ending an existing connection or deleting received content.

Does automatic sync send my entire history?

No. The sync scope is shared by the group; changes made by any connected device apply to the whole group. It shares only new content within that scope after connecting, plus supported updates. Recognition information synced according to group settings can include existing results, previous versions, prompts, engines and models. Records from before the connection and content created offline or while sync was disabled are not sent automatically. You can manually send one or more records from history, favorites or archives; received copies do not take part in later automatic sync.

Does file sync follow changes to the original file?

No. With file sync enabled, individual files newly added to File references during the connection are sent as copies. Favorite status can be synced afterwards, but editing the original file in another app does not update other computers. Send the file again when you need to share a newer copy. Each file can be up to 8 GiB; folders are not sent directly. Paused files can resume within the current connection, but an expired connection requires a new transfer.

Does live text merge edits from several computers?

Received text replaces the entire text in Device transfer, including when it is cleared. If several devices send text, updates follow the order accepted by the host; their edits are not merged. Editing text or actively changing the recipient selection sends the current text to the selected devices. Receiving text alone does not send it back.

Where does content received through Device transfer go?

Files and images: Find them in File references history on this computer. Text is not automatically extracted from images. Text: By default, received text only appears in Device transfer and is not saved. To keep it, turn on Save received text to Pasted content history. Text received after that will be saved in Pasted content history. While saving is on, new text from the same device replaces its previous entry for the current connection. If the sender clears the text, the saved text is cleared too. Entries you delete will not reappear during that connection. Turning saving off keeps existing entries. Turning it back on saves only text received from then on. This switch only controls saving on this computer; it does not change what the group syncs.

What happens when history reaches its limit or I delete content on one computer?

Image tools, Pasted content and File references can each archive history automatically by age or record count. Archived content remains available; reaching a limit does not automatically delete it. Received content follows the receiving computer’s local settings too. Archiving or deleting whole records affects only this computer and does not recall independent copies already sent.

How do I connect models such as GLM-OCR or HunyuanOCR?

Set up a compatible Ollama or llama.cpp service and an image-input model on this computer or another reachable computer. Then configure the service address in SanFrame, select a model and load it. Once configured, local services can be started or stopped in the app; remote services are managed on their own computers. Compatibility and recognition quality depend on the model, prompts and service version.

Download SanFrame

Choose your operating system. The macOS installer supports both Apple Silicon and Intel. Check the file name for its version. Automatic connections require 4.19.0 or later; unpairing individual devices requires 4.20.0 or later.

Windows

Windows · x64

Architecturex64 · Intel / AMD
Download installer

SanFrame-v4.20.4-Windows-x64-setup.exe

SHA-256 checksum

Use this to check that your download matches the published file.

0a3dcb9a08d189b021c3367567612e8ef53fe1d3ec9e4dc79e90441e4ad20f3b

macOS

macOS · 13.4+

ArchitectureUniversal · Apple Silicon / Intel
Download installer

SanFrame-v4.20.4-macOS-Universal.dmg

SHA-256 checksum

Use this to check that your download matches the published file.

532fcd171eb8252f2cbd55c9e7f436d4e44657a3cf8889b1afccb3a102fe895e