{
  "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": "Gauge CLI scores 60.4 (C) on agent readiness against Laminar API + MCP's 57 (C), and leads in 3 of 7 scored categories. Laminar API + MCP leads on schema \u0026 documentation, agent ergonomics and transparency \u0026 trust.",
    "b": {
      "slug": "laminar",
      "name": "Laminar API + MCP",
      "vendor": "Laminar (LMNR AI)",
      "vendorUrl": "https://laminar.sh",
      "kind": "http-api",
      "category": "agent-observability",
      "summary": "Open-source tracing, evaluations and an agent debugger built on OpenTelemetry, with browser session recordings synced to traces for browser agents.",
      "url": "https://www.anchorterminal.com/tools/laminar",
      "markdownUrl": "https://www.anchorterminal.com/tools/laminar.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/laminar.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/laminar.json",
      "dns": "laminar.grade.anchorterminal.com",
      "repo": "https://github.com/lmnr-ai/lmnr",
      "license": "Apache-2.0",
      "transports": [
        "http",
        "streamable-http"
      ],
      "remoteUrl": "https://api.lmnr.ai/v1",
      "packages": [
        {
          "registry": "pypi",
          "name": "lmnr"
        },
        {
          "registry": "npm",
          "name": "@lmnr-ai/lmnr"
        }
      ],
      "auth": "api-key",
      "authNotes": "Project API key as a Bearer token, for ingestion, the REST API and the MCP server. One key maps to one project.",
      "pricing": "freemium",
      "pricingNotes": "Free $0 a month with 1 GB of data, 7 days of retention, 1 project and 1 seat, no overage. Starter $30 a month with 3 GB then $2 a GB, 30 days, unlimited projects and seats. Pro $150 a month with 10 GB then $1.50 a GB, 6 months. Enterprise custom with on-premise. Signals (LLM analysis of traces) comes with $2.50, $7.50 or $25 of credit, then $0.05 per million input tokens and $0.35 per million output tokens. Self-hosted open source is free, you run Postgres, ClickHouse and Quickwit yourself. Signals and Slack alerts on self-hosted need an enterprise licence key (https://laminar.sh/pricing).",
      "priceSummary": "$30 / mo",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402 support in docs or pricing (checked 2026-09-30).",
        "endpoints": []
      },
      "toolCount": 3,
      "popularity": {
        "githubStars": 3288,
        "npmWeekly": 79857,
        "pypiWeekly": 1698863,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://laminar.sh/docs",
      "llmsTxt": "https://laminar.sh/docs/llms.txt",
      "openapi": "https://laminar.sh/docs/openapi/openapi.yaml",
      "capabilities": [
        "obs.traces",
        "obs.evals",
        "obs.datasets"
      ],
      "tags": [
        "hosted",
        "freemium",
        "open-source",
        "self-hosted",
        "mcp",
        "llms-txt",
        "openapi",
        "python",
        "typescript"
      ],
      "lastRelease": "2026-11-03",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 57,
        "grade": "C",
        "agentReady": false,
        "rank": 727,
        "ranked": true,
        "rankOf": 1354,
        "categoryRank": 15,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 80,
          "maintenance": 83,
          "payments": 30,
          "reliability": 52,
          "schema": 88,
          "security": 44,
          "transparency": 64
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-11-04"
        },
        "negative": -5,
        "negativeNotes": [
          "2026-08-27. Laminar's own fix says a client-supplied `projectId` in the body of the SQL export-job route overrode the one the server had authorised, allowing cross-tenant SQL execution and bulk data export (CWE-862). The route dates from July 2025. Fixed with a one-line change, disclosed only in the commit message with no advisory or customer notice we could find. The fix shipped in server tag v0.2.3 on 30 August. -5 after decay for the fix (https://github.com/lmnr-ai/lmnr/commit/5059c7d951fe47d4c91c8016a542a11e82090ade)"
        ],
        "verdict": "Browser session recordings can be matched to agent traces. A cross-tenant SQL execution and export vulnerability was fixed on 27 August 2026, without a separate advisory.",
        "bestFor": "Teams running browser agents who want session replay next to traces, and for agents that read traces through SQL.",
        "strengths": [
          "Browser session recordings synced to traces for Browser Use, Stagehand, Playwright and Puppeteer",
          "Three MCP tools with descriptions that say when to use each, and SQL that runs SELECT-only on a read-only client",
          "Apache-2.0 with Docker Compose and Helm self-hosting, and self-hosted telemetry that switches off with one variable",
          "Priced by GB stored, $2 a GB on Starter and $1.50 on Pro, published without login",
          "SDK releases most weeks, TypeScript 0.8.58 and Python 0.8.8 on 3 November 2026"
        ],
        "weaknesses": [
          "A cross-tenant SQL execution and export hole was fixed on 27 August 2026 in a commit, with no advisory",
          "No SECURITY.md, no security.txt and no published advisories",
          "Rate limits exist per project but no numbers are published",
          "Status page covers only the homepage and an echo probe",
          "Signals, clusters and Slack or email alerts aren't in the open-source build"
        ],
        "agentNotes": [
          "Use `query_laminar_sql` to find trace IDs, then `get_trace_context` for a compact summary of one run",
          "Always add a time range and `LIMIT` to SQL. Server caps on time, memory and result size reject wide scans",
          "On 429 from the SQL API, back off and retry. The per-project limit isn't published",
          "Set `flush_by_size` when spans carry whole conversation histories, or large batches get rejected",
          "Keep the project API key in a header, not in the URL"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3.5,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 57
          }
        ],
        "editorialScores": {
          "ergonomics": 80,
          "maintenance": 83,
          "payments": 30,
          "reliability": 52,
          "schema": 88,
          "security": 44,
          "transparency": 57
        },
        "provenanceScore": 71,
        "checked": {
          "categories": {
            "ergonomics": "2026-11-04",
            "maintenance": "2026-11-04",
            "payments": "2026-11-04",
            "reliability": "2026-11-04",
            "schema": "2026-11-04",
            "security": "2026-11-04",
            "transparency": "2026-11-04"
          },
          "last": "2026-11-04",
          "lastMoved": "2026-11-04",
          "oldest": "2026-11-04",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "connect": {
        "http": "curl https://api.lmnr.ai/v1/project -H \"Authorization: Bearer $LMNR_PROJECT_API_KEY\"",
        "claudeCode": "claude mcp add --transport http laminar https://api.lmnr.ai/v1/mcp \\\n  --header \"Authorization: Bearer $LMNR_PROJECT_API_KEY\""
      },
      "letme": {
        "capability": "https://letme.dev/obs.traces",
        "tool": "https://letme.dev/laminar"
      },
      "area": "developer",
      "unitPrices": [
        {
          "item": "Starter plan",
          "unit": "month",
          "usd": 30,
          "note": "3 GB of data, 30 days retention, unlimited seats"
        },
        {
          "item": "Pro plan",
          "unit": "month",
          "usd": 150,
          "note": "10 GB of data, 6 months retention"
        },
        {
          "item": "Extra data on Starter",
          "unit": "gb",
          "usd": 2
        },
        {
          "item": "Extra data on Pro",
          "unit": "gb",
          "usd": 1.5
        }
      ],
      "provenance": {
        "legalEntity": "LMNR AI, Inc.",
        "domain": "laminar.sh",
        "domainRegistered": "",
        "domainNote": "The .sh registry has no RDAP service. The former domain lmnr.ai, registered 2024-02-26, now redirects to laminar.sh and still serves the API.",
        "endpointOnVendorDomain": true,
        "terms": "https://laminar.sh/policies/terms",
        "privacy": "https://laminar.sh/policies/privacy",
        "statusPage": "https://status.laminar.sh",
        "changelog": "https://laminar.sh/docs/changelog",
        "securityTxt": "none",
        "checked": "2026-09-30",
        "score": 71
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/laminar.json",
      "live": {
        "slug": "laminar",
        "probe": {
          "target": "https://api.lmnr.ai/v1",
          "method": "get",
          "lastAt": "2026-11-06T09:47:34.817725873Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 266,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 263,
          "p95ms24h": 355,
          "samples24h": 221,
          "samples30d": 7856,
          "days": [
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 268,
              "ok": 268
            },
            {
              "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": 251,
              "ok": 251
            },
            {
              "date": "2026-10-29",
              "probes": 248,
              "ok": 248
            },
            {
              "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.laminar.sh",
          "indicator": "unknown",
          "summary": "no machine-readable status found",
          "checkedAt": "2026-11-06T05:41:55.324328754Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "lmnr-ai/lmnr",
            "version": "v0.3.3",
            "released": "2026-11-02",
            "seenAt": "2026-11-05T21:41:45.136111464Z"
          },
          {
            "registry": "npm",
            "name": "@lmnr-ai/lmnr",
            "version": "0.8.60",
            "seenAt": "2026-11-05T21:41:44.282459035Z"
          },
          {
            "registry": "pypi",
            "name": "lmnr",
            "version": "0.8.9",
            "released": "2026-11-05",
            "seenAt": "2026-11-05T21:41:44.146284436Z"
          }
        ],
        "githubStars": 3474,
        "npmWeekly": 163644,
        "pypiWeekly": 776087,
        "securityTxt": {
          "url": "https://laminar.sh/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-11-05T15:55:21.530031864Z"
        },
        "llmsTxt": {
          "url": "https://laminar.sh/docs/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-11-05T15:26:21.488921526Z"
        },
        "domain": {
          "domain": "laminar.sh",
          "checkedAt": "2026-11-01T14:23:55.557271686Z"
        },
        "pages": [
          {
            "url": "https://laminar.sh/docs/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-11-05T12:57:36.528282468Z",
            "changedAt": "2026-11-05T12:35:40.147827023Z",
            "fingerprint": "3689a319f84b"
          },
          {
            "url": "https://laminar.sh/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-11-05T12:57:42.756016027Z",
            "changedAt": "2026-10-29T05:09:34.820524464Z",
            "fingerprint": "4f8f6a3148d9"
          },
          {
            "url": "https://laminar.sh/policies/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-11-05T12:57:39.040859907Z",
            "changedAt": "2026-11-04T08:26:13.080903619Z",
            "fingerprint": "52d31d96a452"
          },
          {
            "url": "https://laminar.sh/policies/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-11-05T12:57:40.739400281Z",
            "changedAt": "2026-10-14T20:43:49.143224888Z",
            "fingerprint": "78407d9ab75d"
          }
        ],
        "github": {
          "repo": "lmnr-ai/lmnr",
          "checkedAt": "2026-11-02T09:01:20.917053589Z",
          "stars": 3469,
          "archived": false,
          "issuesEnabled": true,
          "pushedAt": "2026-10-31T09:13:14Z",
          "openIssues": 66,
          "openPRs": 84,
          "issuesOpened90d": 48,
          "issuesClosed90d": 16,
          "prsMerged90d": 294,
          "replies": {
            "sampled": 25,
            "unanswered": 24,
            "medianDays": 0.4
          }
        },
        "updatedAt": "2026-11-06T09:47:34.817725873Z"
      }
    },
    "edges": [
      {
        "by": 28,
        "category": "schema",
        "leads": "laminar",
        "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": "OpenAPI in the docs, and the MCP tools take typed schemas generated from Rust structs (25). llms.txt and Markdown docs (10). The tool descriptions are among the best in the category. `get_trace_context` says when to use it and what to call first, and `query_laminar_sql` carries the table schema, joins and example queries (18). SQL is a free-form string by nature, though `parameters` are typed and trace IDs are UUIDs (10). The SQL API documents its 400, 401 and 429 bodies with examples (13). Monthly changelog without dates per entry, and a `/v1` API (12)."
        },
        "scores": {
          "a": 60,
          "b": 88
        }
      },
      {
        "by": 11,
        "category": "security",
        "leads": "gauge-cli",
        "name": "Security \u0026 auth",
        "reasons": {
          "a": "Local tool. Agent credentials stay on your machine in local mode; hosted login with a device flow (20 of 30). Test agents run in fresh Docker sessions with injected inputs, and the gateway brokers credentials in hosted mode (12 of 20). Agents under test read your product's docs and outputs, with no prompt-injection guidance (5 of 15). Local transcripts and SQLite evidence per run (10 of 15). No security policy found (8 of 20). 20 + 12 + 5 + 10 + 8 = 55.",
          "b": "One project API key as a Bearer token, revocable, scoped to one project, with no read-only key type (20). MCP still has three tools and no write tools, and SQL is SELECT-only on a read-only database client (16). Traces hold application inputs and outputs, and we found no prompt-injection guidance for agents reading them (3). No audit log found (0). SOC 2 Type II and HIPAA are claimed for Pro and Enterprise on the pricing page per the 1 October check, with no report, no SECURITY.md in any of the three repositories, no security.txt per the 1 October check and no advisories in OSV for `lmnr` or Laminar. A bare SOC 2 claim with no disclosure route takes 5 in this run (5). 20+16+3+0+5 = 44."
        },
        "scores": {
          "a": 55,
          "b": 44
        }
      },
      {
        "by": 11,
        "category": "transparency",
        "leads": "laminar",
        "name": "Transparency \u0026 trust",
        "reasons": {
          "a": "MIT (30). Local data stays in .gauge/ and telemetry fields are listed; hosted data handling wasn't read (18 of 30). Dated changelog, no deprecation policy (10 of 20). Telemetry on by default, disclosed with an opt-out (20). 30 + 18 + 10 + 20 = 78.",
          "b": "Apache-2.0, with Signals and Slack alerts held back from the open-source images behind a licence key (28). The privacy policy covers account data in general terms with no retention period for trace data, no subprocessor list and no DPA link we could find. Retention per plan is on the pricing page and PII redaction is documented (12). No deprecation policy. The move from lmnr.ai to laminar.sh while the API stayed on api.lmnr.ai wasn't dated in the changelog (5). Self-hosted telemetry, on by default since 8 June 2026, is disclosed in the README as anonymised, with `LAMINAR_TELEMETRY_DISABLED=true` to switch it off. The code sends a per-deployment UUID, version, environment and row counts, with the source IP dropped. Until v0.3.2 (16 October) the documented opt-out didn't reach the Compose frontend containers (7280cc17). No subprocessor or data-location list for the cloud (12)."
        },
        "scores": {
          "a": 53,
          "b": 64
        }
      },
      {
        "by": 10,
        "category": "payments",
        "leads": "gauge-cli",
        "name": "Payments \u0026 pricing",
        "reasons": {
          "a": "Scored on the hosted option. No payment protocol (0). Credit prices weren't found on the pages read (0). Local mode is free with no card (20). Local mode needs no sign-up (20). 0 + 0 + 20 + 20 = 40.",
          "b": "No x402 (0). Per-GB prices and Signals token prices published without login (20). The Free plan exists with 1 GB and 7 days, but the pricing page doesn't say whether a card is needed, so half (10). A person signs up in a browser to create a project key (0)."
        },
        "scores": {
          "a": 40,
          "b": 30
        }
      },
      {
        "by": 8,
        "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": "Laminar's terms (last updated 11 August 2026) bar any spider, robot or scraper that accesses the Services other than its documented APIs, SDKs and CLI, so status.laminar.sh was not re-read on 4 November and the 1 October readings are kept. Better Stack page whose only components are the homepage and an API echo probe, with nothing for ingestion, SQL or MCP, kept at 12 as partly met. Per the 1 October check the window from 6 August to 1 October shows only one planned 30-minute Postgres upgrade on 8 August, and no unread stretch is credited beyond it (20). The SQL docs still say queries are rate limited per project with no numbers (0). The SQL API documents 429 as 'Project rate limit exceeded. Retry with backoff', which is backoff guidance alone. Annotation queue items take an `idempotencyKey`, but no retry guidance covers ingestion (10). No SLA found (0). API, SQL and MCP are GA (10). 12+20+0+10+0+10 = 52."
        },
        "scores": {
          "a": 60,
          "b": 52
        }
      },
      {
        "by": 5,
        "category": "ergonomics",
        "leads": "laminar",
        "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": "Three MCP tools, but the SQL tool's description embeds the whole table schema, so the list costs more context than the count suggests (18). Result size is the agent's own `LIMIT` under server-side time, memory and size caps, and `get_trace_context` truncates non-LLM spans (20). Tool failures come back with `isError` and a message. HTTP errors are a single `error` field (17). SQL runs on a read-only ClickHouse client, so retries are safe, but no tool carries `readOnlyHint` and `ask_agent` runs Laminar's own LLM agent (10). One required argument per tool. Python and TypeScript SDKs and a CLI (15)."
        },
        "scores": {
          "a": 75,
          "b": 80
        }
      }
    ],
    "facts": [
      {
        "a": "cli",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Gauge",
        "b": "Laminar (LMNR AI)",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "https://api.lmnr.ai/v1",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "HTTP, Streamable 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": "Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "none",
        "b": "3",
        "name": "Tools exposed"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-11-04",
        "b": "2026-11-03",
        "name": "Last release"
      },
      {
        "a": "no document linked",
        "b": "2026-08-11",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-08-11",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not read yet",
        "b": "yes, with an opt-out",
        "name": "Customer content may train models"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not read yet",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not read yet",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "none",
        "b": "3.3k stars, 80k npm/wk, 1.7M PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "none",
        "b": "3.5/5 (2)",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Gauge CLI scores 60.4 (C) on agent readiness against Laminar API + MCP's 57 (C), and leads in 3 of 7 scored categories. Laminar API + MCP leads on schema \u0026 documentation, agent ergonomics and transparency \u0026 trust.",
        "question": "Which is better for AI agents, Gauge CLI or Laminar API + MCP?"
      },
      {
        "answer": "No hosted endpoint is listed for Gauge CLI. Laminar API + MCP has a hosted endpoint at https://api.lmnr.ai/v1.",
        "question": "Can an agent call Gauge CLI and Laminar API + MCP without installing anything?"
      },
      {
        "answer": "Yes. Gauge CLI is open source (MIT). Laminar API + MCP is open source (Apache-2.0).",
        "question": "Are Gauge CLI and Laminar API + MCP open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 60 against 52",
          "Security \u0026 auth, 55 against 44",
          "Payments \u0026 pricing, 40 against 30"
        ],
        "also": [
          "No key needed to call it",
          "No incidents deducted, where Laminar API + MCP loses 5 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, 88 against 60",
          "Agent ergonomics, 80 against 75",
          "Transparency \u0026 trust, 64 against 53"
        ],
        "also": [
          "A hosted endpoint, with nothing to install"
        ],
        "goodFor": "Teams running browser agents who want session replay next to traces, and for agents that read traces through SQL.",
        "slug": "laminar",
        "watchFor": "A cross-tenant SQL execution and export hole was fixed on 27 August 2026 in a commit, with no advisory"
      }
    ],
    "history": {
      "gauge-cli": null,
      "laminar": [
        {
          "causes": [
            "correction"
          ],
          "date": "2026-11-04",
          "delta": 0.2,
          "from": 56.8,
          "fromGrade": "C",
          "to": 57,
          "toGrade": "C"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-27",
          "delta": 0.2,
          "from": 56.6,
          "fromGrade": "C",
          "to": 56.8,
          "toGrade": "C"
        },
        {
          "causes": [
            "method"
          ],
          "date": "2026-10-08",
          "delta": -0.4,
          "from": 57,
          "fromGrade": "C",
          "to": 56.6,
          "toGrade": "C"
        }
      ]
    },
    "job": {
      "capability": "obs.evals",
      "name": "Evaluations"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/agent-tree-vs-laminar.json",
        "title": "Agent Tree vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/agent-tree-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/agents-tree-vs-laminar.json",
        "title": "agents-tree vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/agents-tree-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/arize-phoenix-vs-laminar.json",
        "title": "Arize Phoenix vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/arize-phoenix-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/baserun-vs-laminar.json",
        "title": "Baserun vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/baserun-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/botgauge-vs-laminar.json",
        "title": "BotGauge vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/botgauge-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/braintrust-vs-laminar.json",
        "title": "Braintrust API + MCP vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/braintrust-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/galileo-vs-laminar.json",
        "title": "Galileo API + MCP vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/galileo-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/helicone-vs-laminar.json",
        "title": "Helicone AI Gateway + MCP vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/helicone-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/honeyhive-vs-laminar.json",
        "title": "HoneyHive vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/honeyhive-vs-laminar"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-langfuse.json",
        "title": "Laminar API + MCP vs Langfuse API + MCP",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-langfuse"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-langsmith.json",
        "title": "Laminar API + MCP vs LangSmith API + MCP",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-langsmith"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-langwatch.json",
        "title": "Laminar API + MCP vs LangWatch",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-langwatch"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-mlflow-tracing.json",
        "title": "Laminar API + MCP vs MLflow Tracing",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-mlflow-tracing"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-navige.json",
        "title": "Laminar API + MCP vs Navige",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-navige"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-opik.json",
        "title": "Laminar API + MCP vs Opik API + MCP",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-opik"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-overmind.json",
        "title": "Laminar API + MCP vs Overmind",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-overmind"
      },
      {
        "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/laminar-vs-pydantic-logfire.json",
        "title": "Laminar API + MCP vs Pydantic Logfire",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-pydantic-logfire"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-respan.json",
        "title": "Laminar API + MCP vs Respan API + MCP",
        "url": "https://www.anchorterminal.com/compare/laminar-vs-respan"
      },
      {
        "json": "https://www.anchorterminal.com/compare/laminar-vs-wandb-weave.json",
        "title": "Laminar API + MCP vs W\u0026B Weave",
        "url": "https://www.anchorterminal.com/compare/laminar-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-laminar.json",
        "title": "DeepEval vs Laminar API + MCP",
        "url": "https://www.anchorterminal.com/compare/deepeval-vs-laminar"
      },
      {
        "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-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-prefactor.json",
        "title": "Gauge CLI vs Prefactor",
        "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-prefactor"
      },
      {
        "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": 8,
        "edge": "gauge-cli",
        "gauge-cli": 60,
        "key": "reliability",
        "laminar": 52,
        "name": "Reliability",
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 28,
        "edge": "laminar",
        "gauge-cli": 60,
        "key": "schema",
        "laminar": 88,
        "name": "Schema \u0026 documentation",
        "weight": 13
      },
      {
        "by": 5,
        "edge": "laminar",
        "gauge-cli": 75,
        "key": "ergonomics",
        "laminar": 80,
        "name": "Agent ergonomics",
        "weight": 13
      },
      {
        "by": 11,
        "edge": "gauge-cli",
        "gauge-cli": 55,
        "key": "security",
        "laminar": 44,
        "name": "Security \u0026 auth",
        "weight": 14
      },
      {
        "by": 10,
        "edge": "gauge-cli",
        "gauge-cli": 40,
        "key": "payments",
        "laminar": 30,
        "name": "Payments \u0026 pricing",
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "edge": "laminar",
        "gauge-cli": 82,
        "key": "maintenance",
        "laminar": 83,
        "name": "Maintenance \u0026 community",
        "weight": 7
      },
      {
        "by": 11,
        "edge": "laminar",
        "gauge-cli": 53,
        "key": "transparency",
        "laminar": 64,
        "name": "Transparency \u0026 trust",
        "weight": 7
      }
    ],
    "summary": "Gauge CLI scores 60.4 (C) on agent readiness against Laminar API + MCP's 57 (C), and leads in 3 of 7 scored categories. Laminar API + MCP leads on schema \u0026 documentation, agent ergonomics and transparency \u0026 trust. 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.",
      "laminar": "Browser session recordings can be matched to agent traces. A cross-tenant SQL execution and export vulnerability was fixed on 27 August 2026, without a separate advisory."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/gauge-cli-vs-laminar",
    "json": "https://www.anchorterminal.com/compare/gauge-cli-vs-laminar.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/gauge-cli-vs-laminar.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/gauge-cli-vs-laminar.min.md"
  },
  "markdown": "Gauge CLI scores 60.4 (C) on agent readiness against Laminar API + MCP's 57 (C), and leads in 3 of 7 scored categories. Laminar API + MCP leads on schema \u0026 documentation, agent ergonomics and transparency \u0026 trust. 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- Laminar API + MCP: grade C, 57/100, rank #727 of 1354. Markdown https://www.anchorterminal.com/tools/laminar.md · JSON https://www.anchorterminal.com/api/v1/tools/laminar.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 52\n- Security \u0026 auth, 55 against 44\n- Payments \u0026 pricing, 40 against 30\n\nAlso in its favour:\n- No key needed to call it\n- No incidents deducted, where Laminar API + MCP loses 5 points for them\n\nWatch for: Collects anonymous command usage by default, with an opt-out\n\n### Laminar API + MCP (C)\n\nGood for: Teams running browser agents who want session replay next to traces, and for agents that read traces through SQL.\n\nAhead on:\n- Schema \u0026 documentation, 88 against 60\n- Agent ergonomics, 80 against 75\n- Transparency \u0026 trust, 64 against 53\n\nAlso in its favour:\n- A hosted endpoint, with nothing to install\n\nWatch for: A cross-tenant SQL execution and export hole was fixed on 27 August 2026 in a commit, with no advisory\n\n\n## Why the edge\n\n### Schema \u0026 documentation: Laminar API + MCP +28\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- Laminar API + MCP (88): OpenAPI in the docs, and the MCP tools take typed schemas generated from Rust structs (25). llms.txt and Markdown docs (10). The tool descriptions are among the best in the category. `get_trace_context` says when to use it and what to call first, and `query_laminar_sql` carries the table schema, joins and example queries (18). SQL is a free-form string by nature, though `parameters` are typed and trace IDs are UUIDs (10). The SQL API documents its 400, 401 and 429 bodies with examples (13). Monthly changelog without dates per entry, and a `/v1` API (12).\n\n### Security \u0026 auth: Gauge CLI +11\n\n- Gauge CLI (55): Local tool. Agent credentials stay on your machine in local mode; hosted login with a device flow (20 of 30). Test agents run in fresh Docker sessions with injected inputs, and the gateway brokers credentials in hosted mode (12 of 20). Agents under test read your product's docs and outputs, with no prompt-injection guidance (5 of 15). Local transcripts and SQLite evidence per run (10 of 15). No security policy found (8 of 20). 20 + 12 + 5 + 10 + 8 = 55.\n- Laminar API + MCP (44): One project API key as a Bearer token, revocable, scoped to one project, with no read-only key type (20). MCP still has three tools and no write tools, and SQL is SELECT-only on a read-only database client (16). Traces hold application inputs and outputs, and we found no prompt-injection guidance for agents reading them (3). No audit log found (0). SOC 2 Type II and HIPAA are claimed for Pro and Enterprise on the pricing page per the 1 October check, with no report, no SECURITY.md in any of the three repositories, no security.txt per the 1 October check and no advisories in OSV for `lmnr` or Laminar. A bare SOC 2 claim with no disclosure route takes 5 in this run (5). 20+16+3+0+5 = 44.\n\n### Transparency \u0026 trust: Laminar API + MCP +11\n\n- Gauge CLI (53): MIT (30). Local data stays in .gauge/ and telemetry fields are listed; hosted data handling wasn't read (18 of 30). Dated changelog, no deprecation policy (10 of 20). Telemetry on by default, disclosed with an opt-out (20). 30 + 18 + 10 + 20 = 78.\n- Laminar API + MCP (64): Apache-2.0, with Signals and Slack alerts held back from the open-source images behind a licence key (28). The privacy policy covers account data in general terms with no retention period for trace data, no subprocessor list and no DPA link we could find. Retention per plan is on the pricing page and PII redaction is documented (12). No deprecation policy. The move from lmnr.ai to laminar.sh while the API stayed on api.lmnr.ai wasn't dated in the changelog (5). Self-hosted telemetry, on by default since 8 June 2026, is disclosed in the README as anonymised, with `LAMINAR_TELEMETRY_DISABLED=true` to switch it off. The code sends a per-deployment UUID, version, environment and row counts, with the source IP dropped. Until v0.3.2 (16 October) the documented opt-out didn't reach the Compose frontend containers (7280cc17). No subprocessor or data-location list for the cloud (12).\n\n### Payments \u0026 pricing: Gauge CLI +10\n\n- Gauge CLI (40): Scored on the hosted option. No payment protocol (0). Credit prices weren't found on the pages read (0). Local mode is free with no card (20). Local mode needs no sign-up (20). 0 + 0 + 20 + 20 = 40.\n- Laminar API + MCP (30): No x402 (0). Per-GB prices and Signals token prices published without login (20). The Free plan exists with 1 GB and 7 days, but the pricing page doesn't say whether a card is needed, so half (10). A person signs up in a browser to create a project key (0).\n\n### Reliability: Gauge CLI +8\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- Laminar API + MCP (52): Laminar's terms (last updated 11 August 2026) bar any spider, robot or scraper that accesses the Services other than its documented APIs, SDKs and CLI, so status.laminar.sh was not re-read on 4 November and the 1 October readings are kept. Better Stack page whose only components are the homepage and an API echo probe, with nothing for ingestion, SQL or MCP, kept at 12 as partly met. Per the 1 October check the window from 6 August to 1 October shows only one planned 30-minute Postgres upgrade on 8 August, and no unread stretch is credited beyond it (20). The SQL docs still say queries are rate limited per project with no numbers (0). The SQL API documents 429 as 'Project rate limit exceeded. Retry with backoff', which is backoff guidance alone. Annotation queue items take an `idempotencyKey`, but no retry guidance covers ingestion (10). No SLA found (0). API, SQL and MCP are GA (10). 12+20+0+10+0+10 = 52.\n\n### Agent ergonomics: Laminar API + MCP +5\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- Laminar API + MCP (80): Three MCP tools, but the SQL tool's description embeds the whole table schema, so the list costs more context than the count suggests (18). Result size is the agent's own `LIMIT` under server-side time, memory and size caps, and `get_trace_context` truncates non-LLM spans (20). Tool failures come back with `isError` and a message. HTTP errors are a single `error` field (17). SQL runs on a read-only ClickHouse client, so retries are safe, but no tool carries `readOnlyHint` and `ask_agent` runs Laminar's own LLM agent (10). One required argument per tool. Python and TypeScript SDKs and a CLI (15).\n\n## Score by category\n\n| Category | Weight | Gauge CLI | Laminar API + MCP | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 60 | 52 | Gauge CLI +8 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 60 | 88 | Laminar API + MCP +28 |\n| Agent ergonomics | 13% (16.2 this run) | 75 | 80 | Laminar API + MCP +5 |\n| Security \u0026 auth | 14% (17.5 this run) | 55 | 44 | Gauge CLI +11 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 40 | 30 | Gauge CLI +10 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 82 | 83 | Laminar API + MCP +1 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 53 | 64 | Laminar API + MCP +11 |\n| Negative events | ≤15 | 0 | -5 | |\n| **Total** | | **60.4 · C** | **57 · C** | |\n\n## Facts side by side\n\n| Fact | Gauge CLI | Laminar API + MCP |\n| --- | --- | --- |\n| Kind | cli | HTTP API |\n| Vendor | Gauge | Laminar (LMNR AI) |\n| Hosted endpoint | no (local only) | `https://api.lmnr.ai/v1` |\n| Transports |  | HTTP, Streamable HTTP |\n| Auth | None | API key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | MIT | Apache-2.0 |\n| Tools exposed | none | 3 |\n| Read-only variant documented | no | yes |\n| llms.txt | no | yes |\n| Last release | 2026-11-04 | 2026-11-03 |\n| Terms last updated | no document linked | 2026-08-11 |\n| Privacy policy last updated | no document linked | 2026-08-11 |\n| Customer content may train models | not read yet | yes, with an opt-out |\n| Terms restrict automated access | not read yet | yes |\n| Terms restrict benchmarking | not read yet | yes |\n| Terms or service can change without notice | not read yet | yes |\n| Arbitration or class-action waiver | not read yet | not found in the text |\n| Popularity | none | 3.3k stars, 80k npm/wk, 1.7M PyPI/wk |\n| Agent reviews | none | 3.5/5 (2) |\n\n## How the scores have moved\n\n### Gauge CLI\n\nNo score change since it was listed.\n\n### Laminar API + MCP\n\n- +0.2 on 4 November 2026: correction\n- +0.2 on 27 October 2026: checklist\n- -0.4 on 8 October 2026: checklist\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**Laminar API + MCP.** Browser session recordings can be matched to agent traces. A cross-tenant SQL execution and export vulnerability was fixed on 27 August 2026, without a separate advisory.\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### Laminar API + MCP\n\n1. Use `query_laminar_sql` to find trace IDs, then `get_trace_context` for a compact summary of one run\n2. Always add a time range and `LIMIT` to SQL. Server caps on time, memory and result size reject wide scans\n3. On 429 from the SQL API, back off and retry. The per-project limit isn't published\n4. Set `flush_by_size` when spans carry whole conversation histories, or large batches get rejected\n5. Keep the project API key in a header, not in the URL\n\n## Questions\n\n### Which is better for AI agents, Gauge CLI or Laminar API + MCP?\n\nGauge CLI scores 60.4 (C) on agent readiness against Laminar API + MCP's 57 (C), and leads in 3 of 7 scored categories. Laminar API + MCP leads on schema \u0026 documentation, agent ergonomics and transparency \u0026 trust.\n\n### Can an agent call Gauge CLI and Laminar API + MCP without installing anything?\n\nNo hosted endpoint is listed for Gauge CLI. Laminar API + MCP has a hosted endpoint at https://api.lmnr.ai/v1.\n\n### Are Gauge CLI and Laminar API + MCP open source?\n\nYes. Gauge CLI is open source (MIT). Laminar API + MCP is open source (Apache-2.0).\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/gauge-cli-vs-laminar.json, and with the fewest tokens: https://www.anchorterminal.com/compare/gauge-cli-vs-laminar.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"gauge-cli\", \"b\": \"laminar\"}`. From a terminal: `anchor compare gauge-cli laminar`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/gauge-cli.json and https://www.anchorterminal.com/api/v1/tools/laminar.json\n\n## Other comparisons with Gauge CLI or Laminar API + MCP\n\n- [Agent Tree vs Laminar API + MCP](https://www.anchorterminal.com/compare/agent-tree-vs-laminar.md)\n- [agents-tree vs Laminar API + MCP](https://www.anchorterminal.com/compare/agents-tree-vs-laminar.md)\n- [Arize Phoenix vs Laminar API + MCP](https://www.anchorterminal.com/compare/arize-phoenix-vs-laminar.md)\n- [Baserun vs Laminar API + MCP](https://www.anchorterminal.com/compare/baserun-vs-laminar.md)\n- [BotGauge vs Laminar API + MCP](https://www.anchorterminal.com/compare/botgauge-vs-laminar.md)\n- [Braintrust API + MCP vs Laminar API + MCP](https://www.anchorterminal.com/compare/braintrust-vs-laminar.md)\n- [Galileo API + MCP vs Laminar API + MCP](https://www.anchorterminal.com/compare/galileo-vs-laminar.md)\n- [Helicone AI Gateway + MCP vs Laminar API + MCP](https://www.anchorterminal.com/compare/helicone-vs-laminar.md)\n- [HoneyHive vs Laminar API + MCP](https://www.anchorterminal.com/compare/honeyhive-vs-laminar.md)\n- [Laminar API + MCP vs Langfuse API + MCP](https://www.anchorterminal.com/compare/laminar-vs-langfuse.md)\n- [Laminar API + MCP vs LangSmith API + MCP](https://www.anchorterminal.com/compare/laminar-vs-langsmith.md)\n- [Laminar API + MCP vs LangWatch](https://www.anchorterminal.com/compare/laminar-vs-langwatch.md)\n- [Laminar API + MCP vs MLflow Tracing](https://www.anchorterminal.com/compare/laminar-vs-mlflow-tracing.md)\n- [Laminar API + MCP vs Navige](https://www.anchorterminal.com/compare/laminar-vs-navige.md)\n- [Laminar API + MCP vs Opik API + MCP](https://www.anchorterminal.com/compare/laminar-vs-opik.md)\n- [Laminar API + MCP vs Overmind](https://www.anchorterminal.com/compare/laminar-vs-overmind.md)\n- [Laminar API + MCP vs Prefactor](https://www.anchorterminal.com/compare/laminar-vs-prefactor.md)\n- [Laminar API + MCP vs Pydantic Logfire](https://www.anchorterminal.com/compare/laminar-vs-pydantic-logfire.md)\n- [Laminar API + MCP vs Respan API + MCP](https://www.anchorterminal.com/compare/laminar-vs-respan.md)\n- [Laminar API + MCP vs W\u0026B Weave](https://www.anchorterminal.com/compare/laminar-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 Laminar API + MCP](https://www.anchorterminal.com/compare/deepeval-vs-laminar.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 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 Prefactor](https://www.anchorterminal.com/compare/gauge-cli-vs-prefactor.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 Laminar API + MCP",
        "url": ""
      }
    ],
    "description": "Gauge CLI scores 60.4 (C) to Laminar's 57 (C) for evaluations. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "Gauge CLI C 60.4",
      "Laminar API + MCP C 57",
      "scores"
    ],
    "h1": "Gauge CLI vs Laminar API + MCP",
    "image": "https://www.anchorterminal.com/assets/og/default.png",
    "path": "/compare/gauge-cli-vs-laminar",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Gauge CLI vs Laminar for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-11-06",
    "url": "https://www.anchorterminal.com/compare/gauge-cli-vs-laminar"
  },
  "tokens": {
    "markdown": 4450,
    "slim": 2380
  },
  "version": 1
}
