llms.txt@website ยท diff
git:20261015.0f4abae to git:20261016.25be634
34 added, 0 removed. Audit A to A.
# Pointframe
> Pointframe is a free, open-source (MIT) Windows tool for screen capture, annotation, and recording. Its standalone MCP server and CLI let AI agents list monitors and windows, capture screenshots, read on-screen text with Windows OCR, search saved captures, and record redacted MP4s. Everything runs locally; official builds of the MCP server and the CLI send only anonymous usage counts (tool or command name, outcome, duration bucket, host, client type, version, random install ID), and POINTFRAME_TELEMETRY_OPTOUT=1 or DO_NOT_TRACK=1 turns that off. Windows 10 and 11, interactive desktop session required.
Install the MCP server for Claude Desktop (open the .mcpb bundle), Claude Code (`claude mcp add`), Codex (`codex mcp add`), VS Code, or Cursor. The exact commands are on the agent page below and in the README.
+ ## Short path for coding agents
+
+ <!-- short-path:begin (generated from Pointframe.Mcp/Guides/verify-desktop-work.md by scripts/sync-agent-guides.ps1; do not edit) -->
+ Run everything from the project root, in an interactive, unlocked Windows desktop session.
+
+ 1. Install the CLI (skip this if `pointframe --version` works). Run this one line as it is, in one tool call; it works from Bash and from PowerShell:
+
+ ```
+ pwsh -NoProfile -Command '$u="https://github.com/dimitar-radenkov/Pointframe/releases/latest/download/Pointframe.Cli-win-x64.zip"; $d=Join-Path $env:TEMP "pointframe-cli"; Remove-Item $d -Recurse -Force -ErrorAction Ignore; New-Item -ItemType Directory $d | Out-Null; Invoke-WebRequest $u -OutFile "$d\cli.zip"; Invoke-WebRequest "$u.sha256" -OutFile "$d\cli.zip.sha256"; if ((Get-FileHash "$d\cli.zip").Hash -ne ((Get-Content "$d\cli.zip.sha256" -Raw).Trim() -split "\s+")[0]) { throw "SHA-256 mismatch" }; Expand-Archive "$d\cli.zip" "$d\x"; & "$d\x\Pointframe.Cli.exe" install; "$env:LOCALAPPDATA\Programs\Pointframe.Cli\pointframe.exe"'
+ ```
+
+ `install` puts `pointframe` on the user `Path` for new shells only. In the shell you already have open, call the exe path the line prints (`%LOCALAPPDATA%\Programs\Pointframe.Cli\pointframe.exe`) in place of `pointframe`.
+ 2. Write the spec, with your built exe's path relative to the project root (one line, for a single-project WPF app):
+
+ ```
+ pointframe verify init --app bin/Release/net10.0-windows/MyApp.exe --hooks none
+ ```
+
+ 3. Add one scenario to the `scenarios` array of `.pointframe/verify.json`: an action, the resulting state, and a negative control (a check with `expectFailure` and a deliberately wrong expectation, which must fail):
+
+ ```jsonc
+ { "id": "save-text", "criteria": ["Saving shows the typed text in the status line."], "steps": [
+ { "enterText": { "automationId": "textBox", "text": "hello" } },
+ { "invoke": { "automationId": "saveButton" } },
+ { "check": { "kind": "textEquals", "automationId": "statusLabel", "expected": "Saved hello", "criterion": "C1" } },
+ { "check": { "kind": "textEquals", "automationId": "statusLabel", "expected": "Not saved", "expectFailure": true, "timeoutSeconds": 1 } } ] }
+ ```
+
+ 4. Run `pointframe verify run`. It runs the gates, launches the app, drives the scenario in the real UI, and installs the MCP server itself on its first run. Read `status` in the printed JSON: `pass` is exit 0, `fail` is exit 1, a wrong spec is exit 2. Run `verify run` last: any later edit, even to docs or skill files, makes the pass stale (`verify status` then shows `fresh: false`), so write everything first and run again if you change anything.
+ 5. Evidence: `artifacts/pointframe-verify/verdict.json` is the verdict, and each scenario's signed bundle (`report.json`, `evidence/` screenshots, `index.html`) is under `artifacts/pointframe-verify/runs/<time>/`. Say the work is done only when `status` is `pass`.
+
+ The spec fields are in [verify-spec.md](https://github.com/dimitar-radenkov/Pointframe/blob/master/docs/cli/verify-spec.md); the example above covers the common case.
+ <!-- short-path:end -->
+
## Agents
- [Windows screenshot MCP server for AI agents](https://dimitar-radenkov.github.io/Pointframe/windows-screenshot-mcp-server.html): what the server does, install steps per client, the eleven tools, and the privacy model
- [Make your coding agent prove it's done](https://dimitar-radenkov.github.io/Pointframe/verify-coding-agents-windows.html): keep Claude Code or Codex working until your own build and tests pass
- [Coding agents: verify a Windows desktop app in six steps](https://github.com/dimitar-radenkov/Pointframe/blob/master/docs/cli/verify.md#coding-agents-start-here)
## Documentation
- [README: MCP server](https://github.com/dimitar-radenkov/Pointframe#pointframe-mcp-server): tools, resources, workflow, and per-client install
- [Privacy policy](https://dimitar-radenkov.github.io/Pointframe/privacy.html): what the desktop app, CLI, and MCP server collect, where it goes, retention, and the opt-out
- [README: privacy policy](https://github.com/dimitar-radenkov/Pointframe#privacy-policy): the same policy in the repository
- [CLI guide](https://github.com/dimitar-radenkov/Pointframe/blob/master/docs/cli/README.md): commands, JSON output, exit codes, and the MCP installer
- [Desktop-testing MCP guide](https://github.com/dimitar-radenkov/Pointframe/blob/master/docs/mcp-desktop-testing/README.md): the opt-in tools that drive a Windows app, off by default
- [pointframe verify](https://github.com/dimitar-radenkov/Pointframe/blob/master/docs/cli/verify.md): declarative done-checks for coding agents
## Releases
- [Latest release](https://github.com/dimitar-radenkov/Pointframe/releases/latest): installer, CLI ZIP, MCP bundle, and checksums
- [Pointframe.Mcp-win-x64.mcpb](https://github.com/dimitar-radenkov/Pointframe/releases/latest/download/Pointframe.Mcp-win-x64.mcpb): the MCP server bundle (self-contained, includes ffmpeg)
- [Pointframe.Mcp-win-x64.mcpb.sha256](https://github.com/dimitar-radenkov/Pointframe/releases/latest/download/Pointframe.Mcp-win-x64.mcpb.sha256): its SHA-256
- [Pointframe.Cli-win-x64.zip](https://github.com/dimitar-radenkov/Pointframe/releases/latest/download/Pointframe.Cli-win-x64.zip): the standalone CLI
- [MCP Registry entry](https://registry.modelcontextprotocol.io/v0/servers?search=pointframe): io.github.dimitar-radenkov/pointframe-mcp
## Optional
- [Source code](https://github.com/dimitar-radenkov/Pointframe)
- [Pointframe website](https://dimitar-radenkov.github.io/Pointframe/)