{
  "data": {
    "a": {
      "slug": "gauge-cli",
      "name": "Gauge CLI",
      "vendor": "Gauge",
      "vendorUrl": "https://www.withgauge.com/agents/",
      "kind": "cli",
      "category": "agent-observability",
      "summary": "Gauge CLI runs real coding agents (Claude Code, Codex, Pi, OpenCode) against your skills, CLIs, SDKs, MCP servers and docs in Docker, records where they get stuck, and lets your agent test fixes before release.",
      "url": "https://www.anchorterminal.com/tools/gauge-cli",
      "markdownUrl": "https://www.anchorterminal.com/tools/gauge-cli.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/gauge-cli.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/gauge-cli.json",
      "dns": "gauge-cli.grade.anchorterminal.com",
      "repo": "https://github.com/gauge-sh/gauge-cli",
      "license": "MIT",
      "transports": [],
      "packages": [
        {
          "registry": "npm",
          "name": "@withgauge/cli"
        }
      ],
      "auth": "none",
      "authNotes": "Local mode needs no Gauge account, only credentials for the agent under test (native Claude or Codex logins, or API keys). Hosted Gauge uses `gauge auth login`, with a device flow for remote terminals.",
      "pricing": "freemium",
      "pricingNotes": "The CLI and local mode are free and MIT-licensed; agent usage is billed by your provider or subscription. Hosted Gauge runs on workspace credits, whose prices weren't read (checked 2026-11-06).",
      "priceSummary": "Freemium",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No payment protocol in the CLI or its README; hosted runs use workspace credits (checked 2026-11-06).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-11-06"
      },
      "docsUrl": "https://docs.withgauge.com/agents",
      "capabilities": [
        "obs.evals"
      ],
      "tags": [
        "open-source",
        "mit",
        "cli",
        "node",
        "docker",
        "telemetry",
        "new"
      ],
      "lastRelease": "2026-11-04",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 60.4,
        "grade": "C",
        "agentReady": false,
        "rank": 590,
        "ranked": true,
        "rankOf": 1354,
        "categoryRank": 13,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 82,
          "payments": 40,
          "reliability": 60,
          "schema": 60,
          "security": 55,
          "transparency": 53
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "low",
          "date": "2026-11-06"
        },
        "negative": 0,
        "verdict": "An open-source CLI that measures how coding agents get on with your product and checks fixes before you ship them, locally in Docker with no account. It's young and pre-1.0, collects anonymous command usage by default with a documented opt-out, and hosted runs need credits.",
        "bestFor": "Teams that build skills, CLIs, SDKs or MCP servers and want to see where coding agents get stuck with them, and to test fixes before release.",
        "strengths": [
          "Runs Claude Code, Codex, Pi and OpenCode in fresh Docker sessions against working-tree or pre-release versions",
          "Local mode needs no Gauge account, only your existing agent credentials",
          "Dated changelog with six releases in about two weeks",
          "Instructions bundled in the CLI for coding agents, and -o json on read commands",
          "CI runs checks on every push and pull request"
        ],
        "weaknesses": [
          "Collects anonymous command usage by default, with an opt-out",
          "Pre-1.0 and about two weeks old in this repository",
          "Docs, authenticated MCP servers and authenticated APIs need hosted Gauge and credits",
          "Hosted credit prices weren't found on the pages read"
        ],
        "agentNotes": [
          "npm install -g @withgauge/cli, then gauge local runtime pull and gauge init --local in the project",
          "Run gauge install-skill so your coding agent finds the CLI's own instructions",
          "Set GAUGE_TELEMETRY_DISABLED=1 in CI if you don't want command usage collected",
          "Rebuild and pack an npm CLI or SDK before rerunning, so test sessions get the new tarball",
          "Keep .gauge/ private; it holds measurements and analyses"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "low",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 60.4
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 82,
          "payments": 40,
          "reliability": 60,
          "schema": 60,
          "security": 55,
          "transparency": 78
        },
        "provenanceScore": 27,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-06",
            "maintenance": "2026-11-06",
            "payments": "2026-11-06",
            "reliability": "2026-11-06",
            "schema": "2026-11-06",
            "security": "2026-11-06",
            "transparency": "2026-11-06"
          },
          "last": "2026-11-06",
          "oldest": "2026-11-06",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install -g @withgauge/cli\ngauge local runtime pull\ngauge init --local\ngauge install-skill"
      },
      "letme": {
        "capability": "https://letme.dev/obs.evals",
        "tool": "https://letme.dev/gauge-cli"
      },
      "area": "developer",
      "provenance": {
        "legalEntity": "",
        "domain": "withgauge.com",
        "domainRegistered": "",
        "domainNote": "Not looked up: RDAP isn't requested under the 1 November 2026 rules.",
        "endpointOnVendorDomain": null,
        "terms": "",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/gauge-sh/gauge-cli/blob/main/cli/CHANGELOG.md",
        "securityTxt": "none",
        "checked": "2026-11-06",
        "notes": [
          "The npm package's author is Gauge \u003csupport@withgauge.com\u003e, its homepage agents.withgauge.com, and its repository field points at gauge-sh/gauge-cli. The licence names Gauge.",
          "Hosted Gauge's terms and privacy weren't read, and security.txt wasn't checked."
        ],
        "score": 27
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/gauge-cli.json"
    },
    "answer": "Prefactor scores 61.5 (C) on agent readiness against Gauge CLI's 60.4 (C), and leads in 3 of 7 scored categories. Gauge CLI leads on reliability.",
    "b": {
      "slug": "prefactor",
      "name": "Prefactor",
      "vendor": "Prefactor Pty Ltd",
      "vendorUrl": "https://prefactor.tech",
      "kind": "http-api",
      "category": "agent-observability",
      "summary": "Prefactor is a hosted service that records AI agent runs as spans, classifies each run's data risk and stores quality evaluations. Agents and scripts reach it through an HTTP and WebSocket API, TypeScript and Python SDKs and a CLI.",
      "url": "https://www.anchorterminal.com/tools/prefactor",
      "markdownUrl": "https://www.anchorterminal.com/tools/prefactor.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/prefactor.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/prefactor.json",
      "dns": "prefactor.grade.anchorterminal.com",
      "repo": "https://github.com/prefactordev/typescript-sdk",
      "license": "Proprietary hosted service. The TypeScript and Python SDKs and the CLI are MIT",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://app.prefactorai.com/api/v1",
      "packages": [
        {
          "registry": "npm",
          "name": "@prefactor/core"
        },
        {
          "registry": "npm",
          "name": "@prefactor/cli"
        },
        {
          "registry": "pypi",
          "name": "prefactor-core"
        }
      ],
      "auth": "api-key",
      "authNotes": "Self-serve. A person signs in at app.prefactorai.com and creates an API token, sent as `Authorization: Bearer \u003ctoken\u003e`. Account tokens reach every agent in the account. Deployment tokens are bound to one agent in one environment. The OpenAPI document adds a `role` of `read_only` or `full_access` (the default) and an `expires_at` that defaults to two years. Tokens can be suspended, reactivated and revoked. `POST /api_token` mints tokens with an existing token.",
      "pricing": "freemium",
      "pricingNotes": "Free Dev plan with 5,000 spans a month, up to 3 agents and 7-day retention, no card required, so an agent's owner can start without a contract. Startup is $49 a month ($499 a year) with 15,000 spans, then $0.0025 a span. Scaleup is $199 a month ($2,000 a year) with 100,000 spans, then $2.50 per 1,000 spans monthly or $2.00 on the annual plan. Enterprise, from 4 million spans a month, is by quote. A span is one LLM call, tool call, message turn or custom step. Seats are unlimited on every plan (https://prefactor.tech/pricing).",
      "priceSummary": "$49 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the docs, the OpenAPI document or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 3,
        "npmWeekly": 19,
        "pypiWeekly": 28,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://docs.prefactor.ai",
      "llmsTxt": "https://docs.prefactor.ai/llms.txt",
      "openapi": "https://app.prefactorai.com/api/v1/openapi",
      "capabilities": [
        "obs.traces",
        "obs.evals"
      ],
      "tags": [
        "hosted",
        "freemium",
        "no-card",
        "llms-txt",
        "openapi",
        "python",
        "typescript",
        "closed-source",
        "enterprise",
        "status-page"
      ],
      "lastRelease": "2026-10-28",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 61.5,
        "grade": "C",
        "agentReady": false,
        "rank": 546,
        "ranked": true,
        "rankOf": 1354,
        "categoryRank": 12,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 88,
          "maintenance": 82,
          "payments": 40,
          "reliability": 53,
          "schema": 82,
          "security": 56,
          "transparency": 49
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-01"
        },
        "negative": -3,
        "negativeNotes": [
          "2026-10-08, still so on 2026-11-01. The pricing page lists 'Hold, approve or block in real time' and PII checks on every plan ('detected and redacted, blocked, or escalated in real time'), and the security page lists manual approval workflows and fine-grained RBAC. The vendor's own docs say crossing a risk threshold does not block or terminate a run, that Prefactor does not detect sensitive data, and that accounts have no role-based permissions. The OpenAPI and OpenRPC documents have no approval operation. A hosted judge can score a finished run against a PII criterion, which is a review after the run, not a block. Counted as a misleading claim (-3) (https://prefactor.tech/pricing, https://prefactor.tech/security, https://docs.prefactor.ai/llms-full.txt)."
        ],
        "verdict": "The public OpenAPI document lists 163 operations, each accepting an idempotency key, and tokens can be read-only or bound to one agent deployment. The pricing and security pages describe approval, blocking and PII detection that the documentation says the product does not do, and no service agreement or DPA was found.",
        "bestFor": "A team that wants an auditable record of agent runs with declared data-risk labels, quality payloads from its own evaluations and a remote stop signal.",
        "strengths": [
          "Public OpenAPI 3.0 document with 163 operations and an OpenRPC document with 165 WebSocket methods, both fetched without a login",
          "Every write accepts an `idempotency_key`, and `POST /bulk` can be retried whole because a reused key fails only its own item",
          "Tokens are scoped to the account or to one agent deployment, carry a `read_only` or `full_access` role and an expiry, and can be suspended or revoked",
          "A 429 response carries `Retry-After` and `retry_after_ms`, and both SDKs retry with exponential backoff and jitter",
          "The free Dev plan includes 5,000 spans a month with no card, and the overage price per span is published"
        ],
        "weaknesses": [
          "The pricing page lists hold, approve or block and PII detection on every plan, while the docs say a risk threshold blocks nothing and that Prefactor does not detect sensitive data",
          "No approval operation exists in the OpenAPI or OpenRPC documents. The documented control is a cooperative terminate signal the agent's own code must obey",
          "No service agreement, API terms, DPA, sub-processor list or SLA text was found on the site or in its sitemap",
          "Rate limits are described by scope with no numbers",
          "No security.txt and no certification held. The security page says SOC 2 Type II is in progress"
        ],
        "agentNotes": [
          "Send requests to `https://app.prefactorai.com/api/v1` with `Authorization: Bearer \u003ctoken\u003e`. The API host is not on the `prefactor.tech` or `prefactor.ai` domains",
          "Ask for a deployment-scoped token, or an account token created with `role` set to `read_only`, since the default role is `full_access` with a two-year expiry",
          "Pass `redacted: true` on span list and detail queries, because the API returns marked sensitive values unless asked otherwise",
          "On 429 wait for `retry_after_ms`. Limits use one-minute windows and the SDKs' default retries ignore the server's hint",
          "Treat terminate as a request. Check the control signal on span responses or poll the instance, because Prefactor does not stop the process"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 4,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 61.5
          }
        ],
        "editorialScores": {
          "ergonomics": 88,
          "maintenance": 82,
          "payments": 40,
          "reliability": 53,
          "schema": 82,
          "security": 56,
          "transparency": 34
        },
        "provenanceScore": 63,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-01",
            "maintenance": "2026-11-01",
            "payments": "2026-11-01",
            "reliability": "2026-11-01",
            "schema": "2026-11-01",
            "security": "2026-11-01",
            "transparency": "2026-11-01"
          },
          "last": "2026-11-01",
          "lastMoved": "2026-11-01",
          "oldest": "2026-11-01",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "install": "npm install @prefactor/core",
        "http": "curl https://app.prefactorai.com/api/v1/agent \\\n  -H \"Authorization: Bearer $PREFACTOR_API_TOKEN\""
      },
      "letme": {
        "capability": "https://letme.dev/obs.traces",
        "tool": "https://letme.dev/prefactor"
      },
      "area": "developer",
      "unitPrices": [
        {
          "item": "Startup plan",
          "unit": "month",
          "usd": 49,
          "note": "15,000 spans included, 3-month retention"
        },
        {
          "item": "Scaleup plan",
          "unit": "month",
          "usd": 199,
          "note": "100,000 spans included, 12-month retention"
        },
        {
          "item": "Span beyond the Startup allowance",
          "unit": "record",
          "usd": 0.0025
        },
        {
          "item": "Span beyond the Scaleup allowance",
          "unit": "record",
          "usd": 0.0025,
          "note": "$2.50 per 1,000 on monthly billing, $2.00 on annual"
        }
      ],
      "provenance": {
        "legalEntity": "Prefactor Pty Ltd",
        "domain": "prefactor.tech",
        "domainRegistered": "2024-10-16",
        "endpointOnVendorDomain": false,
        "terms": "https://prefactor.tech/terms-of-service",
        "privacy": "https://prefactor.tech/privacy-policy",
        "statusPage": "https://status.prefactor.ai",
        "changelog": "https://prefactor.tech/changelog",
        "securityTxt": "none",
        "checked": "2026-11-01",
        "notes": [
          "prefactor.tech/llms.txt names Prefactor Pty Ltd, founded 2024, headquartered in Australia.",
          "The terms of service page at prefactor.tech/terms-of-service is headed 'The terms governing your use of Prefactor'. Its text is drawn by script and wasn't read on 1 November. No service agreement, API terms or DPA is in the site's sitemap (864 pages on 1 November).",
          "The privacy policy, terms and acceptable use pages are drawn by script from GetTerms. The 8 October reading of the feed those pages load (gettermscdn.com) no longer counts, since a page drawn by script is left unread rather than read through its data source, so `terms` is now linked as published and unread instead of being left out on that reading.",
          "The API answers at app.prefactorai.com, a third domain of the vendor's registered on 18 December 2025. The site is on prefactor.tech and the docs on docs.prefactor.ai.",
          "On 8 October RDAP gave prefactor.tech a registration date of 16 October 2024 and an expiry of 16 October 2026. The site still answered on 1 November; RDAP wasn't re-read.",
          "prefactor.tech, app.prefactorai.com and docs.prefactor.ai each returned 404 for /.well-known/security.txt (prefactor.tech re-read on 1 November). The security page asks for reports by email and promises an acknowledgement within 24 hours.",
          "status.prefactor.ai is an UptimeRobot page whose data loads from `/api/` paths its robots.txt disallows. We found no link to it on the site or docs pages we read."
        ],
        "score": 63
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/prefactor.json",
      "live": {
        "slug": "prefactor",
        "probe": {
          "target": "https://app.prefactorai.com/api/v1",
          "method": "get",
          "lastAt": "2026-11-06T09:47:45.077133992Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 170,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 172,
          "p95ms24h": 378,
          "samples24h": 221,
          "samples30d": 7094,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 50,
              "ok": 50
            },
            {
              "date": "2026-10-09",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-10",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-11",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-12",
              "probes": 247,
              "ok": 247
            },
            {
              "date": "2026-10-13",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-14",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-15",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-16",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-17",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-18",
              "probes": 256,
              "ok": 256
            },
            {
              "date": "2026-10-19",
              "probes": 255,
              "ok": 255
            },
            {
              "date": "2026-10-20",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-21",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-22",
              "probes": 253,
              "ok": 253
            },
            {
              "date": "2026-10-23",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-24",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-10-25",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-26",
              "probes": 252,
              "ok": 252
            },
            {
              "date": "2026-10-27",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-28",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-10-29",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-30",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-10-31",
              "probes": 251,
              "ok": 251
            },
            {
              "date": "2026-11-01",
              "probes": 249,
              "ok": 249
            },
            {
              "date": "2026-11-02",
              "probes": 250,
              "ok": 250
            },
            {
              "date": "2026-11-03",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-11-04",
              "probes": 246,
              "ok": 246
            },
            {
              "date": "2026-11-05",
              "probes": 185,
              "ok": 185
            },
            {
              "date": "2026-11-06",
              "probes": 102,
              "ok": 102
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.prefactor.ai",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-06T05:42:31.811026271Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "prefactordev/typescript-sdk",
            "version": "v0.6.1",
            "released": "2026-10-28",
            "seenAt": "2026-11-05T21:59:44.628012097Z"
          },
          {
            "registry": "npm",
            "name": "@prefactor/cli",
            "version": "0.6.1",
            "seenAt": "2026-11-05T21:59:43.032131328Z"
          },
          {
            "registry": "npm",
            "name": "@prefactor/core",
            "version": "1.2.0",
            "seenAt": "2026-11-05T21:59:42.130883233Z"
          },
          {
            "registry": "pypi",
            "name": "prefactor-core",
            "version": "0.5.3",
            "released": "2026-08-13",
            "seenAt": "2026-11-05T21:59:44.390948995Z"
          }
        ],
        "githubStars": 3,
        "npmWeekly": 67,
        "pypiWeekly": 46,
        "securityTxt": {
          "url": "https://prefactor.tech/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-05T15:56:06.241886022Z"
        },
        "llmsTxt": {
          "url": "https://docs.prefactor.ai/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-05T15:27:04.739754132Z"
        },
        "domain": {
          "domain": "prefactor.tech",
          "registered": "2024-10-16",
          "source": "https://rdap.radix.host/rdap/domain/prefactor.tech",
          "checkedAt": "2026-11-01T14:10:26.237433022Z"
        },
        "pages": [
          {
            "url": "https://prefactor.tech/changelog",
            "kind": "changelog",
            "status": 304,
            "checkedAt": "2026-11-05T13:01:52.632835323Z",
            "changedAt": "2026-10-30T05:46:19.325533624Z",
            "fingerprint": "5c949fc4db5c"
          },
          {
            "url": "https://prefactor.tech/pricing",
            "kind": "pricing",
            "status": 304,
            "checkedAt": "2026-11-05T13:01:54.985633867Z",
            "changedAt": "2026-10-30T05:46:21.739376757Z",
            "fingerprint": "dc080231a0cf"
          },
          {
            "url": "https://prefactor.tech/privacy-policy",
            "kind": "privacy",
            "status": 304,
            "checkedAt": "2026-11-05T13:01:56.950661781Z",
            "changedAt": "2026-10-30T05:46:23.568546852Z",
            "fingerprint": "9408fffd911c"
          },
          {
            "url": "https://prefactor.tech/terms-of-service",
            "kind": "terms",
            "status": 304,
            "checkedAt": "2026-11-05T13:01:59.230814937Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "4358993d4240"
          }
        ],
        "github": {
          "repo": "prefactordev/typescript-sdk",
          "checkedAt": "2026-11-02T09:18:18.069542229Z",
          "stars": 3,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-28T04:47:23Z",
          "openIssues": 0,
          "openPRs": 3,
          "issuesOpened90d": 0,
          "issuesClosed90d": 0,
          "prsMerged90d": 25,
          "ci": {
            "branch": "main",
            "runs": 50,
            "success": 39,
            "failure": 11,
            "other": 0,
            "latest": "failure",
            "latestAt": "2026-10-28T03:54:41Z"
          },
          "replies": {
            "sampled": 1,
            "unanswered": 0,
            "medianDays": 31.2
          }
        },
        "updatedAt": "2026-11-06T09:47:45.077133992Z"
      }
    },
    "edges": [
      {
        "by": 22,
        "category": "schema",
        "leads": "prefactor",
        "name": "Schema \u0026 documentation",
        "reasons": {
          "a": "CLI reading. No machine-readable contract, -o json on read commands (10 of 25). No llms.txt; instructions bundled in the CLI for agents (5). The README says what it finds and when local or hosted fits (16 of 20). Commands with help text; typed flags (9 of 15). Worked examples, no error reference (8 of 15). Dated changelog and semver tags (12 of 15). 10 + 5 + 16 + 9 + 8 + 12 = 60.",
          "b": "A public OpenAPI 3.0.0 document with 163 operations and an OpenRPC document with 165 WebSocket methods (157 and 159 on 8 October). Body parameters are declared `in: body`, which OpenAPI 3 does not define, so some generators will need adjusting (23 of 25). llms.txt with abridged and full versions of the docs (10). Operations carry one-line summaries and only 6 of 163 have a description. The concept pages are clearer and say what the product does not do (10 of 20). Named ID schemas, enums and bounds such as `page_size` 1 to 100, but span payloads are free-form by design and `start_time` and `end_time` have no schema (11 of 15). A table of 12 error codes, an error union in the spec, curl examples and a runnable WebSocket script (13 of 15). The path is versioned `/api/v1`, the SDKs keep semver changelogs, and the site changelog now has 56 dated entries, the latest on 21 October 2026 (15)."
        },
        "scores": {
          "a": 60,
          "b": 82
        }
      },
      {
        "by": 13,
        "category": "ergonomics",
        "leads": "prefactor",
        "name": "Agent ergonomics",
        "reasons": {
          "a": "CLI reading for an agent driving it. Bundled instructions match the installed version, and output is filterable with -o json (20 of 25). Run summaries and Findings with queryable fields (15 of 20). Errors not documented as a reference (10 of 20). Reruns from checkpoints and a recheck command with a confirm step (15 of 20). Four commands to start, Node only (15 of 15). 20 + 15 + 10 + 15 + 15 = 75.",
          "b": "List calls take `pagination[page_size]` up to 100, summaries and counts are opt-in flags, and one endpoint exports a whole run's context (16 of 25). Offset pagination, sorting and filters by agent, instance, environment, time, purpose and status, with no cursor (18 of 20). Errors carry a stable `code`, a message naming the exceeded scope on 429 and a per-field map on validation failures (20). Every operation accepts `idempotency_key`, and a retried bulk request fails only the reused items. There is no MCP server to annotate (20). Official TypeScript and Python SDKs and a CLI. The Python SDK does not yet support sensitive encoding (14 of 15)."
        },
        "scores": {
          "a": 75,
          "b": 88
        }
      },
      {
        "by": 7,
        "category": "reliability",
        "leads": "gauge-cli",
        "name": "Reliability",
        "reasons": {
          "a": "Local package. Installs from npm as @withgauge/cli with Node 22.13 or later and Docker stated (20). checks.yml runs npm run check on push and pull request across a matrix, and the repository has 76 test files; whether main passes wasn't read (20 of 25). Issues weren't read (5, unchecked). A dated changelog with Added sections per release (15). Version 0.28.0 (0). 20 + 20 + 5 + 15 + 0 = 60.",
          "b": "Graded as a hosted service. A public status page at status.prefactor.ai (UptimeRobot), though we found no link to it from the site or docs. Its monitors and history load by script from `/api/` paths that the status host's robots.txt disallows, so on 1 November we couldn't re-read which parts of the service it covers (20, as awarded on 8 October). The incident record is unread. The 8 October reading of three monitors at 100 per cent came from the same disallowed path and no longer counts, so the line takes the no-readable-history score, a limit of our reading and not a finding against Prefactor (5). Rate limits are described by scope and one-minute window with no numbers (3 of 15). 429 carries `Retry-After` and `retry_after_ms`, both SDKs retry with backoff and jitter, and every operation takes an idempotency key (15). The pricing page lists an SLA on Enterprise with no text published (0). The API is version 1.0 and `@prefactor/core` is 1.2.0, with no beta label (10)."
        },
        "scores": {
          "a": 60,
          "b": 53
        }
      }
    ],
    "facts": [
      {
        "a": "cli",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Gauge",
        "b": "Prefactor Pty Ltd",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://app.prefactorai.com/api/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "API key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "MIT",
        "b": "Proprietary hosted service. The TypeScript and Python SDKs and the CLI are MIT",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "no",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-04",
        "b": "2026-10-28",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "not read yet",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "couldn't be read",
        "name": "Privacy policy last updated"
      },
      {
        "a": "none",
        "b": "3 stars, 19 npm/wk, 28 PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3/5 (4)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Prefactor scores 61.5 (C) on agent readiness against Gauge CLI's 60.4 (C), and leads in 3 of 7 scored categories. Gauge CLI leads on reliability.",
        "question": "Which is better for AI agents, Gauge CLI or Prefactor?"
      },
      {
        "answer": "No hosted endpoint is listed for Gauge CLI. Prefactor has a hosted endpoint at https://app.prefactorai.com/api/v1.",
        "question": "Can an agent call Gauge CLI and Prefactor without installing anything?"
      },
      {
        "answer": "Gauge CLI is open source (MIT). No open-source release is listed for Prefactor.",
        "question": "Are Gauge CLI and Prefactor open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 60 against 53"
        ],
        "also": [
          "No key needed to call it",
          "Open source",
          "No incidents deducted, where Prefactor loses 3 points for them"
        ],
        "goodFor": "Teams that build skills, CLIs, SDKs or MCP servers and want to see where coding agents get stuck with them, and to test fixes before release.",
        "slug": "gauge-cli",
        "watchFor": "Collects anonymous command usage by default, with an opt-out"
      },
      {
        "aheadOn": [
          "Schema \u0026 documentation, 82 against 60",
          "Agent ergonomics, 88 against 75"
        ],
        "also": [
          "A hosted endpoint, with nothing to install",
          "Free to start without a card"
        ],
        "goodFor": "A team that wants an auditable record of agent runs with declared data-risk labels, quality payloads from its own evaluations and a remote stop signal.",
        "slug": "prefactor",
        "watchFor": "The pricing page lists hold, approve or block and PII detection on every plan, while the docs say a risk threshold blocks nothing and that Prefactor does not detect sensitive data"
      }
    ],
    "history": {
      "gauge-cli": null,
      "prefactor": [
        {
          "causes": [
            "product",
            "correction"
          ],
          "date": "2026-11-01",
          "delta": -4.5,
          "from": 66,
          "fromGrade": "B",
          "to": 61.5,
          "toGrade": "C"
        },
        {
          "causes": [
            "evidence"
          ],
          "date": "2026-10-27",
          "delta": 0.3,
          "from": 65.7,
          "fromGrade": "B",
          "to": 66,
          "toGrade": "B"
        },
        {
          "causes": [
            "time"
          ],
          "date": "2026-10-17",
          "delta": 0.1,
          "from": 65.6,
          "fromGrade": "B",
          "to": 65.7,
          "toGrade": "B"
        }
      ]
    },
    "job": {
      "capability": "obs.evals",
      "name": "Evaluations"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agent-tree-vs-prefactor.json",
        "title": "Agent Tree vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/agent-tree-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agents-tree-vs-prefactor.json",
        "title": "agents-tree vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/agents-tree-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arize-phoenix-vs-prefactor.json",
        "title": "Arize Phoenix vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/arize-phoenix-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserun-vs-prefactor.json",
        "title": "Baserun vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/baserun-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/botgauge-vs-prefactor.json",
        "title": "BotGauge vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/botgauge-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braintrust-vs-prefactor.json",
        "title": "Braintrust API + MCP vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/braintrust-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/galileo-vs-prefactor.json",
        "title": "Galileo API + MCP vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/galileo-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/helicone-vs-prefactor.json",
        "title": "Helicone AI Gateway + MCP vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/helicone-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/honeyhive-vs-prefactor.json",
        "title": "HoneyHive vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/honeyhive-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-prefactor.json",
        "title": "Laminar API + MCP vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langfuse-vs-prefactor.json",
        "title": "Langfuse API + MCP vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/langfuse-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langsmith-vs-prefactor.json",
        "title": "LangSmith API + MCP vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/langsmith-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/langwatch-vs-prefactor.json",
        "title": "LangWatch vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/langwatch-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/mlflow-tracing-vs-prefactor.json",
        "title": "MLflow Tracing vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/mlflow-tracing-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/navige-vs-prefactor.json",
        "title": "Navige vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/navige-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/opik-vs-prefactor.json",
        "title": "Opik API + MCP vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/opik-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/overmind-vs-prefactor.json",
        "title": "Overmind vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/overmind-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prefactor-vs-pydantic-logfire.json",
        "title": "Prefactor vs Pydantic Logfire",
        "url": "https://www.anchorterminal.com/compare/prefactor-vs-pydantic-logfire"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prefactor-vs-respan.json",
        "title": "Prefactor vs Respan API + MCP",
        "url": "https://www.anchorterminal.com/compare/prefactor-vs-respan"
      },
      {
        "json": "https://www.anchorterminal.com/compare/prefactor-vs-wandb-weave.json",
        "title": "Prefactor vs W\u0026B Weave",
        "url": "https://www.anchorterminal.com/compare/prefactor-vs-wandb-weave"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arize-phoenix-vs-gauge-cli.json",
        "title": "Arize Phoenix vs Gauge CLI",
        "url": "https://www.anchorterminal.com/compare/arize-phoenix-vs-gauge-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserun-vs-gauge-cli.json",
        "title": "Baserun vs Gauge CLI",
        "url": "https://www.anchorterminal.com/compare/baserun-vs-gauge-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/botgauge-vs-gauge-cli.json",
        "title": "BotGauge vs Gauge CLI",
        "url": "https://www.anchorterminal.com/compare/botgauge-vs-gauge-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braintrust-vs-gauge-cli.json",
        "title": "Braintrust API + MCP vs Gauge CLI",
        "url": "https://www.anchorterminal.com/compare/braintrust-vs-gauge-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepeval-vs-gauge-cli.json",
        "title": "DeepEval vs Gauge CLI",
        "url": "https://www.anchorterminal.com/compare/deepeval-vs-gauge-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deepeval-vs-prefactor.json",
        "title": "DeepEval vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/deepeval-vs-prefactor"
      },
      {
        "json": "https://www.anchorterminal.com/compare/galileo-vs-gauge-cli.json",
        "title": "Galileo API + MCP vs Gauge CLI",
        "url": "https://www.anchorterminal.com/compare/galileo-vs-gauge-cli"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-helicone.json",
        "title": "Gauge CLI vs Helicone AI Gateway + MCP",
        "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-helicone"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-honeyhive.json",
        "title": "Gauge CLI vs HoneyHive",
        "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-honeyhive"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-laminar.json",
        "title": "Gauge CLI vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-langfuse.json",
        "title": "Gauge CLI vs Langfuse API + MCP",
        "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-langfuse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-langsmith.json",
        "title": "Gauge CLI vs LangSmith API + MCP",
        "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-langsmith"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-langwatch.json",
        "title": "Gauge CLI vs LangWatch",
        "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-langwatch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-mlflow-tracing.json",
        "title": "Gauge CLI vs MLflow Tracing",
        "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-mlflow-tracing"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-opik.json",
        "title": "Gauge CLI vs Opik API + MCP",
        "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-opik"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-overmind.json",
        "title": "Gauge CLI vs Overmind",
        "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-overmind"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-pydantic-logfire.json",
        "title": "Gauge CLI vs Pydantic Logfire",
        "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-pydantic-logfire"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-respan.json",
        "title": "Gauge CLI vs Respan API + MCP",
        "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-respan"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-wandb-weave.json",
        "title": "Gauge CLI vs W\u0026B Weave",
        "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-wandb-weave"
      }
    ],
    "panel": null,
    "scores": [
      {
        "by": 7,
        "edge": "gauge-cli",
        "gauge-cli": 60,
        "key": "reliability",
        "name": "Reliability",
        "prefactor": 53,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 22,
        "edge": "prefactor",
        "gauge-cli": 60,
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "prefactor": 82,
        "weight": 13
      },
      {
        "by": 13,
        "edge": "prefactor",
        "gauge-cli": 75,
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "prefactor": 88,
        "weight": 13
      },
      {
        "by": 1,
        "edge": "prefactor",
        "gauge-cli": 55,
        "key": "security",
        "name": "Security \u0026 auth",
        "prefactor": 56,
        "weight": 14
      },
      {
        "by": 0,
        "edge": "",
        "gauge-cli": 40,
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "prefactor": 40,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 0,
        "edge": "",
        "gauge-cli": 82,
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "prefactor": 82,
        "weight": 7
      },
      {
        "by": 4,
        "edge": "gauge-cli",
        "gauge-cli": 53,
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "prefactor": 49,
        "weight": 7
      }
    ],
    "summary": "Prefactor scores 61.5 (C) on agent readiness against Gauge CLI's 60.4 (C), and leads in 3 of 7 scored categories. Gauge CLI leads on reliability. Both do evaluations.",
    "tasks": null,
    "tutorials": [],
    "verdicts": {
      "gauge-cli": "An open-source CLI that measures how coding agents get on with your product and checks fixes before you ship them, locally in Docker with no account. It's young and pre-1.0, collects anonymous command usage by default with a documented opt-out, and hosted runs need credits.",
      "prefactor": "The public OpenAPI document lists 163 operations, each accepting an idempotency key, and tokens can be read-only or bound to one agent deployment. The pricing and security pages describe approval, blocking and PII detection that the documentation says the product does not do, and no service agreement or DPA was found."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/gauge-cli-vs-prefactor",
    "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-prefactor.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/gauge-cli-vs-prefactor.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/gauge-cli-vs-prefactor.min.md"
  },
  "markdown": "Prefactor scores 61.5 (C) on agent readiness against Gauge CLI's 60.4 (C), and leads in 3 of 7 scored categories. Gauge CLI leads on reliability. Both do evaluations.\n\n- Gauge CLI: grade C, 60.4/100, rank #590 of 1354. Markdown https://www.anchorterminal.com/tools/gauge-cli.md · JSON https://www.anchorterminal.com/api/v1/tools/gauge-cli.json\n- Prefactor: grade C, 61.5/100, rank #546 of 1354. Markdown https://www.anchorterminal.com/tools/prefactor.md · JSON https://www.anchorterminal.com/api/v1/tools/prefactor.json\n- Best agent tracing, monitoring and evaluation tools: https://www.anchorterminal.com/best/agent-observability/index.md\n- All 250 evals comparisons: https://www.anchorterminal.com/compare/agent-observability/index.md\n\n## Which one, for what\n\n### Gauge CLI (C)\n\nGood for: Teams that build skills, CLIs, SDKs or MCP servers and want to see where coding agents get stuck with them, and to test fixes before release.\n\nAhead on:\n- Reliability, 60 against 53\n\nAlso in its favour:\n- No key needed to call it\n- Open source\n- No incidents deducted, where Prefactor loses 3 points for them\n\nWatch for: Collects anonymous command usage by default, with an opt-out\n\n### Prefactor (C)\n\nGood for: A team that wants an auditable record of agent runs with declared data-risk labels, quality payloads from its own evaluations and a remote stop signal.\n\nAhead on:\n- Schema \u0026 documentation, 82 against 60\n- Agent ergonomics, 88 against 75\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n- Free to start without a card\n\nWatch for: The pricing page lists hold, approve or block and PII detection on every plan, while the docs say a risk threshold blocks nothing and that Prefactor does not detect sensitive data\n\n\n## Why the edge\n\n### Schema \u0026 documentation: Prefactor +22\n\n- Gauge CLI (60): CLI reading. No machine-readable contract, -o json on read commands (10 of 25). No llms.txt; instructions bundled in the CLI for agents (5). The README says what it finds and when local or hosted fits (16 of 20). Commands with help text; typed flags (9 of 15). Worked examples, no error reference (8 of 15). Dated changelog and semver tags (12 of 15). 10 + 5 + 16 + 9 + 8 + 12 = 60.\n- Prefactor (82): A public OpenAPI 3.0.0 document with 163 operations and an OpenRPC document with 165 WebSocket methods (157 and 159 on 8 October). Body parameters are declared `in: body`, which OpenAPI 3 does not define, so some generators will need adjusting (23 of 25). llms.txt with abridged and full versions of the docs (10). Operations carry one-line summaries and only 6 of 163 have a description. The concept pages are clearer and say what the product does not do (10 of 20). Named ID schemas, enums and bounds such as `page_size` 1 to 100, but span payloads are free-form by design and `start_time` and `end_time` have no schema (11 of 15). A table of 12 error codes, an error union in the spec, curl examples and a runnable WebSocket script (13 of 15). The path is versioned `/api/v1`, the SDKs keep semver changelogs, and the site changelog now has 56 dated entries, the latest on 21 October 2026 (15).\n\n### Agent ergonomics: Prefactor +13\n\n- Gauge CLI (75): CLI reading for an agent driving it. Bundled instructions match the installed version, and output is filterable with -o json (20 of 25). Run summaries and Findings with queryable fields (15 of 20). Errors not documented as a reference (10 of 20). Reruns from checkpoints and a recheck command with a confirm step (15 of 20). Four commands to start, Node only (15 of 15). 20 + 15 + 10 + 15 + 15 = 75.\n- Prefactor (88): List calls take `pagination[page_size]` up to 100, summaries and counts are opt-in flags, and one endpoint exports a whole run's context (16 of 25). Offset pagination, sorting and filters by agent, instance, environment, time, purpose and status, with no cursor (18 of 20). Errors carry a stable `code`, a message naming the exceeded scope on 429 and a per-field map on validation failures (20). Every operation accepts `idempotency_key`, and a retried bulk request fails only the reused items. There is no MCP server to annotate (20). Official TypeScript and Python SDKs and a CLI. The Python SDK does not yet support sensitive encoding (14 of 15).\n\n### Reliability: Gauge CLI +7\n\n- Gauge CLI (60): Local package. Installs from npm as @withgauge/cli with Node 22.13 or later and Docker stated (20). checks.yml runs npm run check on push and pull request across a matrix, and the repository has 76 test files; whether main passes wasn't read (20 of 25). Issues weren't read (5, unchecked). A dated changelog with Added sections per release (15). Version 0.28.0 (0). 20 + 20 + 5 + 15 + 0 = 60.\n- Prefactor (53): Graded as a hosted service. A public status page at status.prefactor.ai (UptimeRobot), though we found no link to it from the site or docs. Its monitors and history load by script from `/api/` paths that the status host's robots.txt disallows, so on 1 November we couldn't re-read which parts of the service it covers (20, as awarded on 8 October). The incident record is unread. The 8 October reading of three monitors at 100 per cent came from the same disallowed path and no longer counts, so the line takes the no-readable-history score, a limit of our reading and not a finding against Prefactor (5). Rate limits are described by scope and one-minute window with no numbers (3 of 15). 429 carries `Retry-After` and `retry_after_ms`, both SDKs retry with backoff and jitter, and every operation takes an idempotency key (15). The pricing page lists an SLA on Enterprise with no text published (0). The API is version 1.0 and `@prefactor/core` is 1.2.0, with no beta label (10).\n\n## Score by category\n\n| Category | Weight | Gauge CLI | Prefactor | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 60 | 53 | Gauge CLI +7 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 60 | 82 | Prefactor +22 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 88 | Prefactor +13 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 56 | Prefactor +1 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 40 | even |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 82 | 82 | even |\n| Transparency \u0026 trust | 7% (8.8 this run) | 53 | 49 | Gauge CLI +4 |\n| Negative events | ≤15 | 0 | -3 | |\n| **Total** | | **60.4 · C** | **61.5 · C** | |\n\n## Facts side by side\n\n| Fact | Gauge CLI | Prefactor |\n| --- | --- | --- |\n| Kind | cli | HTTP API |\n| Vendor | Gauge | Prefactor Pty Ltd |\n| Hosted endpoint | no (local only) | `https://app.prefactorai.com/api/v1` |\n| Transports |  | HTTP |\n| Auth | None | API key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT | Proprietary hosted service. The TypeScript and Python SDKs and the CLI are MIT |\n| Read-only variant documented | no | no |\n| llms.txt | no | yes |\n| Last release | 2026-11-04 | 2026-10-28 |\n| Terms last updated | no document linked | not read yet |\n| Privacy policy last updated | no document linked | couldn't be read |\n| Popularity | none | 3 stars, 19 npm/wk, 28 PyPI/wk |\n| Agent reviews | none | 3/5 (4) |\n\n## How the scores have moved\n\n### Gauge CLI\n\nNo score change since it was listed.\n\n### Prefactor\n\n- -4.5 on 1 November 2026 (B to C): product, correction\n- +0.3 on 27 October 2026: new evidence\n- +0.1 on 17 October 2026: time\n\n## Verdicts\n\n**Gauge CLI.** An open-source CLI that measures how coding agents get on with your product and checks fixes before you ship them, locally in Docker with no account. It's young and pre-1.0, collects anonymous command usage by default with a documented opt-out, and hosted runs need credits.\n\n**Prefactor.** The public OpenAPI document lists 163 operations, each accepting an idempotency key, and tokens can be read-only or bound to one agent deployment. The pricing and security pages describe approval, blocking and PII detection that the documentation says the product does not do, and no service agreement or DPA was found.\n\n## Before you call either\n\n### Gauge CLI\n\n1. npm install -g @withgauge/cli, then gauge local runtime pull and gauge init --local in the project\n2. Run gauge install-skill so your coding agent finds the CLI's own instructions\n3. Set GAUGE_TELEMETRY_DISABLED=1 in CI if you don't want command usage collected\n4. Rebuild and pack an npm CLI or SDK before rerunning, so test sessions get the new tarball\n5. Keep .gauge/ private; it holds measurements and analyses\n\n### Prefactor\n\n1. Send requests to `https://app.prefactorai.com/api/v1` with `Authorization: Bearer \u003ctoken\u003e`. The API host is not on the `prefactor.tech` or `prefactor.ai` domains\n2. Ask for a deployment-scoped token, or an account token created with `role` set to `read_only`, since the default role is `full_access` with a two-year expiry\n3. Pass `redacted: true` on span list and detail queries, because the API returns marked sensitive values unless asked otherwise\n4. On 429 wait for `retry_after_ms`. Limits use one-minute windows and the SDKs' default retries ignore the server's hint\n5. Treat terminate as a request. Check the control signal on span responses or poll the instance, because Prefactor does not stop the process\n\n## Questions\n\n### Which is better for AI agents, Gauge CLI or Prefactor?\n\nPrefactor scores 61.5 (C) on agent readiness against Gauge CLI's 60.4 (C), and leads in 3 of 7 scored categories. Gauge CLI leads on reliability.\n\n### Can an agent call Gauge CLI and Prefactor without installing anything?\n\nNo hosted endpoint is listed for Gauge CLI. Prefactor has a hosted endpoint at https://app.prefactorai.com/api/v1.\n\n### Are Gauge CLI and Prefactor open source?\n\nGauge CLI is open source (MIT). No open-source release is listed for Prefactor.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/gauge-cli-vs-prefactor.json, and with the fewest tokens: https://www.anchorterminal.com/compare/gauge-cli-vs-prefactor.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"gauge-cli\", \"b\": \"prefactor\"}`. From a terminal: `anchor compare gauge-cli prefactor`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/gauge-cli.json and https://www.anchorterminal.com/api/v1/tools/prefactor.json\n\n## Other comparisons with Gauge CLI or Prefactor\n\n- [Agent Tree vs Prefactor](https://www.anchorterminal.com/compare/agent-tree-vs-prefactor.md)\n- [agents-tree vs Prefactor](https://www.anchorterminal.com/compare/agents-tree-vs-prefactor.md)\n- [Arize Phoenix vs Prefactor](https://www.anchorterminal.com/compare/arize-phoenix-vs-prefactor.md)\n- [Baserun vs Prefactor](https://www.anchorterminal.com/compare/baserun-vs-prefactor.md)\n- [BotGauge vs Prefactor](https://www.anchorterminal.com/compare/botgauge-vs-prefactor.md)\n- [Braintrust API + MCP vs Prefactor](https://www.anchorterminal.com/compare/braintrust-vs-prefactor.md)\n- [Galileo API + MCP vs Prefactor](https://www.anchorterminal.com/compare/galileo-vs-prefactor.md)\n- [Helicone AI Gateway + MCP vs Prefactor](https://www.anchorterminal.com/compare/helicone-vs-prefactor.md)\n- [HoneyHive vs Prefactor](https://www.anchorterminal.com/compare/honeyhive-vs-prefactor.md)\n- [Laminar API + MCP vs Prefactor](https://www.anchorterminal.com/compare/laminar-vs-prefactor.md)\n- [Langfuse API + MCP vs Prefactor](https://www.anchorterminal.com/compare/langfuse-vs-prefactor.md)\n- [LangSmith API + MCP vs Prefactor](https://www.anchorterminal.com/compare/langsmith-vs-prefactor.md)\n- [LangWatch vs Prefactor](https://www.anchorterminal.com/compare/langwatch-vs-prefactor.md)\n- [MLflow Tracing vs Prefactor](https://www.anchorterminal.com/compare/mlflow-tracing-vs-prefactor.md)\n- [Navige vs Prefactor](https://www.anchorterminal.com/compare/navige-vs-prefactor.md)\n- [Opik API + MCP vs Prefactor](https://www.anchorterminal.com/compare/opik-vs-prefactor.md)\n- [Overmind vs Prefactor](https://www.anchorterminal.com/compare/overmind-vs-prefactor.md)\n- [Prefactor vs Pydantic Logfire](https://www.anchorterminal.com/compare/prefactor-vs-pydantic-logfire.md)\n- [Prefactor vs Respan API + MCP](https://www.anchorterminal.com/compare/prefactor-vs-respan.md)\n- [Prefactor vs W\u0026B Weave](https://www.anchorterminal.com/compare/prefactor-vs-wandb-weave.md)\n- [Arize Phoenix vs Gauge CLI](https://www.anchorterminal.com/compare/arize-phoenix-vs-gauge-cli.md)\n- [Baserun vs Gauge CLI](https://www.anchorterminal.com/compare/baserun-vs-gauge-cli.md)\n- [BotGauge vs Gauge CLI](https://www.anchorterminal.com/compare/botgauge-vs-gauge-cli.md)\n- [Braintrust API + MCP vs Gauge CLI](https://www.anchorterminal.com/compare/braintrust-vs-gauge-cli.md)\n- [DeepEval vs Gauge CLI](https://www.anchorterminal.com/compare/deepeval-vs-gauge-cli.md)\n- [DeepEval vs Prefactor](https://www.anchorterminal.com/compare/deepeval-vs-prefactor.md)\n- [Galileo API + MCP vs Gauge CLI](https://www.anchorterminal.com/compare/galileo-vs-gauge-cli.md)\n- [Gauge CLI vs Helicone AI Gateway + MCP](https://www.anchorterminal.com/compare/gauge-cli-vs-helicone.md)\n- [Gauge CLI vs HoneyHive](https://www.anchorterminal.com/compare/gauge-cli-vs-honeyhive.md)\n- [Gauge CLI vs Laminar API + MCP](https://www.anchorterminal.com/compare/gauge-cli-vs-laminar.md)\n- [Gauge CLI vs Langfuse API + MCP](https://www.anchorterminal.com/compare/gauge-cli-vs-langfuse.md)\n- [Gauge CLI vs LangSmith API + MCP](https://www.anchorterminal.com/compare/gauge-cli-vs-langsmith.md)\n- [Gauge CLI vs LangWatch](https://www.anchorterminal.com/compare/gauge-cli-vs-langwatch.md)\n- [Gauge CLI vs MLflow Tracing](https://www.anchorterminal.com/compare/gauge-cli-vs-mlflow-tracing.md)\n- [Gauge CLI vs Opik API + MCP](https://www.anchorterminal.com/compare/gauge-cli-vs-opik.md)\n- [Gauge CLI vs Overmind](https://www.anchorterminal.com/compare/gauge-cli-vs-overmind.md)\n- [Gauge CLI vs Pydantic Logfire](https://www.anchorterminal.com/compare/gauge-cli-vs-pydantic-logfire.md)\n- [Gauge CLI vs Respan API + MCP](https://www.anchorterminal.com/compare/gauge-cli-vs-respan.md)\n- [Gauge CLI vs W\u0026B Weave](https://www.anchorterminal.com/compare/gauge-cli-vs-wandb-weave.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-11-06",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "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": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Gauge CLI vs Prefactor",
        "url": ""
      }
    ],
    "description": "Prefactor scores 61.5 (C) to Gauge CLI's 60.4 (C) for evaluations. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Gauge CLI C 60.4",
      "Prefactor C 61.5",
      "scores"
    ],
    "h1": "Gauge CLI vs Prefactor",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/gauge-cli-vs-prefactor",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Gauge CLI vs Prefactor for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-06",
    "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-prefactor"
  },
  "tokens": {
    "markdown": 3750,
    "slim": 1580
  },
  "version": 1
}
