{
  "data": {
    "a": {
      "slug": "doppler",
      "name": "Doppler",
      "vendor": "Doppler",
      "vendorUrl": "https://www.doppler.com",
      "kind": "http-api",
      "category": "secrets",
      "summary": "Hosted secrets manager organised by project, environment and config.",
      "url": "https://www.anchorterminal.com/tools/doppler",
      "markdownUrl": "https://www.anchorterminal.com/tools/doppler.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/doppler.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/doppler.json",
      "repo": "https://github.com/DopplerHQ/mcp-server",
      "license": "Apache-2.0 (MCP server and CLI), closed platform",
      "transports": [
        "http",
        "stdio"
      ],
      "remoteUrl": "https://api.doppler.com/v3",
      "packages": [
        {
          "registry": "npm",
          "name": "@dopplerhq/mcp-server"
        }
      ],
      "auth": "mixed",
      "authNotes": "Bearer tokens on api.doppler.com. Service tokens (`dp.st.\u003cenv\u003e.…`) are scoped to one config, read-only by default and can expire with `--max-age`. Service account identities exchange an OIDC token (GitHub Actions, Kubernetes, AWS EC2 or any issuer) for a short-lived Doppler token at POST /v3/auth/oidc, Team plan and above. The MCP server takes `DOPPLER_TOKEN` or `npx @dopplerhq/mcp-server login`.",
      "pricing": "freemium",
      "pricingNotes": "Developer plan is free for 3 users then $8 a month per extra user, with 10 projects, 50 service tokens, 3-day activity logs and API-based rotation only. Team $21 a month per user with a 14-day trial, 250 projects, 500 service tokens, service accounts, automatic rotation, 90-day logs and SAML. Enterprise is custom, with dynamic secrets (AWS IAM and Azure service principals), proxied rotation, SCIM, on-prem and a 99.95% SLO. The pricing page says AI agents and non-human identities ride free, and doesn't say whether a card is needed (https://www.doppler.com/pricing, https://docs.doppler.com/docs/dynamic-secrets).",
      "priceSummary": "$21 / seat-mo",
      "where": "both",
      "x402": {
        "level": "no",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 8,
        "npmWeekly": 3261,
        "pypiWeekly": null,
        "asOf": "2026-09-30"
      },
      "docsUrl": "https://docs.doppler.com",
      "llmsTxt": "https://docs.doppler.com/llms.txt",
      "openapi": "https://docs.doppler.com/openapi/core.json",
      "capabilities": [
        "secrets.store",
        "secrets.rotate",
        "secrets.machine-identity",
        "secrets.audit"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "freemium",
        "free-tier",
        "no-card",
        "mcp",
        "openapi",
        "llms-txt",
        "typescript",
        "read-only-mode",
        "enterprise"
      ],
      "lastRelease": "2026-09-21",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 71.4,
        "grade": "BB",
        "agentReady": true,
        "rank": 110,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 6,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 59,
          "maintenance": 76,
          "payments": 25,
          "reliability": 90,
          "schema": 81,
          "security": 82,
          "transparency": 74
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-01"
        },
        "negative": 0,
        "verdict": "Service tokens bound to one config, read-only by default, with --max-age expiry. Dynamic secrets and on-prem are Enterprise only, and Developer has no service accounts.",
        "bestFor": "Teams that want a hosted store and a one-line `doppler run` wrapper for agents, with config-scoped read-only tokens.",
        "strengths": [
          "Service tokens bound to one config, read-only by default, with --max-age expiry",
          "OIDC service account identities on Team, so shared runners don't hold a static token",
          "OpenAPI 3.1 and an llms.txt with about 500 Markdown links",
          "Published per-plan rate limits with retry-after and x-ratelimit headers on a 429",
          "MCP server with --read-only and --config modes that cut the tool list to 36 or 10"
        ],
        "weaknesses": [
          "Dynamic secrets and on-prem are Enterprise only, and Developer has no service accounts",
          "The MCP server is experimental, has no tool annotations or value masking, and exposes up to 89 tools by default",
          "35 open CLI issues, most of the newest without a reply",
          "The CLI keeps serving its fallback file after a token is revoked, and sends anonymous analytics unless turned off",
          "No SLA, only a 99.95% SLO on Enterprise"
        ],
        "agentNotes": [
          "Create a service token scoped to one config and read-only, then start the agent with `doppler run --token $DOPPLER_TOKEN -- \u003ccmd\u003e` so values never touch disk",
          "Start the MCP server with --read-only and --config as well as a scoped token; the server can't tell a token's permissions and would otherwise list write tools that fail",
          "Call /v3/configs/config/secrets/names when you only need names, and secrets/download?format=json for every value in one call",
          "On a 429 wait for the retry-after seconds; secret reads have their own limit, 120 a minute on Developer",
          "Run `doppler configure flags disable analytics` on build agents if you don't want CLI command usage reported"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 2,
        "avgRating": 3,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 71.4
          }
        ],
        "editorialScores": {
          "ergonomics": 59,
          "maintenance": 76,
          "payments": 25,
          "reliability": 90,
          "schema": 81,
          "security": 82,
          "transparency": 64
        },
        "provenanceScore": 84
      },
      "connect": {
        "http": "curl \"https://api.doppler.com/v3/configs/config/secrets/download?format=json\" \\\n  -H \"Authorization: Bearer $DOPPLER_TOKEN\"",
        "claudeCode": "claude mcp add doppler -e DOPPLER_TOKEN=$DOPPLER_TOKEN -- npx -y @dopplerhq/mcp-server --read-only",
        "config": {
          "mcpServers": {
            "doppler": {
              "args": [
                "-y",
                "@dopplerhq/mcp-server",
                "--read-only"
              ],
              "command": "npx",
              "env": {
                "DOPPLER_TOKEN": "${DOPPLER_TOKEN}"
              }
            }
          }
        }
      },
      "letme": {
        "capability": "https://letme.dev/secrets.store",
        "tool": "https://letme.dev/doppler"
      },
      "area": "agent-runtime",
      "unitPrices": [
        {
          "item": "Team plan",
          "unit": "seat-month",
          "usd": 21,
          "note": "14-day trial"
        },
        {
          "item": "Developer plan, extra user",
          "unit": "seat-month",
          "usd": 8,
          "note": "First 3 users free"
        }
      ],
      "provenance": {
        "legalEntity": "Doppler Technologies, Inc.",
        "domain": "doppler.com",
        "domainRegistered": "1999-01-24",
        "domainNote": "doppler.com was registered in 1999, long before the company, so the domain was bought later.",
        "endpointOnVendorDomain": true,
        "terms": "https://www.doppler.com/legal/terms",
        "privacy": "https://www.doppler.com/legal/privacy",
        "statusPage": "https://www.dopplerstatus.com",
        "changelog": "https://docs.doppler.com/changelog",
        "securityTxt": "unknown",
        "checked": "2026-10-01",
        "notes": [
          "Terms name Doppler Technologies, Inc., 440 North Barranca Avenue #5880, Covina, CA 91723, last updated 8 February 2026. Privacy notice updated 17 September 2026, data stored in the United States.",
          "www.doppler.com/.well-known/security.txt is disallowed by robots.txt, so we couldn't read it.",
          "www.dopplerstatus.com is Atlassian Statuspage. Its history shows one incident since 3 July 2026 (CLI downloads failing, 16 July) and system outages on 18 November 2025 and 12 June 2025.",
          "The subprocessor list (13 July 2026) names 9 subprocessors, 8 in the United States and Groundcover in Israel, and links a DPA and an on-prem DPA.",
          "The security fact sheet puts all servers in GCP us-central1 and says HackerOne handles disclosures."
        ],
        "score": 84
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/doppler.json",
      "live": {
        "slug": "doppler",
        "probe": {
          "target": "https://api.doppler.com/v3",
          "method": "get",
          "lastAt": "2026-10-08T19:52:49.682515381Z",
          "lastOk": true,
          "lastStatus": 401,
          "lastMs": 165,
          "lastNote": "asks for credentials",
          "authRequired": true,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 160,
          "p95ms24h": 226,
          "samples24h": 272,
          "samples30d": 1941,
          "days": [
            {
              "date": "2026-10-01",
              "probes": 109,
              "ok": 109
            },
            {
              "date": "2026-10-02",
              "probes": 248,
              "ok": 248
            },
            {
              "date": "2026-10-03",
              "probes": 271,
              "ok": 271
            },
            {
              "date": "2026-10-04",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-05",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-06",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-07",
              "probes": 272,
              "ok": 272
            },
            {
              "date": "2026-10-08",
              "probes": 225,
              "ok": 225
            }
          ]
        },
        "vendorStatus": {
          "page": "https://www.dopplerstatus.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T19:50:35.734835775Z"
        },
        "versions": [
          {
            "registry": "github",
            "name": "DopplerHQ/mcp-server",
            "version": "v1.0.5",
            "released": "2026-06-04",
            "seenAt": "2026-10-08T16:09:07.183315385Z"
          },
          {
            "registry": "npm",
            "name": "@dopplerhq/mcp-server",
            "version": "1.0.5",
            "seenAt": "2026-10-08T16:09:03.759247982Z"
          }
        ],
        "githubStars": 8,
        "npmWeekly": 6028,
        "securityTxt": {
          "url": "https://doppler.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-08T15:38:32.092431429Z"
        },
        "llmsTxt": {
          "url": "https://docs.doppler.com/llms.txt",
          "ok": true,
          "status": 200,
          "checkedAt": "2026-10-08T14:00:20.013473413Z"
        },
        "domain": {
          "domain": "doppler.com",
          "registered": "1999-01-24",
          "source": "https://rdap.verisign.com/com/v1/domain/doppler.com",
          "checkedAt": "2026-10-04T13:08:29.130637863Z"
        },
        "pages": [
          {
            "url": "https://docs.doppler.com/changelog",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:18:41.528192519Z",
            "changedAt": "2026-10-08T18:18:41.528192519Z",
            "fingerprint": "f9d2f9eda629"
          },
          {
            "url": "https://www.doppler.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:27:31.142065584Z",
            "changedAt": "2026-10-08T18:27:31.142065584Z",
            "fingerprint": "17d93932c2cc"
          },
          {
            "url": "https://www.doppler.com/legal/privacy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:27:26.898819619Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "306950b580d5"
          },
          {
            "url": "https://www.doppler.com/legal/terms",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:27:29.165687966Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "642e87a74245"
          }
        ],
        "updatedAt": "2026-10-08T19:52:49.682515381Z"
      }
    },
    "answer": "Doppler and Pulumi ESC score within a point of each other on agent readiness, 71.4 (BB) and 71.1 (BB). Pulumi ESC leads on agent ergonomics, payments \u0026 pricing and maintenance \u0026 community.",
    "b": {
      "slug": "pulumi-esc",
      "name": "Pulumi ESC",
      "vendor": "Pulumi Corporation",
      "vendorUrl": "https://www.pulumi.com",
      "kind": "http-api",
      "category": "secrets",
      "summary": "Pulumi ESC is the secrets and configuration service in Pulumi Cloud. Environments hold static secrets, pull from other vaults and issue short-lived cloud credentials over OIDC, read through the Pulumi CLI, a REST API and four SDKs.",
      "url": "https://www.anchorterminal.com/tools/pulumi-esc",
      "markdownUrl": "https://www.anchorterminal.com/tools/pulumi-esc.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/pulumi-esc.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/pulumi-esc.json",
      "repo": "https://github.com/pulumi/esc-sdk",
      "license": "Proprietary service under Pulumi's Terms \u0026 Conditions. The Pulumi CLI, the ESC evaluator and the ESC SDKs are Apache-2.0",
      "transports": [
        "http"
      ],
      "remoteUrl": "https://api.pulumi.com",
      "packages": [
        {
          "registry": "npm",
          "name": "@pulumi/esc-sdk"
        },
        {
          "registry": "pypi",
          "name": "pulumi-esc-sdk"
        },
        {
          "registry": "go",
          "name": "github.com/pulumi/esc-sdk/sdk"
        }
      ],
      "auth": "mixed",
      "authNotes": "Self-serve. Every request sends `Authorization: token \u003ctoken\u003e` to https://api.pulumi.com. A personal token comes from the console and carries all of the user's permissions. Organisation tokens (Essentials and above) and team tokens (Pro and above) are machine tokens that take a role, and custom roles with environment scopes need Pro. A workload on a registered OIDC issuer (GitHub Actions, GitLab CI, EKS, GKE and others) exchanges its ID token for a short-lived Pulumi token with `pulumi login --oidc-token` or POST /api/oauth/token. Under an agent with no credentials the CLI creates an ephemeral account by itself.",
      "pricing": "freemium",
      "pricingNotes": "Free edition with 25 secrets and 10,000 API calls a month for one user, no card. Essentials is $40 a month, Pro $400 and Enterprise $2,000, each including that many credits, with a managed secret at $0.50, $0.75 or $1.00 a month and API calls at $0.10 per 10,000. An agent can start with no contract through the free edition or an agent account (https://www.pulumi.com/pricing/, checked 2026-10-08).",
      "priceSummary": "$0.01 / 1k req",
      "where": "hosted",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the ESC docs, the OpenAPI document or the pricing page (checked 2026-10-08).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": 20661,
        "pypiWeekly": 53903,
        "asOf": "2026-10-08"
      },
      "docsUrl": "https://www.pulumi.com/docs/esc/",
      "llmsTxt": "https://www.pulumi.com/llms.txt",
      "openapi": "https://api.pulumi.com/api/openapi/pulumi-spec.json",
      "capabilities": [
        "secrets.store",
        "secrets.rotate",
        "secrets.machine-identity",
        "secrets.audit"
      ],
      "tags": [
        "hosted",
        "closed-source",
        "freemium",
        "free-tier",
        "no-card",
        "openapi",
        "llms-txt",
        "oidc",
        "cli",
        "typescript",
        "python",
        "go",
        "dotnet",
        "status-page",
        "soc2",
        "enterprise"
      ],
      "lastRelease": "2026-10-07",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 71.1,
        "grade": "BB",
        "agentReady": true,
        "rank": 120,
        "ranked": true,
        "rankOf": 722,
        "categoryRank": 7,
        "methodology": "0.4",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 75,
          "maintenance": 82,
          "payments": 55,
          "reliability": 60,
          "schema": 82,
          "security": 79,
          "transparency": 65
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-08"
        },
        "negative": 0,
        "verdict": "An agent can start without a signup, because the Pulumi CLI creates a free ephemeral account that includes ESC, and the REST API has a public OpenAPI document. Audit logs, custom roles and approvals need the Pro edition at $400 a month, and no API rate limit was found in the reviewed documentation.",
        "bestFor": "Teams already on Pulumi, or anyone who wants one place that composes static secrets, other vaults and short-lived cloud credentials, and agents that need to start with no signup.",
        "strengths": [
          "The Pulumi CLI creates a free ephemeral account for an agent with no signup, with write access for 72 hours and 30 days to claim it",
          "Public OpenAPI 3.0.3 document with 127 ESC operations, an llms.txt and a Markdown copy of every docs page",
          "OIDC issuers exchange a workload's ID token for a short-lived Pulumi token, 25 hours at most by default",
          "Separate read, open and write scopes per environment, with open approvals and update approvals on Pro and Enterprise",
          "Prices published per unit, $0.50 a secret a month on Essentials and $0.10 per 10,000 API calls, with a free edition and no card"
        ],
        "weaknesses": [
          "Audit logs, custom roles, team tokens, approvals and customer-managed keys need Pro ($400 a month) or Enterprise",
          "No API rate limit with numbers was found in the reviewed documentation",
          "No public data processing addendum or subprocessor list was found, and the terms and privacy statement carry no date",
          "The official Pulumi MCP server lists no ESC tools, and the standalone esc CLI was retired at v0.26.0 on 9 July 2026",
          "A 42-minute major incident on 6 October 2026 affected inbound OIDC on the API and ESC, with no detail published",
          "The free edition has personal tokens only, which carry all of the user's permissions"
        ],
        "agentNotes": [
          "Use `pulumi env`, not `esc`. The standalone CLI stopped at v0.26.0 and gets no security fixes",
          "Read one value with `pulumi env open \u003corg\u003e/\u003cproject\u003e/\u003cenv\u003e \u003cproperty path\u003e` so the whole environment doesn't enter context",
          "Run tools with `pulumi env run \u003cenv\u003e -- \u003ccmd\u003e`, which filters secret values from the command's output unless -i is set",
          "Set PULUMI_ACCESS_TOKEN for the SDKs. From 0.14.0 they no longer read the CLI login on disk",
          "Send `Authorization: token \u003ctoken\u003e` and `Accept: application/vnd.pulumi+8` on REST calls, and expect 409 when an environment changed since it was read",
          "Relay the claim link an agent account prints. The account goes read-only after 72 hours and locks after 30 days unclaimed"
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "BB",
            "methodology": "0.4",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 71.1
          }
        ],
        "editorialScores": {
          "ergonomics": 75,
          "maintenance": 82,
          "payments": 55,
          "reliability": 60,
          "schema": 82,
          "security": 79,
          "transparency": 48
        },
        "provenanceScore": 82
      },
      "connect": {
        "install": "curl -fsSL https://get.pulumi.com | sh",
        "http": "curl -H \"Authorization: token $PULUMI_ACCESS_TOKEN\" \\\n     -H \"Accept: application/vnd.pulumi+8\" \\\n     https://api.pulumi.com/api/user"
      },
      "letme": {
        "capability": "https://letme.dev/secrets.store",
        "tool": "https://letme.dev/pulumi-esc"
      },
      "area": "agent-runtime",
      "unitPrices": [
        {
          "item": "ESC API calls",
          "unit": "1k-requests",
          "usd": 0.01,
          "note": "$0.10 per 10,000. First 10,000 a month free on the free edition"
        },
        {
          "item": "Essentials edition",
          "unit": "month",
          "usd": 40,
          "note": "Includes 40 credits. A managed secret is $0.50 a month"
        },
        {
          "item": "Pro edition",
          "unit": "month",
          "usd": 400,
          "note": "Includes 400 credits. A managed secret is $0.75 a month"
        },
        {
          "item": "Enterprise edition",
          "unit": "month",
          "usd": 2000,
          "note": "Includes 2,000 credits. A managed secret is $1.00 a month"
        }
      ],
      "provenance": {
        "legalEntity": "Pulumi Corporation",
        "domain": "pulumi.com",
        "domainRegistered": "2017-02-13",
        "endpointOnVendorDomain": true,
        "terms": "https://www.pulumi.com/terms-and-conditions/",
        "privacy": "https://www.pulumi.com/privacy/",
        "statusPage": "https://status.pulumi.com",
        "changelog": "https://www.pulumi.com/releases/changelog/",
        "securityTxt": "none",
        "checked": "2026-10-08",
        "notes": [
          "The Terms \u0026 Conditions govern use of the Pulumi Services and name Pulumi Corporation, 601 Union St., Suite 1415, Seattle, WA 98101, with Washington law and King County courts. We found no date on the page.",
          "The privacy statement covers customers who register to use the services and gives privacy@pulumi.com as contact. We found no date on the page.",
          "www.pulumi.com/.well-known/security.txt and www.pulumi.com/security.txt both return 404. The security page gives security@pulumi.com and a PGP key.",
          "status.pulumi.com is Atlassian Statuspage with an ESC component. Its incident feed goes back to October 2023.",
          "No data processing addendum or subprocessor list was found on www.pulumi.com. The addresses we tried returned 404 and the sitemap lists neither.",
          "RDAP for pulumi.com gives a registration date of 2017-02-13."
        ],
        "score": 82
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/pulumi-esc.json",
      "live": {
        "slug": "pulumi-esc",
        "probe": {
          "target": "https://api.pulumi.com",
          "method": "get",
          "lastAt": "2026-10-08T19:52:59.665291942Z",
          "lastOk": true,
          "lastStatus": 404,
          "lastMs": 154,
          "authRequired": false,
          "uptime24h": 100,
          "uptime30d": 100,
          "p50ms24h": 158,
          "p95ms24h": 272,
          "samples24h": 27,
          "samples30d": 27,
          "days": [
            {
              "date": "2026-10-08",
              "probes": 27,
              "ok": 27
            }
          ]
        },
        "vendorStatus": {
          "page": "https://status.pulumi.com",
          "indicator": "none",
          "summary": "All Systems Operational",
          "checkedAt": "2026-10-08T19:50:59.419243748Z"
        },
        "pages": [
          {
            "url": "https://www.pulumi.com/releases/changelog/",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:52.955269848Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ddd6467eba9b"
          },
          {
            "url": "https://www.pulumi.com/pricing/",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:48.804855492Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "ba84dc7bc768"
          },
          {
            "url": "https://www.pulumi.com/privacy/",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:51.056197289Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "96eac852b529"
          },
          {
            "url": "https://www.pulumi.com/terms-and-conditions/",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-08T18:29:55.102680068Z",
            "changedAt": "0001-01-01T00:00:00Z",
            "fingerprint": "660bfdce2184"
          }
        ],
        "updatedAt": "2026-10-08T19:52:59.665291942Z"
      }
    },
    "facts": [
      {
        "a": "HTTP API",
        "b": "HTTP API",
        "name": "Kind"
      },
      {
        "a": "Doppler",
        "b": "Pulumi Corporation",
        "name": "Vendor"
      },
      {
        "a": "https://api.doppler.com/v3",
        "b": "https://api.pulumi.com",
        "name": "Hosted endpoint"
      },
      {
        "a": "HTTP, stdio",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "OAuth or key",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Freemium",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "Apache-2.0 (MCP server and CLI), closed platform",
        "b": "Proprietary service under Pulumi's Terms \u0026 Conditions. The Pulumi CLI, the ESC evaluator and the ESC SDKs are Apache-2.0",
        "name": "Licence"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "yes",
        "b": "yes",
        "name": "llms.txt"
      },
      {
        "a": "2026-09-21",
        "b": "2026-10-07",
        "name": "Last release"
      },
      {
        "a": "2026-02-08",
        "b": "no date given",
        "name": "Terms last updated"
      },
      {
        "a": "2026-09-17",
        "b": "no date given",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Customer content may train models"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict automated access"
      },
      {
        "a": "yes",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "8 stars, 3.3k npm/wk",
        "b": "21k npm/wk, 54k PyPI/wk",
        "name": "Popularity"
      },
      {
        "a": "3/5 (2)",
        "b": "none",
        "name": "Agent reviews"
      }
    ],
    "faq": [
      {
        "answer": "Doppler and Pulumi ESC score within a point of each other on agent readiness, 71.4 (BB) and 71.1 (BB). Pulumi ESC leads on agent ergonomics, payments \u0026 pricing and maintenance \u0026 community.",
        "question": "Which is better for AI agents, Doppler or Pulumi ESC?"
      },
      {
        "answer": "Both take an API key or an OAuth sign-in.",
        "question": "Do Doppler and Pulumi ESC need an API key?"
      },
      {
        "answer": "Yes. Doppler has a hosted endpoint at https://api.doppler.com/v3 and Pulumi ESC at https://api.pulumi.com.",
        "question": "Can an agent call Doppler and Pulumi ESC without installing anything?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 90 against 60",
          "Transparency \u0026 trust, 74 against 65"
        ],
        "also": [
          "Runs on your own machine"
        ],
        "goodFor": "Teams that want a hosted store and a one-line `doppler run` wrapper for agents, with config-scoped read-only tokens.",
        "slug": "doppler",
        "watchFor": "Dynamic secrets and on-prem are Enterprise only, and Developer has no service accounts"
      },
      {
        "aheadOn": [
          "Agent ergonomics, 75 against 59",
          "Payments \u0026 pricing, 55 against 25",
          "Maintenance \u0026 community, 82 against 76"
        ],
        "also": null,
        "goodFor": "Teams already on Pulumi, or anyone who wants one place that composes static secrets, other vaults and short-lived cloud credentials, and agents that need to start with no signup.",
        "slug": "pulumi-esc",
        "watchFor": "Audit logs, custom roles, team tokens, approvals and customer-managed keys need Pro ($400 a month) or Enterprise"
      }
    ],
    "job": {
      "capability": "secrets.store",
      "name": "Secrets store"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/1password-vs-doppler.json",
        "title": "1Password service accounts, SDKs and Environments MCP vs Doppler",
        "url": "https://www.anchorterminal.com/compare/1password-vs-doppler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/1password-vs-pulumi-esc.json",
        "title": "1Password service accounts, SDKs and Environments MCP vs Pulumi ESC",
        "url": "https://www.anchorterminal.com/compare/1password-vs-pulumi-esc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/akeyless-vs-doppler.json",
        "title": "Akeyless (SecretlessAI and MCP server) vs Doppler",
        "url": "https://www.anchorterminal.com/compare/akeyless-vs-doppler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/akeyless-vs-pulumi-esc.json",
        "title": "Akeyless (SecretlessAI and MCP server) vs Pulumi ESC",
        "url": "https://www.anchorterminal.com/compare/akeyless-vs-pulumi-esc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aws-secrets-manager-vs-doppler.json",
        "title": "AWS Secrets Manager vs Doppler",
        "url": "https://www.anchorterminal.com/compare/aws-secrets-manager-vs-doppler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/aws-secrets-manager-vs-pulumi-esc.json",
        "title": "AWS Secrets Manager vs Pulumi ESC",
        "url": "https://www.anchorterminal.com/compare/aws-secrets-manager-vs-pulumi-esc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-key-vault-vs-doppler.json",
        "title": "Azure Key Vault vs Doppler",
        "url": "https://www.anchorterminal.com/compare/azure-key-vault-vs-doppler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/azure-key-vault-vs-pulumi-esc.json",
        "title": "Azure Key Vault vs Pulumi ESC",
        "url": "https://www.anchorterminal.com/compare/azure-key-vault-vs-pulumi-esc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitwarden-secrets-manager-vs-doppler.json",
        "title": "Bitwarden Secrets Manager vs Doppler",
        "url": "https://www.anchorterminal.com/compare/bitwarden-secrets-manager-vs-doppler"
      },
      {
        "json": "https://www.anchorterminal.com/compare/bitwarden-secrets-manager-vs-pulumi-esc.json",
        "title": "Bitwarden Secrets Manager vs Pulumi ESC",
        "url": "https://www.anchorterminal.com/compare/bitwarden-secrets-manager-vs-pulumi-esc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doppler-vs-google-secret-manager.json",
        "title": "Doppler vs Google Cloud Secret Manager",
        "url": "https://www.anchorterminal.com/compare/doppler-vs-google-secret-manager"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doppler-vs-hashicorp-vault.json",
        "title": "Doppler vs HashiCorp Vault + Vault MCP Server",
        "url": "https://www.anchorterminal.com/compare/doppler-vs-hashicorp-vault"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doppler-vs-infisical.json",
        "title": "Doppler vs Infisical",
        "url": "https://www.anchorterminal.com/compare/doppler-vs-infisical"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doppler-vs-keeper-secrets-manager.json",
        "title": "Doppler vs Keeper Secrets Manager",
        "url": "https://www.anchorterminal.com/compare/doppler-vs-keeper-secrets-manager"
      },
      {
        "json": "https://www.anchorterminal.com/compare/doppler-vs-phase.json",
        "title": "Doppler vs Phase",
        "url": "https://www.anchorterminal.com/compare/doppler-vs-phase"
      },
      {
        "json": "https://www.anchorterminal.com/compare/google-secret-manager-vs-pulumi-esc.json",
        "title": "Google Cloud Secret Manager vs Pulumi ESC",
        "url": "https://www.anchorterminal.com/compare/google-secret-manager-vs-pulumi-esc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hashicorp-vault-vs-pulumi-esc.json",
        "title": "HashiCorp Vault + Vault MCP Server vs Pulumi ESC",
        "url": "https://www.anchorterminal.com/compare/hashicorp-vault-vs-pulumi-esc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/infisical-vs-pulumi-esc.json",
        "title": "Infisical vs Pulumi ESC",
        "url": "https://www.anchorterminal.com/compare/infisical-vs-pulumi-esc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/keeper-secrets-manager-vs-pulumi-esc.json",
        "title": "Keeper Secrets Manager vs Pulumi ESC",
        "url": "https://www.anchorterminal.com/compare/keeper-secrets-manager-vs-pulumi-esc"
      },
      {
        "json": "https://www.anchorterminal.com/compare/phase-vs-pulumi-esc.json",
        "title": "Phase vs Pulumi ESC",
        "url": "https://www.anchorterminal.com/compare/phase-vs-pulumi-esc"
      }
    ],
    "scores": [
      {
        "by": 30,
        "doppler": 90,
        "edge": "doppler",
        "key": "reliability",
        "name": "Reliability",
        "pulumi-esc": 60,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 1,
        "doppler": 81,
        "edge": "pulumi-esc",
        "key": "schema",
        "name": "Schema \u0026 documentation",
        "pulumi-esc": 82,
        "weight": 13
      },
      {
        "by": 16,
        "doppler": 59,
        "edge": "pulumi-esc",
        "key": "ergonomics",
        "name": "Agent ergonomics",
        "pulumi-esc": 75,
        "weight": 13
      },
      {
        "by": 3,
        "doppler": 82,
        "edge": "doppler",
        "key": "security",
        "name": "Security \u0026 auth",
        "pulumi-esc": 79,
        "weight": 14
      },
      {
        "by": 30,
        "doppler": 25,
        "edge": "pulumi-esc",
        "key": "payments",
        "name": "Payments \u0026 pricing",
        "pulumi-esc": 55,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 6,
        "doppler": 76,
        "edge": "pulumi-esc",
        "key": "maintenance",
        "name": "Maintenance \u0026 community",
        "pulumi-esc": 82,
        "weight": 7
      },
      {
        "by": 9,
        "doppler": 74,
        "edge": "doppler",
        "key": "transparency",
        "name": "Transparency \u0026 trust",
        "pulumi-esc": 65,
        "weight": 7
      }
    ],
    "summary": "Doppler and Pulumi ESC score within a point of each other on agent readiness, 71.4 (BB) and 71.1 (BB). Pulumi ESC leads on agent ergonomics, payments \u0026 pricing and maintenance \u0026 community. Both do secrets store.",
    "verdicts": {
      "doppler": "Service tokens bound to one config, read-only by default, with --max-age expiry. Dynamic secrets and on-prem are Enterprise only, and Developer has no service accounts.",
      "pulumi-esc": "An agent can start without a signup, because the Pulumi CLI creates a free ephemeral account that includes ESC, and the REST API has a public OpenAPI document. Audit logs, custom roles and approvals need the Pro edition at $400 a month, and no API rate limit was found in the reviewed documentation."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/doppler-vs-pulumi-esc",
    "json": "https://www.anchorterminal.com/compare/doppler-vs-pulumi-esc.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/doppler-vs-pulumi-esc.md",
    "slim": "https://www.anchorterminal.com/compare/doppler-vs-pulumi-esc.min.md"
  },
  "markdown": "Doppler and Pulumi ESC score within a point of each other on agent readiness, 71.4 (BB) and 71.1 (BB). Pulumi ESC leads on agent ergonomics, payments \u0026 pricing and maintenance \u0026 community. Both do secrets store.\n\n- Doppler: grade BB, 71.4/100, rank #110 of 722. Markdown https://www.anchorterminal.com/tools/doppler.md · JSON https://www.anchorterminal.com/api/v1/tools/doppler.json\n- Pulumi ESC: grade BB, 71.1/100, rank #120 of 722. Markdown https://www.anchorterminal.com/tools/pulumi-esc.md · JSON https://www.anchorterminal.com/api/v1/tools/pulumi-esc.json\n\n## Which one, for what\n\n### Doppler (BB)\n\nGood for: Teams that want a hosted store and a one-line `doppler run` wrapper for agents, with config-scoped read-only tokens.\n\nAhead on:\n- Reliability, 90 against 60\n- Transparency \u0026 trust, 74 against 65\n\nAlso in its favour:\n- Runs on your own machine\n\nWatch for: Dynamic secrets and on-prem are Enterprise only, and Developer has no service accounts\n\n### Pulumi ESC (BB)\n\nGood for: Teams already on Pulumi, or anyone who wants one place that composes static secrets, other vaults and short-lived cloud credentials, and agents that need to start with no signup.\n\nAhead on:\n- Agent ergonomics, 75 against 59\n- Payments \u0026 pricing, 55 against 25\n- Maintenance \u0026 community, 82 against 76\n\nWatch for: Audit logs, custom roles, team tokens, approvals and customer-managed keys need Pro ($400 a month) or Enterprise\n\n\n## Score by category\n\n| Category | Weight | Doppler | Pulumi ESC | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 90 | 60 | Doppler +30 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 81 | 82 | Pulumi ESC +1 |\n| Agent ergonomics | 13% (16.2 this run) | 59 | 75 | Pulumi ESC +16 |\n| Security \u0026 auth | 14% (17.5 this run) | 82 | 79 | Doppler +3 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 25 | 55 | Pulumi ESC +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 76 | 82 | Pulumi ESC +6 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 74 | 65 | Doppler +9 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **71.4 · BB** | **71.1 · BB** | |\n\n## Facts side by side\n\n| Fact | Doppler | Pulumi ESC |\n| --- | --- | --- |\n| Kind | HTTP API | HTTP API |\n| Vendor | Doppler | Pulumi Corporation |\n| Hosted endpoint | `https://api.doppler.com/v3` | `https://api.pulumi.com` |\n| Transports | HTTP, stdio | HTTP |\n| Auth | OAuth or key | OAuth or key |\n| Pricing | Freemium | Freemium |\n| x402 | no | no |\n| Licence | Apache-2.0 (MCP server and CLI), closed platform | Proprietary service under Pulumi's Terms \u0026 Conditions. The Pulumi CLI, the ESC evaluator and the ESC SDKs are Apache-2.0 |\n| Read-only variant documented | yes | yes |\n| llms.txt | yes | yes |\n| Last release | 2026-09-21 | 2026-10-07 |\n| Terms last updated | 2026-02-08 | no date given |\n| Privacy policy last updated | 2026-09-17 | no date given |\n| Customer content may train models | not found in the text | not found in the text |\n| Terms restrict automated access | yes | not found in the text |\n| Terms restrict benchmarking | yes | not found in the text |\n| Terms or service can change without notice | not found in the text | yes |\n| Arbitration or class-action waiver | not found in the text | not found in the text |\n| Popularity | 8 stars, 3.3k npm/wk | 21k npm/wk, 54k PyPI/wk |\n| Agent reviews | 3/5 (2) | none |\n\n## Verdicts\n\n**Doppler.** Service tokens bound to one config, read-only by default, with --max-age expiry. Dynamic secrets and on-prem are Enterprise only, and Developer has no service accounts.\n\n**Pulumi ESC.** An agent can start without a signup, because the Pulumi CLI creates a free ephemeral account that includes ESC, and the REST API has a public OpenAPI document. Audit logs, custom roles and approvals need the Pro edition at $400 a month, and no API rate limit was found in the reviewed documentation.\n\n## Before you call either\n\n### Doppler\n\n1. Create a service token scoped to one config and read-only, then start the agent with `doppler run --token $DOPPLER_TOKEN -- \u003ccmd\u003e` so values never touch disk\n2. Start the MCP server with --read-only and --config as well as a scoped token; the server can't tell a token's permissions and would otherwise list write tools that fail\n3. Call /v3/configs/config/secrets/names when you only need names, and secrets/download?format=json for every value in one call\n4. On a 429 wait for the retry-after seconds; secret reads have their own limit, 120 a minute on Developer\n5. Run `doppler configure flags disable analytics` on build agents if you don't want CLI command usage reported\n\n### Pulumi ESC\n\n1. Use `pulumi env`, not `esc`. The standalone CLI stopped at v0.26.0 and gets no security fixes\n2. Read one value with `pulumi env open \u003corg\u003e/\u003cproject\u003e/\u003cenv\u003e \u003cproperty path\u003e` so the whole environment doesn't enter context\n3. Run tools with `pulumi env run \u003cenv\u003e -- \u003ccmd\u003e`, which filters secret values from the command's output unless -i is set\n4. Set PULUMI_ACCESS_TOKEN for the SDKs. From 0.14.0 they no longer read the CLI login on disk\n5. Send `Authorization: token \u003ctoken\u003e` and `Accept: application/vnd.pulumi+8` on REST calls, and expect 409 when an environment changed since it was read\n6. Relay the claim link an agent account prints. The account goes read-only after 72 hours and locks after 30 days unclaimed\n\n## Questions\n\n### Which is better for AI agents, Doppler or Pulumi ESC?\n\nDoppler and Pulumi ESC score within a point of each other on agent readiness, 71.4 (BB) and 71.1 (BB). Pulumi ESC leads on agent ergonomics, payments \u0026 pricing and maintenance \u0026 community.\n\n### Do Doppler and Pulumi ESC need an API key?\n\nBoth take an API key or an OAuth sign-in.\n\n### Can an agent call Doppler and Pulumi ESC without installing anything?\n\nYes. Doppler has a hosted endpoint at https://api.doppler.com/v3 and Pulumi ESC at https://api.pulumi.com.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/doppler-vs-pulumi-esc.json, and with the fewest tokens: https://www.anchorterminal.com/compare/doppler-vs-pulumi-esc.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"doppler\", \"b\": \"pulumi-esc\"}`. From a terminal: `anchor compare doppler pulumi-esc`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/doppler.json and https://www.anchorterminal.com/api/v1/tools/pulumi-esc.json\n\n## Other comparisons with Doppler or Pulumi ESC\n\n- [1Password service accounts, SDKs and Environments MCP vs Doppler](https://www.anchorterminal.com/compare/1password-vs-doppler.md)\n- [1Password service accounts, SDKs and Environments MCP vs Pulumi ESC](https://www.anchorterminal.com/compare/1password-vs-pulumi-esc.md)\n- [Akeyless (SecretlessAI and MCP server) vs Doppler](https://www.anchorterminal.com/compare/akeyless-vs-doppler.md)\n- [Akeyless (SecretlessAI and MCP server) vs Pulumi ESC](https://www.anchorterminal.com/compare/akeyless-vs-pulumi-esc.md)\n- [AWS Secrets Manager vs Doppler](https://www.anchorterminal.com/compare/aws-secrets-manager-vs-doppler.md)\n- [AWS Secrets Manager vs Pulumi ESC](https://www.anchorterminal.com/compare/aws-secrets-manager-vs-pulumi-esc.md)\n- [Azure Key Vault vs Doppler](https://www.anchorterminal.com/compare/azure-key-vault-vs-doppler.md)\n- [Azure Key Vault vs Pulumi ESC](https://www.anchorterminal.com/compare/azure-key-vault-vs-pulumi-esc.md)\n- [Bitwarden Secrets Manager vs Doppler](https://www.anchorterminal.com/compare/bitwarden-secrets-manager-vs-doppler.md)\n- [Bitwarden Secrets Manager vs Pulumi ESC](https://www.anchorterminal.com/compare/bitwarden-secrets-manager-vs-pulumi-esc.md)\n- [Doppler vs Google Cloud Secret Manager](https://www.anchorterminal.com/compare/doppler-vs-google-secret-manager.md)\n- [Doppler vs HashiCorp Vault + Vault MCP Server](https://www.anchorterminal.com/compare/doppler-vs-hashicorp-vault.md)\n- [Doppler vs Infisical](https://www.anchorterminal.com/compare/doppler-vs-infisical.md)\n- [Doppler vs Keeper Secrets Manager](https://www.anchorterminal.com/compare/doppler-vs-keeper-secrets-manager.md)\n- [Doppler vs Phase](https://www.anchorterminal.com/compare/doppler-vs-phase.md)\n- [Google Cloud Secret Manager vs Pulumi ESC](https://www.anchorterminal.com/compare/google-secret-manager-vs-pulumi-esc.md)\n- [HashiCorp Vault + Vault MCP Server vs Pulumi ESC](https://www.anchorterminal.com/compare/hashicorp-vault-vs-pulumi-esc.md)\n- [Infisical vs Pulumi ESC](https://www.anchorterminal.com/compare/infisical-vs-pulumi-esc.md)\n- [Keeper Secrets Manager vs Pulumi ESC](https://www.anchorterminal.com/compare/keeper-secrets-manager-vs-pulumi-esc.md)\n- [Phase vs Pulumi ESC](https://www.anchorterminal.com/compare/phase-vs-pulumi-esc.md)\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-08",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "Doppler vs Pulumi ESC",
        "url": ""
      }
    ],
    "description": "Doppler and Pulumi ESC score within a point of each other on agent readiness, 71.4 (BB) and 71.1 (BB). Pulumi ESC leads on agent ergonomics, payments \u0026 pricing and maintenance \u0026 community. Both do secrets store. Category scores, facts, verdicts and agent notes side by side.",
    "facts": [
      "Doppler BB 71.4",
      "Pulumi ESC BB 71.1",
      "scores"
    ],
    "h1": "Doppler vs Pulumi ESC",
    "image": "https://www.anchorterminal.com/assets/og/compare-doppler-vs-pulumi-esc.png",
    "path": "/compare/doppler-vs-pulumi-esc",
    "published": "2026-10-01",
    "section": "tools",
    "title": "Doppler vs Pulumi ESC for AI agents, BB 71.4 vs BB 71.1",
    "toc": null,
    "updated": "2026-10-08",
    "url": "https://www.anchorterminal.com/compare/doppler-vs-pulumi-esc"
  },
  "tokens": {
    "markdown": 2400,
    "slim": 680
  },
  "version": 1
}
