AnnotateIt

Security

Last updated: 2026-09-19

Local annotation runs on your device. Optional ChatGPT or Claude annotation sends the attached image/frame and context to the selected provider (OpenAI or Anthropic). Optional ML jobs transfer selected project data to your configured runner.

Current Security Architecture

  • The current product has no cloud account, project-sync or dataset-storage backend.
  • Web projects are stored in browser-managed local storage; native projects are stored locally on the device.
  • Local AI-assisted annotation runs locally. Model and runtime downloads may use models.annotateit.ai or the source for the selected model, such as Hugging Face. These downloads do not upload project content.
  • Production web responses use HTTPS and browser security headers. Static model files are versioned and served with long-lived cache controls.
  • Product telemetry is disabled in the current production configuration. The website and web app use cookieless Cloudflare Web Analytics for page views and Web Vitals; the marketing website additionally records cookieless first-party interaction events (which call-to-action was clicked) via a first-party endpoint stored in Cloudflare Workers Analytics Engine; the desktop and mobile builds contain no analytics component.

Your Responsibilities

Local-first storage reduces server-side exposure, but it does not encrypt an unlocked device by itself. Use operating-system disk encryption, device access controls, a supported browser, and appropriate backups. Clearing browser site data or uninstalling the app can remove locally stored projects.

Report a Vulnerability

Email umno.annotateit@gmail.com. Include the affected platform and version, impact, reproduction steps and a minimal proof of concept.

Do not attach private datasets, personal data or production secrets. Use synthetic sample files. If sensitive transfer becomes necessary, ask for an approved secure channel first.

We target acknowledgement within three business days. Please allow reasonable time to investigate and remediate before public disclosure.

Scope

  • www.annotateit.ai and the production web application.
  • models.annotateit.ai.
  • Current AnnotateIt desktop and mobile builds.

Out of Scope

  • Social engineering, denial-of-service testing and automated high-volume scanning.
  • Issues in unsupported browsers or operating systems.
  • Vulnerabilities in third-party services that do not affect AnnotateIt.

Optional ChatGPT or Claude Annotation / Ask AI

Ask AI is an optional online connection to OpenAI or Anthropic. Web supports your own OpenAI or Anthropic API key. Windows and macOS support your own API key or ChatGPT / Claude Code through the corresponding separately installed CLI. Native iOS/iPadOS has no AI Assistant API-key or desktop CLI connection. Using the web app in a browser on iPhone or iPad follows the Web rules.

Chat messages and requested project context are sent through the selected connection. In external-assistant annotation mode, the current image or paused video frame is attached by default. Sending a message with that attachment enabled sends a JPEG preview (up to 1600 pixels on its longest side), original dimensions, project labels and annotation context. It does not send the entire video or dataset. Opening the panel alone sends no image pixels. You can disable the attachment; moving to another image or frame enables it for the new media in external-assistant mode.

API keys are saved in Windows Credential Manager on Windows, Keychain on macOS, and browser localStorage on Web. The desktop app requests operating-system credential storage for its Codex connection. OpenAI and Anthropic API keys are stored separately. Claude Code uses its existing CLI authentication on this machine; signing out through AnnotateIt also signs that CLI out. Processing by the selected provider follows the terms and data controls applicable to your selected API or CLI account. Removing a key or signing out does not recall submitted content. See the Privacy Policy for data handling and the Ask AI guide for setup and review controls.

Separately, starting Auto-annotate with ChatGPT or Claude sends each eligible still image in the selected scope, the common instructions and project labels to the selected provider (OpenAI or Anthropic). The app sends JPEG previews up to 1600 pixels on the longest side with original dimensions. API jobs run up to two image requests concurrently; desktop Codex and Claude Code run one at a time. Opening the batch dialog alone does not upload images. Completed results remain local Pending AI Review drafts until accepted.

Optional connected ML runner

In builds that include ML Pipelines, starting a supported training or inference job sends the selected dataset bundle to the runner you configure. Training bundles contain the selected media and annotations. A runner on your machine processes them there; a remote runner receives those bytes and operates under its own retention and access controls. This optional transfer is separate from local annotation and Ask AI. The runner token is held in app memory for the session, not included in a backup.