{
  "data": {
    "similar": [
      {
        "grade": "BB",
        "json": "https://www.anchorterminal.com/tools/groq.json",
        "name": "GroqCloud",
        "score": 75.6,
        "shared": [
          "inference.open-weights"
        ],
        "slug": "groq"
      },
      {
        "grade": "BB",
        "json": "https://www.anchorterminal.com/tools/elevenlabs-agents.json",
        "name": "ElevenLabs Agents API + MCP",
        "score": 71.3,
        "shared": [
          "voice.pipeline"
        ],
        "slug": "elevenlabs-agents"
      },
      {
        "grade": "BB",
        "json": "https://www.anchorterminal.com/tools/mistral-api.json",
        "name": "Mistral AI API",
        "score": 71.2,
        "shared": [
          "inference.open-weights"
        ],
        "slug": "mistral-api"
      },
      {
        "grade": "B",
        "json": "https://www.anchorterminal.com/tools/retell-ai.json",
        "name": "Retell AI API + MCP",
        "score": 69.1,
        "shared": [
          "voice.pipeline"
        ],
        "slug": "retell-ai"
      },
      {
        "grade": "B",
        "json": "https://www.anchorterminal.com/tools/cloudflare-workers-ai.json",
        "name": "Cloudflare Workers AI",
        "score": 68.3,
        "shared": [
          "inference.open-weights"
        ],
        "slug": "cloudflare-workers-ai"
      },
      {
        "grade": "B",
        "json": "https://www.anchorterminal.com/tools/deepgram-voice-agent.json",
        "name": "Deepgram Voice Agent API",
        "score": 68.1,
        "shared": [
          "voice.pipeline"
        ],
        "slug": "deepgram-voice-agent"
      }
    ],
    "tool": {
      "slug": "cuelight",
      "name": "CueLight",
      "vendor": "sshah03 (individual developer, name not stated)",
      "vendorUrl": "https://sshah03.github.io/CueLight/",
      "kind": "sdk",
      "category": "voice-agents",
      "summary": "CueLight is an open-source Python library and set of open-weight models that estimate, every 20 ms of streaming audio, whether a voice-agent user has finished their turn. It runs locally from audio alone, in English.",
      "url": "https://www.anchorterminal.com/tools/cuelight",
      "markdownUrl": "https://www.anchorterminal.com/tools/cuelight.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/cuelight.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/cuelight.json",
      "repo": "https://github.com/sshah03/CueLight",
      "license": "Apache-2.0",
      "transports": [],
      "packages": [],
      "auth": "none",
      "authNotes": "None. The library runs in the caller's process and opens no port. Weights download anonymously from Hugging Face (sshah03/cuelight-nano, -nano-ssm, -base) on first use, or load from a local folder.",
      "pricing": "free",
      "pricingNotes": "Free under Apache-2.0 for code and weights, with no hosted or paid option. The owner pays only for the CPU it runs on. Conditions carried over from the training data ask that it not be used to identify speakers or clone voices.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the source, README or demo page (checked 2026-10-15). There is nothing to buy.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 10,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-15"
      },
      "docsUrl": "https://github.com/sshah03/CueLight#quick-start",
      "capabilities": [
        "voice.pipeline",
        "inference.open-weights"
      ],
      "tags": [
        "sdk",
        "open-source",
        "open-weights",
        "local",
        "self-hosted",
        "python",
        "free",
        "no-card",
        "apache-2.0",
        "pre-1.0"
      ],
      "lastRelease": "2026-10-14",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 48.8,
        "grade": "D",
        "agentReady": false,
        "rank": 873,
        "ranked": true,
        "rankOf": 1094,
        "categoryRank": 14,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 61,
          "maintenance": 46,
          "payments": 60,
          "reliability": 29,
          "schema": 50,
          "security": 50,
          "transparency": 54
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "breakdown": [
          {
            "key": "reliability",
            "name": "Reliability",
            "weight": 16,
            "effectiveWeight": 20,
            "score": 29,
            "points": 5.8,
            "reason": "Read as local software. Installs with pip from the Git repository, not from PyPI, with Python 3.10 or later and its dependencies declared in pyproject.toml (10 of 20). The repository holds two tests (streaming matches whole-sequence output, chunk size is enforced), but the only GitHub workflow is the Pages deployment, so no public CI runs them (5 of 25). No issues or pull requests exist, and at one day old there is no record to judge either way (12 of 25). Version 0.1.0 in pyproject.toml with no tags or changelog (2 of 15). Below 1.0, and the README calls it a first iteration (0)."
          },
          {
            "key": "performance",
            "name": "Performance",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
          },
          {
            "key": "schema",
            "name": "Schema \u0026 documentation",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 50,
            "points": 8.13,
            "reason": "Library reading. No OpenAPI applies. The public classes are small, with type hints on most signatures and frozen dataclasses for both policies, though `push` takes an untyped chunk (15 of 25). No llms.txt on the Pages site, and docs are the README (0). The README says which model suits which device, when to choose each preset, and states the limits (English only, audio only, Base's CPU cost) (16 of 20). The 320-sample frame is enforced by an assert, while an unknown preset name falls back silently to default thresholds rather than raising (8 of 15). Quick-start snippets and two example scripts. Error behaviour is not documented (8 of 15). A version number in pyproject.toml and `__version__`, with no changelog (3 of 15)."
          },
          {
            "key": "ergonomics",
            "name": "Agent ergonomics",
            "weight": 13,
            "effectiveWeight": 16.25,
            "score": 61,
            "points": 9.91,
            "reason": "Library reading. Four public names and one call per frame, with an 11 KB README, so the context cost of learning it is low (22 of 25). Output is one probability and one speech probability per frame, and thresholds, minimum silence, timeout and reset behaviour can all be set (14 of 20). The only error is an assert on chunk size, which `python -O` strips, and a mistyped preset gives defaults without a warning (6 of 20). `push` is stateful by design. `clear()` resets between calls and the detector resets itself at each new turn, and the source shows streaming matches whole-clip output to 1e-4 (10 of 20). One required argument with working defaults. Python only, with ONNX step files and a browser demo but no packaged second-language SDK (9 of 15)."
          },
          {
            "key": "security",
            "name": "Security \u0026 auth",
            "weight": 14,
            "effectiveWeight": 17.5,
            "score": 50,
            "points": 8.75,
            "reason": "Local-software reading. No credential and no open port. The code runs in the caller's process, weights load from safetensors rather than pickle, but `snapshot_download` fetches the main branch of each Hugging Face repository with no pinned revision (20 of 30). It only classifies audio and takes no actions (16 of 20). It returns probabilities, not content from third parties (10). No logging. Per-frame probabilities and a reset counter are visible to the caller (4 of 15). No SECURITY.md, disclosure policy, security.txt or advisories (0 of 20)."
          },
          {
            "key": "payments",
            "name": "Payments \u0026 pricing",
            "weight": 10,
            "effectiveWeight": 12.5,
            "score": 60,
            "points": 7.5,
            "reason": "No payment protocol (0). Read with the self-hosted rule. Apache-2.0 code and weights with no hosted or paid option (20). No card or account (20). Weights download anonymously, with no signup (20)."
          },
          {
            "key": "tasks",
            "name": "Task success",
            "weight": 10,
            "effectiveWeight": 0,
            "pending": true,
            "points": 0,
            "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
          },
          {
            "key": "maintenance",
            "name": "Maintenance \u0026 community",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 46,
            "points": 4.03,
            "reason": "Published on 14 October 2026, one day before the check (30). One publication and no tagged releases, given a quarter of the line as for a single release elsewhere (5 of 20). No issues or pull requests yet, so responsiveness cannot be seen (5 of 25). Not on PyPI. The weights are on Hugging Face and the package installs only from Git (3 of 15). Dependencies are current minimums (torch 2.1 or later), with no lockfile, Dependabot or CI (3 of 10). The project is one day old, so these lines reflect the checklist, not a judgement of the maintainer."
          },
          {
            "key": "transparency",
            "name": "Transparency \u0026 trust",
            "weight": 7,
            "effectiveWeight": 8.75,
            "score": 54,
            "points": 4.72,
            "note": "editorial 67, provenance 40",
            "reason": "Apache-2.0 for code and weights, with a NOTICE that lists each training dataset, teacher model and licence, and the conditions passed on from the data (30). Nothing is hosted. The README says the browser demo keeps audio on the device, which the demo code agrees with, and that weights download from Hugging Face on first use. There is no privacy statement as such (22 of 30). No deprecation policy or dated notices (0 of 20). No telemetry found in the package or demo source. The README does not mention telemetry, and huggingface_hub's own defaults are not discussed (15 of 20)."
          }
        ],
        "assessment": {
          "date": "2026-10-15",
          "basis": "public evidence",
          "confidence": "medium",
          "notes": {
            "ergonomics": "Library reading. Four public names and one call per frame, with an 11 KB README, so the context cost of learning it is low (22 of 25). Output is one probability and one speech probability per frame, and thresholds, minimum silence, timeout and reset behaviour can all be set (14 of 20). The only error is an assert on chunk size, which `python -O` strips, and a mistyped preset gives defaults without a warning (6 of 20). `push` is stateful by design. `clear()` resets between calls and the detector resets itself at each new turn, and the source shows streaming matches whole-clip output to 1e-4 (10 of 20). One required argument with working defaults. Python only, with ONNX step files and a browser demo but no packaged second-language SDK (9 of 15).",
            "maintenance": "Published on 14 October 2026, one day before the check (30). One publication and no tagged releases, given a quarter of the line as for a single release elsewhere (5 of 20). No issues or pull requests yet, so responsiveness cannot be seen (5 of 25). Not on PyPI. The weights are on Hugging Face and the package installs only from Git (3 of 15). Dependencies are current minimums (torch 2.1 or later), with no lockfile, Dependabot or CI (3 of 10). The project is one day old, so these lines reflect the checklist, not a judgement of the maintainer.",
            "payments": "No payment protocol (0). Read with the self-hosted rule. Apache-2.0 code and weights with no hosted or paid option (20). No card or account (20). Weights download anonymously, with no signup (20).",
            "reliability": "Read as local software. Installs with pip from the Git repository, not from PyPI, with Python 3.10 or later and its dependencies declared in pyproject.toml (10 of 20). The repository holds two tests (streaming matches whole-sequence output, chunk size is enforced), but the only GitHub workflow is the Pages deployment, so no public CI runs them (5 of 25). No issues or pull requests exist, and at one day old there is no record to judge either way (12 of 25). Version 0.1.0 in pyproject.toml with no tags or changelog (2 of 15). Below 1.0, and the README calls it a first iteration (0).",
            "schema": "Library reading. No OpenAPI applies. The public classes are small, with type hints on most signatures and frozen dataclasses for both policies, though `push` takes an untyped chunk (15 of 25). No llms.txt on the Pages site, and docs are the README (0). The README says which model suits which device, when to choose each preset, and states the limits (English only, audio only, Base's CPU cost) (16 of 20). The 320-sample frame is enforced by an assert, while an unknown preset name falls back silently to default thresholds rather than raising (8 of 15). Quick-start snippets and two example scripts. Error behaviour is not documented (8 of 15). A version number in pyproject.toml and `__version__`, with no changelog (3 of 15).",
            "security": "Local-software reading. No credential and no open port. The code runs in the caller's process, weights load from safetensors rather than pickle, but `snapshot_download` fetches the main branch of each Hugging Face repository with no pinned revision (20 of 30). It only classifies audio and takes no actions (16 of 20). It returns probabilities, not content from third parties (10). No logging. Per-frame probabilities and a reset counter are visible to the caller (4 of 15). No SECURITY.md, disclosure policy, security.txt or advisories (0 of 20).",
            "transparency": "Apache-2.0 for code and weights, with a NOTICE that lists each training dataset, teacher model and licence, and the conditions passed on from the data (30). Nothing is hosted. The README says the browser demo keeps audio on the device, which the demo code agrees with, and that weights download from Hugging Face on first use. There is no privacy statement as such (22 of 30). No deprecation policy or dated notices (0 of 20). No telemetry found in the package or demo source. The README does not mention telemetry, and huggingface_hub's own defaults are not discussed (15 of 20)."
          },
          "sources": [
            {
              "what": "repository README, pyproject.toml, NOTICE and source",
              "url": "https://github.com/sshah03/CueLight",
              "seen": "2026-10-15"
            },
            {
              "what": "commit history (one commit, 14 October 2026)",
              "url": "https://github.com/sshah03/CueLight/commits/main",
              "seen": "2026-10-15"
            },
            {
              "what": "Hugging Face model repository, cuelight-nano",
              "url": "https://huggingface.co/sshah03/cuelight-nano",
              "seen": "2026-10-15"
            },
            {
              "what": "Hugging Face model repository, cuelight-nano-ssm",
              "url": "https://huggingface.co/sshah03/cuelight-nano-ssm",
              "seen": "2026-10-15"
            },
            {
              "what": "Hugging Face model repository, cuelight-base",
              "url": "https://huggingface.co/sshah03/cuelight-base",
              "seen": "2026-10-15"
            },
            {
              "what": "browser demo on GitHub Pages",
              "url": "https://sshah03.github.io/CueLight/",
              "seen": "2026-10-15"
            },
            {
              "what": "OpenVoiceOS plugin wrapper",
              "url": "https://github.com/OpenVoiceOS/ovos-eot-plugin-cuelight",
              "seen": "2026-10-15"
            },
            {
              "what": "Show HN post of 14 October 2026",
              "url": "https://news.ycombinator.com/item?id=50089154",
              "seen": "2026-10-15"
            },
            {
              "what": "PyPI, no project named cuelight (404)",
              "url": "https://pypi.org/project/cuelight/",
              "seen": "2026-10-15"
            }
          ],
          "openQuestions": [
            "Judgement call on category. Listed in voice agents under `voice.pipeline`, as a component of the speech-to-text, model and text-to-speech chain, because no category covers turn detection on its own. It runs no conversation, so `voice.agent` is left out. `inference.open-weights` is added because the weights are published.",
            "The lead was right. Initial commit and the Nano, Nano-SSM and Base weights on 14 October 2026 UTC (13 October in the author's time zone). `firstReleased` is 2026-10-14. The project was one day old at the check.",
            "Graded on the Python library interface, which is what an agent-building pipeline would call. There is no hosted API or local server.",
            "We did not install or run the package or the demo. Accuracy and CPU figures are the author's, from the README.",
            "The author's eot-bench results use presets tuned on half of eot-bench, and eot-bench data was used to choose between models. The README discloses both. No deduction, since the claims are qualified.",
            "The OpenVoiceOS plugin README gives `pip install ovos-eot-plugin-cuelight`, but PyPI had no such project on 15 October 2026."
          ]
        },
        "negative": 0,
        "verdict": "CueLight gives a voice pipeline a local end-of-turn probability every 20 ms from audio alone, with a 1.9 MB model and Apache-2.0 weights. It is one day old, English only, installs from Git rather than PyPI, has no CI or changelog, and its accuracy figures are the author's own.",
        "bestFor": "A turn-detection component for teams assembling their own voice pipeline (OpenVoiceOS, Pipecat-style stacks), especially on small devices.",
        "strengths": [
          "Apache-2.0 code and weights, with every training dataset and teacher model named in NOTICE",
          "Nano is 0.5M parameters and 1.9 MB, with ONNX step files for non-Python runtimes",
          "Works from audio alone and updates during speech, not only at pauses",
          "Two tuned presets and a custom policy, behind a four-name Python interface",
          "Weights load from safetensors, and no telemetry was found in the source"
        ],
        "weaknesses": [
          "English only, and the author does not plan other languages soon",
          "Not on PyPI, no tags, releases, changelog or CI, and one commit at the check",
          "Benchmarks are self-reported, and the presets were tuned on half of the benchmark they are scored on",
          "Weights download from Hugging Face main branches with no pinned revision",
          "An unknown preset name falls back silently to default thresholds"
        ],
        "agentNotes": [
          "Feed 320 float32 samples at 16 kHz mono per `push`. Resample first, or the call raises an AssertionError",
          "Spell the preset as `snappy` or `careful`. Any other name silently uses default thresholds",
          "Call `clear()` before a new call or session. Pass `reset_on_turn_start=False` if your pipeline already resets per turn",
          "Pin weights by downloading them to a local folder and passing that path to `from_pretrained`",
          "Don't use it to identify speakers or clone voices. The training data's conditions forbid it"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 48.8
          }
        ],
        "editorialScores": {
          "ergonomics": 61,
          "maintenance": 46,
          "payments": 60,
          "reliability": 29,
          "schema": 50,
          "security": 50,
          "transparency": 67
        },
        "provenanceScore": 40
      },
      "connect": {
        "install": "pip install git+https://github.com/sshah03/CueLight"
      },
      "letme": {
        "capability": "https://letme.dev/voice.pipeline",
        "tool": "https://letme.dev/cuelight"
      },
      "notable": [
        "The repository's single commit, \"CueLight: always-listening turn detector (Nano, Nano-SSM, Base)\", is dated 14 October 2026 01:25 UTC, and the three Hugging Face model repositories were created the same minute (https://github.com/sshah03/CueLight/commits/main)",
        "Three models. Nano is a 0.5M-parameter causal GRU (1.9 MB), Nano-SSM swaps in a Mamba-3 core (experimental), Base is a causal Whisper small.en encoder (88M parameters, 336 MB) (https://github.com/sshah03/CueLight#models)",
        "The README reports Nano at 0.5 ms and Base at 5.0 ms of one Apple M4 Pro core per 20 ms of audio. These are the author's figures, not ours (https://github.com/sshah03/CueLight#models)",
        "Benchmarks against Smart Turn v3.2 and LiveKit v1-mini on eot-bench and Smart Turn's test set are self-reported, and the presets were tuned on half of eot-bench (https://github.com/sshah03/CueLight#how-well-does-it-work)",
        "Not on PyPI. Install is `pip install git+https://github.com/sshah03/CueLight`, package version 0.1.0, with no tags or releases (https://github.com/sshah03/CueLight/blob/main/pyproject.toml)",
        "A browser demo on GitHub Pages runs Nano's ONNX step model in WebAssembly, and its code fetches only model files and onnxruntime-web (https://sshah03.github.io/CueLight/)",
        "Show HN post on 14 October 2026. OpenVoiceOS published a wrapper plugin, ovos-eot-plugin-cuelight, the same day (https://github.com/OpenVoiceOS/ovos-eot-plugin-cuelight)"
      ],
      "area": "voice",
      "details": [
        {
          "label": "Surface listed",
          "value": "The Python package `cuelight` 0.1.0 (`TurnDetector`, `Endpointer`, `EndpointPolicy`, `load`) and its three model repositories on Hugging Face, read from the source, the README and the model cards on 15 October 2026. Nothing was installed or run"
        },
        {
          "label": "Interface",
          "value": "`TurnDetector.push(chunk)` takes 320 float32 samples (20 ms at 16 kHz mono) and returns p(end of turn), with `p_speech` for the same frame. `Endpointer.push(chunk)` returns True once when the turn ends"
        },
        {
          "label": "Models",
          "value": "cuelight-nano (0.5M parameters, 1.9 MB, ONNX step file), cuelight-nano-ssm (0.5M, experimental, ONNX step file), cuelight-base (88M, 336 MB, PyTorch only)"
        },
        {
          "label": "Presets",
          "value": "`snappy` (default, about 1 in 10 pauses interrupted by the author's measure) and `careful` (about 1 in 20), or a custom `EndpointPolicy(threshold, min_silence_s, timeout_s)`"
        },
        {
          "label": "Languages",
          "value": "English only. The README says other languages are not planned soon"
        },
        {
          "label": "Runtime",
          "value": "Python 3.10 or later, PyTorch 2.1 or later, numpy, safetensors, huggingface_hub. Weights load from safetensors"
        },
        {
          "label": "Framework integrations",
          "value": "None in the project, which says it depends on no voice framework. OpenVoiceOS maintains a plugin wrapper, whose README says it is not on PyPI yet"
        },
        {
          "label": "Telemetry",
          "value": "None found in the package source (searched 2026-10-15). Weight downloads go through huggingface_hub, whose own settings apply"
        },
        {
          "label": "Project age",
          "value": "One day at the check. One commit, no tags, releases, issues or pull requests"
        },
        {
          "label": "Releases in 90 days",
          "value": "None tagged. One published version, 0.1.0 in pyproject.toml, on 14 October 2026"
        }
      ],
      "provenance": {
        "legalEntity": "sshah03 (individual GitHub account, no name or organisation stated)",
        "domain": "sshah03.github.io",
        "domainRegistered": "",
        "domainNote": "A library and model weights, not a service. Code on github.com/sshah03, weights on huggingface.co/sshah03, demo on GitHub Pages. No domain of its own.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "",
        "securityTxt": "none",
        "checked": "2026-10-15",
        "notes": [
          "The LICENSE is Apache-2.0 and NOTICE reads Copyright 2026 sshah03, with third-party model and dataset licences in NOTICE and LICENSES/.",
          "The GitHub account sshah03 was created on 10 July 2012 and gives no name, company or website.",
          "No terms or privacy document governs the library or the demo page. Nothing is hosted beyond static GitHub Pages files, so both fields are left out.",
          "No changelog, tags or GitHub releases. The repository has no SECURITY.md, and github.io serves no security.txt for the project.",
          "The repository was created on 13 October 2026 19:15 UTC and its one commit pushed on 14 October 2026 01:25 UTC."
        ],
        "score": 40,
        "checks": [
          {
            "check": "Legal entity named",
            "value": "sshah03 (individual GitHub account, no name or organisation stated)",
            "points": 20,
            "max": 20,
            "state": "ok"
          },
          {
            "check": "Domain age",
            "value": "sshah03.github.io, no registry record we could read",
            "points": 0,
            "max": 15,
            "state": "no"
          },
          {
            "check": "Endpoint on the vendor's domain",
            "value": "no hosted endpoint",
            "points": 0,
            "max": 0,
            "state": "na"
          },
          {
            "check": "Terms of service",
            "value": "nothing hosted, so the Apache-2.0 licence stands in",
            "points": 10,
            "max": 10,
            "state": "ok"
          },
          {
            "check": "Privacy policy",
            "value": "nothing hosted, not scored",
            "points": 0,
            "max": 0,
            "state": "na"
          },
          {
            "check": "Status page",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          },
          {
            "check": "Changelog",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          },
          {
            "check": "security.txt",
            "value": "not found",
            "points": 0,
            "max": 10,
            "state": "no"
          }
        ]
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/cuelight.json"
    },
    "verify": {
      "accepts": "a page on sshah03.github.io or one of its subdomains, or the README of github.com/sshah03/CueLight",
      "badgeUrl": "https://www.anchorterminal.com/badges/cuelight.svg",
      "body": {
        "slug": "cuelight",
        "url": "the page with the badge or the link"
      },
      "docs": "https://www.anchorterminal.com/builders/#verify",
      "effect": "none, it never changes a grade, rank or review",
      "endpoint": "https://www.anchorterminal.com/api/v1/verify",
      "listingUrl": "https://www.anchorterminal.com/tools/cuelight",
      "mcpTool": "verify_listing",
      "recheck": "weekly; two failed checks in a row and it lapses, a later pass restores it",
      "snippets": {
        "html": "\u003ca href=\"https://www.anchorterminal.com/tools/cuelight\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/cuelight.svg\" alt=\"CueLight on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e",
        "markdown": "[![CueLight on Anchor Terminal](https://www.anchorterminal.com/badges/cuelight.svg)](https://www.anchorterminal.com/tools/cuelight)",
        "link": "\u003ca href=\"https://www.anchorterminal.com/tools/cuelight\"\u003eCueLight on Anchor Terminal\u003c/a\u003e"
      }
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/tools/cuelight",
    "json": "https://www.anchorterminal.com/tools/cuelight.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/tools/cuelight.md",
    "slim": "https://www.anchorterminal.com/tools/cuelight.min.md"
  },
  "markdown": "## Overview\n\n**Grade D · 48.8/100 · rank #873 of 1094 · #14 in Conversational voice agents · not agent-ready · confidence medium**\n\n\n## Assessment\n\nCueLight gives a voice pipeline a local end-of-turn probability every 20 ms from audio alone, with a 1.9 MB model and Apache-2.0 weights. It is one day old, English only, installs from Git rather than PyPI, has no CI or changelog, and its accuracy figures are the author's own.\n\n## Facts\n\n| Field | Value |\n| --- | --- |\n| Vendor | sshah03 (individual developer, name not stated) (https://sshah03.github.io/CueLight/) |\n| Kind | SDK + MCP |\n| Category | Conversational voice agents (https://www.anchorterminal.com/categories/voice-agents) |\n| Auth | None · None. The library runs in the caller's process and opens no port. Weights download anonymously from Hugging Face (sshah03/cuelight-nano, -nano-ssm, -base) on first use, or load from a local folder. |\n| Pricing | Free (Free · OSS) · Free under Apache-2.0 for code and weights, with no hosted or paid option. The owner pays only for the CPU it runs on. Conditions carried over from the training data ask that it not be used to identify speakers or clone voices. |\n| x402 | No · No x402, MPP or L402 in the source, README or demo page (checked 2026-10-15). There is nothing to buy. |\n| Licence | Apache-2.0 |\n| Source | https://github.com/sshah03/CueLight |\n| Docs | https://github.com/sshah03/CueLight#quick-start |\n| llms.txt | not found |\n| Last release | 2026-10-14 |\n| GitHub stars | 10 (as of 2026-10-15) |\n| Surface listed | The Python package `cuelight` 0.1.0 (`TurnDetector`, `Endpointer`, `EndpointPolicy`, `load`) and its three model repositories on Hugging Face, read from the source, the README and the model cards on 15 October 2026. Nothing was installed or run |\n| Interface | `TurnDetector.push(chunk)` takes 320 float32 samples (20 ms at 16 kHz mono) and returns p(end of turn), with `p_speech` for the same frame. `Endpointer.push(chunk)` returns True once when the turn ends |\n| Models | cuelight-nano (0.5M parameters, 1.9 MB, ONNX step file), cuelight-nano-ssm (0.5M, experimental, ONNX step file), cuelight-base (88M, 336 MB, PyTorch only) |\n| Presets | `snappy` (default, about 1 in 10 pauses interrupted by the author's measure) and `careful` (about 1 in 20), or a custom `EndpointPolicy(threshold, min_silence_s, timeout_s)` |\n| Languages | English only. The README says other languages are not planned soon |\n| Runtime | Python 3.10 or later, PyTorch 2.1 or later, numpy, safetensors, huggingface_hub. Weights load from safetensors |\n| Framework integrations | None in the project, which says it depends on no voice framework. OpenVoiceOS maintains a plugin wrapper, whose README says it is not on PyPI yet |\n| Telemetry | None found in the package source (searched 2026-10-15). Weight downloads go through huggingface_hub, whose own settings apply |\n| Project age | One day at the check. One commit, no tags, releases, issues or pull requests |\n| Releases in 90 days | None tagged. One published version, 0.1.0 in pyproject.toml, on 14 October 2026 |\n| Capabilities | voice.pipeline, inference.open-weights |\n| Tags | sdk, open-source, open-weights, local, self-hosted, python, free, no-card, apache-2.0, pre-1.0 |\n| JSON | https://www.anchorterminal.com/api/v1/tools/cuelight.json |\n\n## Score breakdown (methodology v0.4, October 2026 research run)\n\nAssessed 2026-10-15 from public evidence against the published checklist (https://www.anchorterminal.com/benchmark/#checklist). Confidence: medium. Performance and Task success pending (no score, not in the total); the total is Σ(score × weight) ÷ 80 over the 7 assessed categories. \"This run\" is each category's share of the 100 points.\n\n| Category | Weight | This run | Score (0–100) | Points |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% | 20 | 29 | 5.8 |\n| Performance | 10% | pending | pending | n/a |\n| Schema \u0026 documentation | 13% | 16.2 | 50 | 8.1 |\n| Agent ergonomics | 13% | 16.2 | 61 | 9.9 |\n| Security \u0026 auth | 14% | 17.5 | 50 | 8.8 |\n| Payments \u0026 pricing | 10% | 12.5 | 60 | 7.5 |\n| Task success | 10% | pending | pending | n/a |\n| Maintenance \u0026 community | 7% | 8.8 | 46 | 4.0 |\n| Transparency \u0026 trust (editorial 67, provenance 40) | 7% | 8.8 | 54 | 4.7 |\n| Negative events | up to −15 | up to −15 | none recorded | 0 |\n| **Total** | | | | **48.8 → D** |\n\n### Why each score\n\n- Reliability 29: Read as local software. Installs with pip from the Git repository, not from PyPI, with Python 3.10 or later and its dependencies declared in pyproject.toml (10 of 20). The repository holds two tests (streaming matches whole-sequence output, chunk size is enforced), but the only GitHub workflow is the Pages deployment, so no public CI runs them (5 of 25). No issues or pull requests exist, and at one day old there is no record to judge either way (12 of 25). Version 0.1.0 in pyproject.toml with no tags or changelog (2 of 15). Below 1.0, and the README calls it a first iteration (0).\n- Performance: Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes.\n- Schema \u0026 documentation 50: Library reading. No OpenAPI applies. The public classes are small, with type hints on most signatures and frozen dataclasses for both policies, though `push` takes an untyped chunk (15 of 25). No llms.txt on the Pages site, and docs are the README (0). The README says which model suits which device, when to choose each preset, and states the limits (English only, audio only, Base's CPU cost) (16 of 20). The 320-sample frame is enforced by an assert, while an unknown preset name falls back silently to default thresholds rather than raising (8 of 15). Quick-start snippets and two example scripts. Error behaviour is not documented (8 of 15). A version number in pyproject.toml and `__version__`, with no changelog (3 of 15).\n- Agent ergonomics 61: Library reading. Four public names and one call per frame, with an 11 KB README, so the context cost of learning it is low (22 of 25). Output is one probability and one speech probability per frame, and thresholds, minimum silence, timeout and reset behaviour can all be set (14 of 20). The only error is an assert on chunk size, which `python -O` strips, and a mistyped preset gives defaults without a warning (6 of 20). `push` is stateful by design. `clear()` resets between calls and the detector resets itself at each new turn, and the source shows streaming matches whole-clip output to 1e-4 (10 of 20). One required argument with working defaults. Python only, with ONNX step files and a browser demo but no packaged second-language SDK (9 of 15).\n- Security \u0026 auth 50: Local-software reading. No credential and no open port. The code runs in the caller's process, weights load from safetensors rather than pickle, but `snapshot_download` fetches the main branch of each Hugging Face repository with no pinned revision (20 of 30). It only classifies audio and takes no actions (16 of 20). It returns probabilities, not content from third parties (10). No logging. Per-frame probabilities and a reset counter are visible to the caller (4 of 15). No SECURITY.md, disclosure policy, security.txt or advisories (0 of 20).\n- Payments \u0026 pricing 60: No payment protocol (0). Read with the self-hosted rule. Apache-2.0 code and weights with no hosted or paid option (20). No card or account (20). Weights download anonymously, with no signup (20).\n- Task success: Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored.\n- Maintenance \u0026 community 46: Published on 14 October 2026, one day before the check (30). One publication and no tagged releases, given a quarter of the line as for a single release elsewhere (5 of 20). No issues or pull requests yet, so responsiveness cannot be seen (5 of 25). Not on PyPI. The weights are on Hugging Face and the package installs only from Git (3 of 15). Dependencies are current minimums (torch 2.1 or later), with no lockfile, Dependabot or CI (3 of 10). The project is one day old, so these lines reflect the checklist, not a judgement of the maintainer.\n- Transparency \u0026 trust 54: Apache-2.0 for code and weights, with a NOTICE that lists each training dataset, teacher model and licence, and the conditions passed on from the data (30). Nothing is hosted. The README says the browser demo keeps audio on the device, which the demo code agrees with, and that weights download from Hugging Face on first use. There is no privacy statement as such (22 of 30). No deprecation policy or dated notices (0 of 20). No telemetry found in the package or demo source. The README does not mention telemetry, and huggingface_hub's own defaults are not discussed (15 of 20).\n\nFix list for a coding agent, everything this grade says the listing lacks, the biggest gain first (17 items): https://www.anchorterminal.com/fixes/cuelight.md (JSON https://www.anchorterminal.com/fixes/cuelight.json)\n\n### What we couldn't check\n\n- Judgement call on category. Listed in voice agents under `voice.pipeline`, as a component of the speech-to-text, model and text-to-speech chain, because no category covers turn detection on its own. It runs no conversation, so `voice.agent` is left out. `inference.open-weights` is added because the weights are published.\n- The lead was right. Initial commit and the Nano, Nano-SSM and Base weights on 14 October 2026 UTC (13 October in the author's time zone). `firstReleased` is 2026-10-14. The project was one day old at the check.\n- Graded on the Python library interface, which is what an agent-building pipeline would call. There is no hosted API or local server.\n- We did not install or run the package or the demo. Accuracy and CPU figures are the author's, from the README.\n- The author's eot-bench results use presets tuned on half of eot-bench, and eot-bench data was used to choose between models. The README discloses both. No deduction, since the claims are qualified.\n- The OpenVoiceOS plugin README gives `pip install ovos-eot-plugin-cuelight`, but PyPI had no such project on 15 October 2026.\n\n### Sources\n\n- repository README, pyproject.toml, NOTICE and source: \u003chttps://github.com/sshah03/CueLight\u003e (seen 2026-10-15)\n- commit history (one commit, 14 October 2026): \u003chttps://github.com/sshah03/CueLight/commits/main\u003e (seen 2026-10-15)\n- Hugging Face model repository, cuelight-nano: \u003chttps://huggingface.co/sshah03/cuelight-nano\u003e (seen 2026-10-15)\n- Hugging Face model repository, cuelight-nano-ssm: \u003chttps://huggingface.co/sshah03/cuelight-nano-ssm\u003e (seen 2026-10-15)\n- Hugging Face model repository, cuelight-base: \u003chttps://huggingface.co/sshah03/cuelight-base\u003e (seen 2026-10-15)\n- browser demo on GitHub Pages: \u003chttps://sshah03.github.io/CueLight/\u003e (seen 2026-10-15)\n- OpenVoiceOS plugin wrapper: \u003chttps://github.com/OpenVoiceOS/ovos-eot-plugin-cuelight\u003e (seen 2026-10-15)\n- Show HN post of 14 October 2026: \u003chttps://news.ycombinator.com/item?id=50089154\u003e (seen 2026-10-15)\n- PyPI, no project named cuelight (404): \u003chttps://pypi.org/project/cuelight/\u003e (seen 2026-10-15)\n\n## Who's behind it (provenance 40/100, checked 2026-10-15)\n\n| Check | Finding | Points |\n| --- | --- | --- |\n| Legal entity named | sshah03 (individual GitHub account, no name or organisation stated) | 20/20 |\n| Domain age | sshah03.github.io, no registry record we could read | 0/15 |\n| Endpoint on the vendor's domain | no hosted endpoint | n/a |\n| Terms of service | nothing hosted, so the Apache-2.0 licence stands in | 10/10 |\n| Privacy policy | nothing hosted, not scored | n/a |\n| Status page | not found | 0/10 |\n| Changelog | not found | 0/10 |\n| security.txt | not found | 0/10 |\n\nA library and model weights, not a service. Code on github.com/sshah03, weights on huggingface.co/sshah03, demo on GitHub Pages. No domain of its own.\n\nThe LICENSE is Apache-2.0 and NOTICE reads Copyright 2026 sshah03, with third-party model and dataset licences in NOTICE and LICENSES/.\n\nThe GitHub account sshah03 was created on 10 July 2012 and gives no name, company or website.\n\nNo terms or privacy document governs the library or the demo page. Nothing is hosted beyond static GitHub Pages files, so both fields are left out.\n\nNo changelog, tags or GitHub releases. The repository has no SECURITY.md, and github.io serves no security.txt for the project.\n\nThe repository was created on 13 October 2026 19:15 UTC and its one commit pushed on 14 October 2026 01:25 UTC.\n\n### Terms and privacy, as read\n\nA reading by a fixed set of rules, each answered with the vendor's own sentence. Not legal advice.\n\n**Terms of service**. Nothing is hosted by the vendor, so there are no terms of service to read. The Apache-2.0 licence stands in and the check scores in full.\n\n\n**Privacy policy**. Nothing is hosted by the vendor, so there is no privacy policy to read and the check isn't scored.\n\n\n## Probe metrics\n\nNot measured yet. Our benchmark probes haven't run, so there's no availability, latency or error rate from a run and Performance is pending. Live uptime, where we poll the endpoint, is under Live and doesn't change the score.\n\n## Strengths\n\n- Apache-2.0 code and weights, with every training dataset and teacher model named in NOTICE\n- Nano is 0.5M parameters and 1.9 MB, with ONNX step files for non-Python runtimes\n- Works from audio alone and updates during speech, not only at pauses\n- Two tuned presets and a custom policy, behind a four-name Python interface\n- Weights load from safetensors, and no telemetry was found in the source\n\n## Weaknesses\n\n- English only, and the author does not plan other languages soon\n- Not on PyPI, no tags, releases, changelog or CI, and one commit at the check\n- Benchmarks are self-reported, and the presets were tuned on half of the benchmark they are scored on\n- Weights download from Hugging Face main branches with no pinned revision\n- An unknown preset name falls back silently to default thresholds\n\n\n\n## Before you call it (notes for agents)\n\n1. Feed 320 float32 samples at 16 kHz mono per `push`. Resample first, or the call raises an AssertionError\n2. Spell the preset as `snappy` or `careful`. Any other name silently uses default thresholds\n3. Call `clear()` before a new call or session. Pass `reset_on_turn_start=False` if your pipeline already resets per turn\n4. Pin weights by downloading them to a local folder and passing that path to `from_pretrained`\n5. Don't use it to identify speakers or clone voices. The training data's conditions forbid it\n\n## Connect\n\nInstall:\n\n```bash\npip install git+https://github.com/sshah03/CueLight\n```\n\nThrough letme (picks today, calling later): https://letme.dev/cuelight. letme answers with the pick and how to call it direct; calling through letme (one key, the vendor's own price) comes later. How it works: https://www.anchorterminal.com/letme/index.md\n\n## Similar tools\n\nRanked by shared capabilities, then score. Same-category tools with no shared capability key are listed last.\n\n| Tool | Grade | Score | Rank | Shared capabilities | x402 | Markdown |\n| --- | --- | --- | --- | --- | --- | --- |\n| GroqCloud | BB | 75.6 | 47 | inference.open-weights | no | https://www.anchorterminal.com/tools/groq.md |\n| ElevenLabs Agents API + MCP | BB | 71.3 | 133 | voice.pipeline | no | https://www.anchorterminal.com/tools/elevenlabs-agents.md |\n| Mistral AI API | BB | 71.2 | 138 | inference.open-weights | no | https://www.anchorterminal.com/tools/mistral-api.md |\n| Retell AI API + MCP | B | 69.1 | 206 | voice.pipeline | no | https://www.anchorterminal.com/tools/retell-ai.md |\n| Cloudflare Workers AI | B | 68.3 | 235 | inference.open-weights | no | https://www.anchorterminal.com/tools/cloudflare-workers-ai.md |\n| Deepgram Voice Agent API | B | 68.1 | 241 | voice.pipeline | no | https://www.anchorterminal.com/tools/deepgram-voice-agent.md |\n\n## Panel reviews (0)\n\nReviewed by the Anchor panel (https://www.anchorterminal.com/reviewers/index.md): .\n\nDesk reviews, written from public documentation, pricing, terms, source and status history on 1 October 2026. No calls made. For a desk review, the outcome says whether the reviewer's questions could be answered from public material: success, partial or failure. How reviews work: https://www.anchorterminal.com/reviews/how-it-works.md\n\n## Notable\n\n- The repository's single commit, \"CueLight: always-listening turn detector (Nano, Nano-SSM, Base)\", is dated 14 October 2026 01:25 UTC, and the three Hugging Face model repositories were created the same minute (source: \u003chttps://github.com/sshah03/CueLight/commits/main\u003e)\n- Three models. Nano is a 0.5M-parameter causal GRU (1.9 MB), Nano-SSM swaps in a Mamba-3 core (experimental), Base is a causal Whisper small.en encoder (88M parameters, 336 MB) (source: \u003chttps://github.com/sshah03/CueLight#models\u003e)\n- The README reports Nano at 0.5 ms and Base at 5.0 ms of one Apple M4 Pro core per 20 ms of audio. These are the author's figures, not ours (source: \u003chttps://github.com/sshah03/CueLight#models\u003e)\n- Benchmarks against Smart Turn v3.2 and LiveKit v1-mini on eot-bench and Smart Turn's test set are self-reported, and the presets were tuned on half of eot-bench (source: \u003chttps://github.com/sshah03/CueLight#how-well-does-it-work\u003e)\n- Not on PyPI. Install is `pip install git+https://github.com/sshah03/CueLight`, package version 0.1.0, with no tags or releases (source: \u003chttps://github.com/sshah03/CueLight/blob/main/pyproject.toml\u003e)\n- A browser demo on GitHub Pages runs Nano's ONNX step model in WebAssembly, and its code fetches only model files and onnxruntime-web (source: \u003chttps://sshah03.github.io/CueLight/\u003e)\n- Show HN post on 14 October 2026. OpenVoiceOS published a wrapper plugin, ovos-eot-plugin-cuelight, the same day (source: \u003chttps://github.com/OpenVoiceOS/ovos-eot-plugin-cuelight\u003e)\n\n- #14 of 15 in Best conversational voice-agent APIs: https://www.anchorterminal.com/best/voice-agents/index.md\n- All 102 voice agents comparisons: https://www.anchorterminal.com/compare/voice-agents/index.md\n\n## Compare\n\n- [AssemblyAI Voice Agent API vs CueLight](https://www.anchorterminal.com/compare/assemblyai-voice-agent-vs-cuelight.md): B 64.4 vs D 48.8\n- [Bland AI API + MCP vs CueLight](https://www.anchorterminal.com/compare/bland-ai-vs-cuelight.md): B 63.8 vs D 48.8\n- [Bolna API + MCP vs CueLight](https://www.anchorterminal.com/compare/bolna-vs-cuelight.md): D 52.6 vs D 48.8\n- [CueLight vs Deepgram Voice Agent API](https://www.anchorterminal.com/compare/cuelight-vs-deepgram-voice-agent.md): D 48.8 vs B 68.1\n- [CueLight vs ElevenLabs Agents API + MCP](https://www.anchorterminal.com/compare/cuelight-vs-elevenlabs-agents.md): D 48.8 vs BB 71.3\n- [CueLight vs Hume EVI (Empathic Voice Interface)](https://www.anchorterminal.com/compare/cuelight-vs-hume-evi.md): D 48.8 vs C 56.7\n- [CueLight vs Retell AI API + MCP](https://www.anchorterminal.com/compare/cuelight-vs-retell-ai.md): D 48.8 vs B 69.1\n- [CueLight vs Synthflow API + MCP](https://www.anchorterminal.com/compare/cuelight-vs-synthflow.md): D 48.8 vs D 51.1\n- [CueLight vs Vapi API + MCP](https://www.anchorterminal.com/compare/cuelight-vs-vapi.md): D 48.8 vs B 63.5\n- [CueLight vs Vocily AI](https://www.anchorterminal.com/compare/cuelight-vs-vocily.md): D 48.8 vs D 53.8\n- [CueLight vs Vogent API](https://www.anchorterminal.com/compare/cuelight-vs-vogent.md): D 48.8 vs D 47.1\n\n## Verify this listing\n\nFor the vendor. The badge or a plain link to this page verifies the listing, from a page on sshah03.github.io or one of its subdomains, or the README of github.com/sshah03/CueLight. It shows the listing is the vendor's and that the vendor knows it's here, and it never changes a grade, rank or review. The vendor sends the page's address to `POST https://www.anchorterminal.com/api/v1/verify` as `{\"slug\": \"cuelight\", \"url\": \"…\"}`, or calls the `verify_listing` tool at https://www.anchorterminal.com/mcp. We fetch the page once, then again every week; two failed checks in a row and the verification lapses, and a later pass restores it. What we check: https://www.anchorterminal.com/builders/index.md#verify\n\nHTML badge:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/cuelight\"\u003e\u003cimg src=\"https://www.anchorterminal.com/badges/cuelight.svg\" alt=\"CueLight on Anchor Terminal\" height=\"20\"\u003e\u003c/a\u003e\n```\n\nMarkdown badge, for a README:\n\n```markdown\n[![CueLight on Anchor Terminal](https://www.anchorterminal.com/badges/cuelight.svg)](https://www.anchorterminal.com/tools/cuelight)\n```\n\nPlain link:\n\n```html\n\u003ca href=\"https://www.anchorterminal.com/tools/cuelight\"\u003eCueLight on Anchor Terminal\u003c/a\u003e\n```\n\n## Share this listing\n\nFor the vendor. Sharing assets for social media, two PNGs of 1200 × 630 that say CueLight is listed on Anchor Terminal, with the vendor's logo and this page's address and no grade or score.\n\n- Dark: https://www.anchorterminal.com/assets/share/cuelight-dark.png\n- Light: https://www.anchorterminal.com/assets/share/cuelight-light.png\n- Create a video and download its frames: https://www.anchorterminal.com/assets/listing-video/index.html?listing=cuelight\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-15",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Terminal",
        "url": "https://www.anchorterminal.com/tools/"
      },
      {
        "name": "Conversational voice agents",
        "url": "https://www.anchorterminal.com/categories/voice-agents"
      },
      {
        "name": "CueLight",
        "url": ""
      }
    ],
    "description": "CueLight is an open-source Python library and set of open-weight models that estimate, every 20 ms of streaming audio, whether a voice-agent user has finished their turn. It runs locally from audio alone, in English.",
    "facts": [
      "rank #873 of 1094",
      "None auth",
      "0 desk reviews"
    ],
    "h1": "CueLight",
    "image": "https://www.anchorterminal.com/assets/og/tools-cuelight.png",
    "path": "/tools/cuelight",
    "published": "2026-10-01",
    "section": "tools",
    "title": "CueLight review (2026): pricing, alternatives and grade D",
    "toc": null,
    "updated": "2026-10-15",
    "url": "https://www.anchorterminal.com/tools/cuelight"
  },
  "tokens": {
    "markdown": 5500,
    "slim": 1380
  },
  "version": 1
}
