Short version: LM Studio keeps AI processing on your Mac or on the local API endpoint you configure. Cloudflare Workers AI sends the media preview, file name, analysis text, search query, and related request data needed for AI processing to Cloudflare. FrameSweep shows an explicit confirmation before Cloudflare AI data is sent.
What AI analysis does
AI analysis helps you review large video and image folders. It can create captions, categories, object tags, color and mood tags, destination suggestions, compression hints, sensitive-review flags, and file-name suggestions. FrameSweep uses those results for search, filtering, suggested moves, and cleanup decisions.
AI output is advisory. Moving, converting, deleting, or sending files to Trash remains a user action.
Provider options
LM Studio / local
FrameSweep connects to an OpenAI-compatible API such as LM Studio running on your Mac. Media is not sent to a developer server. If you change the API URL, the destination you choose is under your control.
Cloudflare Workers AI
FrameSweep can use a Cloudflare Worker to request analysis from Cloudflare Workers AI. Because this is an external AI service, FrameSweep asks for confirmation before sending data. Pro entitlement verification uses App Store transaction information.
How search works
Normal search
FrameSweep searches file names, folder names, AI captions, categories, tags, and destination suggestions locally on your Mac.
SQLite full-text search
AI text is indexed in a local SQLite database using full-text search, so large analyzed folders can be searched without loading a large JSON file every time.
Semantic / embedding search
If an embedding model is configured, FrameSweep can compare the meaning of your search query with AI-generated text. With LM Studio, this goes to your local API. With Cloudflare, the query and analyzed text are sent through the Worker to Cloudflare. Before consent, automatic search uses local SQLite search only.
Data stored on your Mac
- AI analysis results such as captions, categories, tags, suggestions, and review flags.
- Search text and a local SQLite full-text index.
- Local embedding vectors, model name, and text hash when embedding search is used.
- AI settings, including provider, model names, Worker URL, and Cloudflare consent timestamp and endpoint.
- Thumbnails, contact sheets, app preferences, and macOS folder permission data.
Data sent to Cloudflare
When you choose Cloudflare Workers AI and confirm use, FrameSweep may send:
- Still-image previews, contact sheets, or downscaled image data needed for AI analysis.
- File name, media type, analysis profile, and configured destination categories.
- The AI prompt and AI response.
- Search query, analyzed text, and embedding model name for semantic search.
- App Store transaction identifiers needed for Pro entitlement verification.
FrameSweep does not automatically upload your whole library. Only items you analyze or search with Cloudflare AI are sent.
Data retained by the Cloudflare Worker
- AI request logs
- Timestamp, model, route, HTTP status, duration, approximate input/output size, and error category. Media bodies are not normally stored.
- Pro entitlements
- Pro purchase verification state based on App Store transactions, including product ID, original transaction ID, environment, expiration, and update time.
- AI sessions
- Hash of the short-lived AI session key, expiration, and linked entitlement key. The session key itself is not stored.
- R2 archive
- Production operation keeps request-body archiving disabled. If enabled for debugging, request/response bodies could be stored for investigation.
Retention
- AI analysis results, the SQLite index, embedding values, and caches on your Mac are kept until you delete them in the app or remove the app container data.
- Cloudflare AI sessions are short-lived authentication records and normally expire after about 7 days.
- Cloudflare-side Pro entitlement records are retained while needed to verify Pro access and protect the service.
- Cloudflare-side AI request metadata is retained while needed for troubleshooting, service protection, and usage accounting. Deletion requests can be sent by email.
- R2 request-body archiving is disabled in production. If enabled for investigation, request-body archives are limited to debugging and removed when no longer needed.
Deletion
- You can delete AI analysis results for the current folder from inside the app.
- You can delete all saved AI analysis results from inside the app.
- You can clear thumbnail and contact sheet caches in Settings.
- To remove app settings, entitlement records, and the local SQLite index, delete FrameSweep's macOS app container data.
- For deletion requests related to Cloudflare-side Pro entitlement records or AI request metadata, contact framesweep@obrizm.com.
If you are concerned
For private, sensitive, or unreleased media, use LM Studio / local AI or leave AI analysis disabled. FrameSweep's core preview, sorting, conversion, duplicate review, and cleanup workflows work without AI.