{
  "slug": "handy",
  "category": "speech-to-text",
  "name": "Handy",
  "description": "Free, open-source desktop app for push-to-talk dictation. Speech is transcribed offline on the device with local Whisper or Parakeet models and typed into the active text field.",
  "website": "https://handy.computer",
  "source": "https://github.com/cjpais/Handy",
  "license": "MIT",
  "platforms": [
    "windows",
    "macos",
    "linux"
  ],
  "jurisdiction": null,
  "pick": false,
  "pick_reason": null,
  "disclosure": null,
  "grade": "B",
  "score": 87,
  "coverage": 100,
  "summary": "Handy scores 87 out of 100 (grade B) on the dictation and transcription criteria. It meets 5 of 6 criteria: open source, no trackers or telemetry, no ads or data sales, runs on the device and no training on recordings. It does not meet independent audit.",
  "url": "https://privacyratings.com/speech-to-text/handy/",
  "markdown": "https://privacyratings.com/speech-to-text/handy/index.md",
  "answers": {
    "open_source": {
      "title": "Open source",
      "weight": 3,
      "answer": "yes",
      "evidence": "https://github.com/cjpais/Handy/blob/main/LICENSE",
      "note": "MIT license."
    },
    "no_trackers": {
      "title": "No trackers or telemetry",
      "weight": 3,
      "answer": "yes",
      "evidence": "https://handy.computer/privacy",
      "note": "The app has no analytics or tracking telemetry, and the website has no analytics or tracking cookies."
    },
    "no_ads": {
      "title": "No ads or data sales",
      "weight": 2,
      "answer": "yes",
      "evidence": "https://handy.computer/privacy",
      "note": "Free and funded by donations; the policy states no advertising and no sale of personal information."
    },
    "independent_audit": {
      "title": "Independent audit",
      "weight": 2,
      "answer": "no",
      "evidence": null,
      "note": "No independent audit is published."
    },
    "transparency_report": {
      "title": "Transparency report",
      "weight": 2,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "user_notice": {
      "title": "Tells users about requests",
      "weight": 1,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "tls": {
      "title": "TLS configuration",
      "weight": 2,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "security_headers": {
      "title": "Security headers",
      "weight": 1,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "web_standards": {
      "title": "Modern web standards",
      "weight": 1,
      "answer": "n/a",
      "evidence": null,
      "note": "Only applies to hosted services with a website to test."
    },
    "runs_locally": {
      "title": "Runs on the device",
      "weight": 3,
      "answer": "yes",
      "evidence": "https://handy.computer/privacy",
      "note": "Speech recognition models run on the device; audio is not sent to Handy servers."
    },
    "no_training": {
      "title": "No training on recordings",
      "weight": 2,
      "answer": "yes",
      "evidence": "https://handy.computer/privacy",
      "note": "Transcription is local, so recordings are not sent to the maintainers for training."
    }
  },
  "tests": {
    "ssllabs": null,
    "observatory": null,
    "internetnl_web": null,
    "internetnl_mail": null,
    "trackers": [
      {
        "name": "Cloudflare Web Analytics",
        "host": "static.cloudflareinsights.com",
        "effect": "partial"
      }
    ],
    "tested_at": "2026-10-01T07:02:33.430Z"
  },
  "last_modified": "2026-10-01T07:44:20Z"
}