Privacy

Pointframe Privacy Policy

This policy covers the Pointframe desktop app, the Pointframe CLI, and the Pointframe MCP server. Pointframe is free and open source, needs no account, and keeps your screenshots, recordings, and text on your machine.

Data collection

The project never collects screenshots, recordings, OCR text, file names, or file paths. They stay on your machine under %LOCALAPPDATA%\Pointframe, apart from what you choose to send somewhere yourself. An MCP capture tool returns the image to your MCP client, which passes it to your model; pass includeImage: false to return metadata only. Upload & copy link in the desktop app sends one capture to the HTTPS destination you configured.

Usage telemetry of the CLI and the MCP server

Official release builds of the CLI and the MCP server send one anonymous event per MCP tool call or CLI command to Azure Application Insights. The event holds only these fixed values:

  • name: the MCP tool or CLI command, taken from a fixed list; any other value is reported as other.
  • outcome: success, error, cancelled, or denied. Error text is never sent.
  • duration_bucket: lt_1s, 1_5s, 5_30s, or gt_30s.
  • host: cli or mcp.
  • client (MCP only): claude-desktop, claude-code, codex, vscode, cursor, or other, mapped from the client name in the MCP initialize request.
  • version: the Pointframe version.

No arguments, paths, screenshots, text, error messages, or identifiers are sent. There is no install ID, session ID, user name, or machine name, and the exporter identifies itself only with the fixed names Pointframe.Cli or Pointframe.Mcp. Because nothing identifies an install, this telemetry measures operations; it cannot count unique users or retention. Source builds send nothing, because the connection string is injected only by the official release pipeline.

The first run prints a one-time notice to standard error. The MCP server never writes to standard output outside the MCP protocol, so it also places the notice in its server instructions once. A small local file under %LOCALAPPDATA%\Pointframe records that the notice was shown; it holds no identifier.

Opting out of CLI and MCP telemetry

Set the environment variable POINTFRAME_TELEMETRY_OPTOUT=1 or the standard DO_NOT_TRACK=1, or create %LOCALAPPDATA%\Pointframe\agent-telemetry.json containing {"optOut": true}. A config file that cannot be read counts as an opt-out. When you opt out, no telemetry request is made at all. Telemetry never blocks a tool call or command, and a failure to send it is ignored.

Desktop app telemetry

Official installer builds of the desktop app send the usage telemetry described in the README, including a random install ID that is not tied to an account. The desktop app has no in-app telemetry switch, and the opt-out above applies to the CLI and the MCP server only.

Third-party sharing

Telemetry goes to Microsoft Azure Application Insights, which acts as a processor on the project's behalf. Application Insights receives the IP address of the connection, derives a coarse country and city from it, and stores the address masked (IP masking is on). The exporter attaches no host name, user name, or other machine details. Nothing is sold or shared with anyone else.

Retention

Telemetry is kept in the project's Application Insights resource under its default retention of 90 days, unless the maintainer changes that setting, and is used only to see which tools and commands are used and whether they fail. Files on your machine stay until you delete them.

Contact

Questions, deletion requests, and privacy concerns: open an issue at github.com/dimitar-radenkov/Pointframe/issues. The same policy is in the README.