{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-09",
    "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"
  },
  "tool": {
    "slug": "langmem",
    "name": "LangMem",
    "vendor": "LangChain",
    "vendorUrl": "https://www.langchain.com",
    "kind": "sdk",
    "category": "agent-memory",
    "summary": "LangMem is LangChain's open-source Python library for long-term agent memory. It extracts facts from conversations with an LLM, stores and searches them in a LangGraph store the owner runs, and includes two memory tools, message summarisation and prompt optimisation.",
    "url": "https://www.anchorterminal.com/tools/langmem",
    "markdownUrl": "https://www.anchorterminal.com/tools/langmem.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/langmem.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/langmem.json",
    "repo": "https://github.com/langchain-ai/langmem",
    "license": "MIT",
    "transports": [],
    "packages": [
      {
        "registry": "pypi",
        "name": "langmem"
      }
    ],
    "auth": "none",
    "authNotes": "The library has no account or key of its own. It runs in the owner's process and needs a key for the chosen LLM provider (the README uses `ANTHROPIC_API_KEY`) and, for semantic search, an embedding provider. Access to memories is whatever the owner's LangGraph store and namespace settings allow.",
    "pricing": "free",
    "pricingNotes": "Free under the MIT licence, with nothing to buy and no signup. The owner pays for the LLM calls that extract memories, the embedding calls behind search, and the database behind the store (https://github.com/langchain-ai/langmem).",
    "priceSummary": "Free · OSS",
    "where": "local",
    "x402": {
      "level": "no",
      "evidence": "No x402, MPP or L402 in the docs or the source (checked 2026-10-08).",
      "endpoints": []
    },
    "toolCount": null,
    "popularity": {
      "githubStars": 1698,
      "npmWeekly": null,
      "pypiWeekly": 214379,
      "asOf": "2026-10-08"
    },
    "docsUrl": "https://langchain-ai.github.io/langmem/",
    "capabilities": [
      "memory.store",
      "memory.search",
      "memory.user",
      "memory.delete"
    ],
    "tags": [
      "sdk",
      "open-source",
      "self-hosted",
      "local",
      "python",
      "free",
      "langgraph",
      "pre-1.0"
    ],
    "lastRelease": "2025-10-27",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 47.9,
      "grade": "D",
      "agentReady": false,
      "rank": 734,
      "ranked": true,
      "rankOf": 842,
      "categoryRank": 9,
      "methodology": "0.4",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 66,
        "maintenance": 15,
        "payments": 60,
        "reliability": 32,
        "schema": 55,
        "security": 45,
        "transparency": 59
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 32,
          "points": 6.4,
          "reason": "Local-software reading. Installs from PyPI as `langmem` with Python 3.10 or later declared, but `extraction.py` on main uses `typing.NotRequired`, which arrived in Python 3.11, and issues 81 and 83 about failed imports on 3.10 are open. We read the source and did not run it on 3.10 (14 of 20). The repository holds tests (30 summarisation tests and a docstring-example runner), but its two workflows only deploy docs and publish to PyPI, so no public CI runs them (5 of 25). 54 open issues, 23 with no comment, among them a `TypeError` in summarisation from November 2025 (135), a schema mismatch between the tool and the store manager (138) and search missing memories written by the store manager (140) (8 of 25). Versions are 0.0.x with no changelog, GitHub releases or tags, and open issue 130 shows 0.0.30 was cut to restore compatibility with LangGraph 1.0 (5 of 15). Below 1.0 and not declared stable (0)."
        },
        {
          "key": "performance",
          "name": "Performance",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Latency is measured per call by our probes, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until the first probe window closes."
        },
        {
          "key": "schema",
          "name": "Schema \u0026 documentation",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 55,
          "points": 8.94,
          "reason": "Library reading, with the tool lines applied to the two agent tools. No OpenAPI applies. Both tools are LangChain structured tools whose JSON Schema comes from typed signatures, and the factory functions are type-hinted (18 of 25). langchain-ai.github.io/langmem/llms.txt returns 404 (0). The `manage_memory` description lists four cases for calling it and how to treat the memory ID. `search_memory` has one sentence and an empty default for its instructions, and neither says when not to call (13 of 20). `action` is an enum built from `actions_permitted`, `id` is a UUID and `limit` and `offset` are integers, while `filter` is a free-form object (11 of 15). Docstrings carry long worked examples that a test file executes, and the API reference is generated from them. Error behaviour is not documented (10 of 15). Version numbers exist only on PyPI, with no changelog (3 of 15)."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 66,
          "points": 10.73,
          "reason": "Two tools with short descriptions (25). `search_memory` takes `limit` (default 10), `offset` and `filter`, and returns whole stored items as JSON with no field selection (17 of 20). Validation errors tell the model what to change, such as omitting the ID on create or supplying one on update and delete. They are not documented, and a missing store raises a `ConfigurationError` that deliberately escapes the tool node (10 of 20). Update and delete by ID are safe to repeat. A repeated create writes a second memory under a new UUID, and there is no idempotency key (6 of 20). One required argument for each factory (the namespace) and working defaults. Python only, with an open request for TypeScript (issue 121) (8 of 15)."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 45,
          "points": 7.88,
          "reason": "Local-software reading. The library holds no credential of its own and opens no port. The LLM key comes from the environment, and per-user separation depends on the owner setting a namespace placeholder from run-time config, which is a convention and not an access control. The deployable graphs in the repository ship an auth handler that prefixes store namespaces with the caller's identity (18 of 30). `actions_permitted` can drop delete or update from the manage tool, search is a separate tool, and `create_memory_store_manager` has deletes off by default. Nothing asks for confirmation before a delete (14 of 20). Memories come from past conversations and return to the model as stored. No guidance on poisoning or injection was found, and issues 163 and 164 proposing a guard (May 2026) have no reply (0 of 15). No audit log in the library. Store items carry created and updated timestamps (3 of 15). The organisation's SECURITY.md points to two Intigriti disclosure programmes, and an August 2026 commit resolves open Dependabot alerts. No `SECURITY.md` in this repository, no published advisories, no security.txt on langchain.com, and no certification was checked (10 of 20)."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 60,
          "points": 7.5,
          "reason": "MIT-licensed package the owner runs, with nothing to buy for LangMem itself, read with the self-hosted rule. 20 for pricing, 20 for a free start and 20 for use without an account. No x402, MPP or L402 in the docs or source (0). LLM, embedding and database costs are the owner's."
        },
        {
          "key": "tasks",
          "name": "Task success",
          "weight": 10,
          "effectiveWeight": 0,
          "pending": true,
          "points": 0,
          "reason": "Pending. Task success needs the category task suites run through each tool, which haven't run yet, so this run doesn't score it. Its weight is shared across the assessed categories until then. A data provider's data-quality score is published on its listing now and becomes half of this category when it's scored."
        },
        {
          "key": "maintenance",
          "name": "Maintenance \u0026 community",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 15,
          "points": 1.31,
          "reason": "0.0.30 reached PyPI on 27 October 2025, 346 days before the check (0). No release in the last 90 days (0). Of 54 open issues 23 have no comment, 19 pull requests are open with the oldest from June 2025, and nine of the ten pull requests opened since 1 August 2026 have no comment. The four issues filed between 5 and 8 October 2026 are too new to count against it (5 of 25). One Python package, current on PyPI only as the year-old 0.0.30, and no TypeScript package (5 of 15). Dependabot updates the lockfile, with the latest merge on 2 October 2026 and a pass over open alerts in August, but no workflow runs tests (5 of 10)."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 59,
          "points": 5.16,
          "note": "editorial 63, provenance 55",
          "reason": "MIT licence in the repository and on PyPI (30). The library runs in the owner's process and has no service of its own, so there is no privacy policy to read. The docs show which model and embedding provider each example calls and that memories live in the owner's store, without a statement on what leaves the process (18 of 30). No deprecation policy or dated notices were found (0 of 20). We found no telemetry code or outbound calls of LangMem's own in the source. Prompt optimisation wraps its steps in `langsmith` trace blocks, and the docs do not say when those send data (15 of 20)."
        }
      ],
      "assessment": {
        "date": "2026-10-08",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "Two tools with short descriptions (25). `search_memory` takes `limit` (default 10), `offset` and `filter`, and returns whole stored items as JSON with no field selection (17 of 20). Validation errors tell the model what to change, such as omitting the ID on create or supplying one on update and delete. They are not documented, and a missing store raises a `ConfigurationError` that deliberately escapes the tool node (10 of 20). Update and delete by ID are safe to repeat. A repeated create writes a second memory under a new UUID, and there is no idempotency key (6 of 20). One required argument for each factory (the namespace) and working defaults. Python only, with an open request for TypeScript (issue 121) (8 of 15).",
          "maintenance": "0.0.30 reached PyPI on 27 October 2025, 346 days before the check (0). No release in the last 90 days (0). Of 54 open issues 23 have no comment, 19 pull requests are open with the oldest from June 2025, and nine of the ten pull requests opened since 1 August 2026 have no comment. The four issues filed between 5 and 8 October 2026 are too new to count against it (5 of 25). One Python package, current on PyPI only as the year-old 0.0.30, and no TypeScript package (5 of 15). Dependabot updates the lockfile, with the latest merge on 2 October 2026 and a pass over open alerts in August, but no workflow runs tests (5 of 10).",
          "payments": "MIT-licensed package the owner runs, with nothing to buy for LangMem itself, read with the self-hosted rule. 20 for pricing, 20 for a free start and 20 for use without an account. No x402, MPP or L402 in the docs or source (0). LLM, embedding and database costs are the owner's.",
          "reliability": "Local-software reading. Installs from PyPI as `langmem` with Python 3.10 or later declared, but `extraction.py` on main uses `typing.NotRequired`, which arrived in Python 3.11, and issues 81 and 83 about failed imports on 3.10 are open. We read the source and did not run it on 3.10 (14 of 20). The repository holds tests (30 summarisation tests and a docstring-example runner), but its two workflows only deploy docs and publish to PyPI, so no public CI runs them (5 of 25). 54 open issues, 23 with no comment, among them a `TypeError` in summarisation from November 2025 (135), a schema mismatch between the tool and the store manager (138) and search missing memories written by the store manager (140) (8 of 25). Versions are 0.0.x with no changelog, GitHub releases or tags, and open issue 130 shows 0.0.30 was cut to restore compatibility with LangGraph 1.0 (5 of 15). Below 1.0 and not declared stable (0).",
          "schema": "Library reading, with the tool lines applied to the two agent tools. No OpenAPI applies. Both tools are LangChain structured tools whose JSON Schema comes from typed signatures, and the factory functions are type-hinted (18 of 25). langchain-ai.github.io/langmem/llms.txt returns 404 (0). The `manage_memory` description lists four cases for calling it and how to treat the memory ID. `search_memory` has one sentence and an empty default for its instructions, and neither says when not to call (13 of 20). `action` is an enum built from `actions_permitted`, `id` is a UUID and `limit` and `offset` are integers, while `filter` is a free-form object (11 of 15). Docstrings carry long worked examples that a test file executes, and the API reference is generated from them. Error behaviour is not documented (10 of 15). Version numbers exist only on PyPI, with no changelog (3 of 15).",
          "security": "Local-software reading. The library holds no credential of its own and opens no port. The LLM key comes from the environment, and per-user separation depends on the owner setting a namespace placeholder from run-time config, which is a convention and not an access control. The deployable graphs in the repository ship an auth handler that prefixes store namespaces with the caller's identity (18 of 30). `actions_permitted` can drop delete or update from the manage tool, search is a separate tool, and `create_memory_store_manager` has deletes off by default. Nothing asks for confirmation before a delete (14 of 20). Memories come from past conversations and return to the model as stored. No guidance on poisoning or injection was found, and issues 163 and 164 proposing a guard (May 2026) have no reply (0 of 15). No audit log in the library. Store items carry created and updated timestamps (3 of 15). The organisation's SECURITY.md points to two Intigriti disclosure programmes, and an August 2026 commit resolves open Dependabot alerts. No `SECURITY.md` in this repository, no published advisories, no security.txt on langchain.com, and no certification was checked (10 of 20).",
          "transparency": "MIT licence in the repository and on PyPI (30). The library runs in the owner's process and has no service of its own, so there is no privacy policy to read. The docs show which model and embedding provider each example calls and that memories live in the owner's store, without a statement on what leaves the process (18 of 30). No deprecation policy or dated notices were found (0 of 20). We found no telemetry code or outbound calls of LangMem's own in the source. Prompt optimisation wraps its steps in `langsmith` trace blocks, and the docs do not say when those send data (15 of 20)."
        },
        "sources": [
          {
            "what": "repository, README, licence, workflows and source (shallow clone of main at 48e3c11)",
            "url": "https://github.com/langchain-ai/langmem",
            "seen": "2026-10-08"
          },
          {
            "what": "memory tools source",
            "url": "https://github.com/langchain-ai/langmem/blob/main/src/langmem/knowledge/tools.py",
            "seen": "2026-10-08"
          },
          {
            "what": "memory manager source",
            "url": "https://github.com/langchain-ai/langmem/blob/main/src/langmem/knowledge/extraction.py",
            "seen": "2026-10-08"
          },
          {
            "what": "PyPI metadata and release history",
            "url": "https://pypi.org/pypi/langmem/json",
            "seen": "2026-10-08"
          },
          {
            "what": "PyPI downloads",
            "url": "https://pypistats.org/api/packages/langmem/recent",
            "seen": "2026-10-08"
          },
          {
            "what": "docs site",
            "url": "https://langchain-ai.github.io/langmem/",
            "seen": "2026-10-08"
          },
          {
            "what": "memory tools guide",
            "url": "https://langchain-ai.github.io/langmem/guides/memory_tools/",
            "seen": "2026-10-08"
          },
          {
            "what": "llms.txt (404)",
            "url": "https://langchain-ai.github.io/langmem/llms.txt",
            "seen": "2026-10-08"
          },
          {
            "what": "repository metadata, stars and open issue count",
            "url": "https://api.github.com/repos/langchain-ai/langmem",
            "seen": "2026-10-08"
          },
          {
            "what": "open issues and pull requests",
            "url": "https://github.com/langchain-ai/langmem/issues",
            "seen": "2026-10-08"
          },
          {
            "what": "issue 154, nine comments and none from a maintainer",
            "url": "https://github.com/langchain-ai/langmem/issues/154",
            "seen": "2026-10-08"
          },
          {
            "what": "repository security advisories (empty)",
            "url": "https://api.github.com/repos/langchain-ai/langmem/security-advisories",
            "seen": "2026-10-08"
          },
          {
            "what": "LangChain organisation security policy",
            "url": "https://github.com/langchain-ai/.github/blob/main/SECURITY.md",
            "seen": "2026-10-08"
          },
          {
            "what": "security.txt (404)",
            "url": "https://www.langchain.com/.well-known/security.txt",
            "seen": "2026-10-08"
          },
          {
            "what": "RDAP for langchain.com",
            "url": "https://rdap.verisign.com/com/v1/domain/langchain.com",
            "seen": "2026-10-08"
          }
        ],
        "openQuestions": [
          "We read `typing.NotRequired` in the source and the two open issues but did not run the package on Python 3.10.",
          "Maintainer response is judged from comment counts on open issues and one thread read in full. Closed issues were not sampled.",
          "unchecked: whether `langsmith` trace blocks in the prompt optimisers send anything without tracing environment variables set.",
          "unchecked: LangChain's certifications and the terms of its hosted products, which do not govern this library.",
          "Whether LangChain plans further LangMem releases is not stated in the repository or docs.",
          "Issues 196 and 198, filed on 8 October 2026, report that the store manager returns success when a write fails and ignores `query_limit` above the store default. Neither was verified."
        ]
      },
      "negative": 0,
      "verdict": "Two compact, typed memory tools and a background extraction manager work with any LangGraph store, under the MIT licence with nothing to buy. The newest PyPI release, 0.0.30, dates from 27 October 2025. The repository has no changelog, tags or test workflow, and 23 of 54 open issues have no reply.",
      "bestFor": "Teams already on LangGraph that want memory tools and background extraction over a store they run.",
      "strengths": [
        "MIT licence, installed with `pip install -U langmem`, with no account, key or fee of its own",
        "Two agent tools, `manage_memory` and `search_memory`, with typed inputs, an action enum and `limit`, `offset` and `filter` on search",
        "`actions_permitted` limits the manage tool to any subset of create, update and delete, and `create_memory_store_manager` leaves deletes off by default",
        "Namespace templates such as `(\"memories\", \"{langgraph_user_id}\")` keep each user's memories apart at run time",
        "Works with any LangGraph `BaseStore`, including `InMemoryStore` for tests and `AsyncPostgresStore` for durable storage"
      ],
      "weaknesses": [
        "The newest PyPI release, 0.0.30, is from 27 October 2025, and every commit to `src` on main is older than that",
        "No changelog, GitHub releases or tags, and versions are still 0.0.x",
        "The repository's two workflows deploy docs and publish to PyPI. Neither runs the tests",
        "54 open issues, 23 with no comment, and 19 open pull requests, the oldest from June 2025",
        "No guidance on memory poisoning or prompt injection found, and two open issues asking for it (May 2026) have no reply"
      ],
      "agentNotes": [
        "Pass a store with an embedding index (`index={\"dims\": 1536, \"embed\": \"openai:text-embedding-3-small\"}`), or `search_memory` cannot rank by meaning",
        "Use a database-backed store such as `AsyncPostgresStore` for anything that must survive a restart. `InMemoryStore` loses everything",
        "Put a per-user placeholder in the namespace and set it in `config[\"configurable\"]` on every call, or users share one memory space",
        "Send the memory `id` with `update` and `delete`, and never with `create`. A retried `create` writes a duplicate under a new UUID",
        "Run on Python 3.11 or later. `src/langmem/knowledge/extraction.py` uses `typing.NotRequired`, which Python 3.10 lacks"
      ],
      "metrics": {
        "kind": "local",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "medium",
          "grade": "D",
          "methodology": "0.4",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 47.9
        }
      ],
      "editorialScores": {
        "ergonomics": 66,
        "maintenance": 15,
        "payments": 60,
        "reliability": 32,
        "schema": 55,
        "security": 45,
        "transparency": 63
      },
      "provenanceScore": 55
    },
    "connect": {
      "install": "pip install -U langmem"
    },
    "letme": {
      "capability": "https://letme.dev/memory.store",
      "tool": "https://letme.dev/langmem"
    },
    "sameCompany": [
      "langgraph",
      "langsmith"
    ],
    "notable": [
      "The public API is ten names, among them `create_manage_memory_tool`, `create_search_memory_tool`, `create_memory_manager`, `create_memory_store_manager`, `create_prompt_optimizer` and `ReflectionExecutor` (https://github.com/langchain-ai/langmem/blob/main/src/langmem/__init__.py)",
      "`manage_memory` takes `content`, an `action` of create, update or delete, and an `id`. `search_memory` takes `query`, `limit` (default 10), `offset` and `filter` (https://github.com/langchain-ai/langmem/blob/main/src/langmem/knowledge/tools.py)",
      "PyPI lists 52 releases. The newest is 0.0.30 from 27 October 2025, with 0.0.29 on 28 July 2025 before it (https://pypi.org/project/langmem/)",
      "Commits to main since November 2025 are dependency updates and docs fixes. The last change under `src` is dated 28 July 2025 (https://github.com/langchain-ai/langmem/commits/main)",
      "The package declares Python 3.10 or later, while `extraction.py` on main uses `typing.NotRequired` from Python 3.11, and issues 81 and 83 about failed imports on 3.10 are open (https://github.com/langchain-ai/langmem/issues/81)",
      "LangChain's organisation security policy sends reports to two vulnerability disclosure programmes on Intigriti. The repository has no `SECURITY.md` of its own and no published advisories (https://github.com/langchain-ai/.github/blob/main/SECURITY.md)"
    ],
    "area": "agent-runtime",
    "details": [
      {
        "label": "Interface",
        "value": "Python library, `langmem` 0.0.30 on PyPI. No HTTP API, MCP server, CLI or npm package"
      },
      {
        "label": "Agent tools",
        "value": "Two LangChain tools. `manage_memory` (create, update, delete) and `search_memory` (query, limit, offset, filter)"
      },
      {
        "label": "Background memory",
        "value": "`create_memory_manager` returns extracted memories. `create_memory_store_manager` searches, inserts, updates and optionally deletes in the store. `ReflectionExecutor` delays and debounces the work"
      },
      {
        "label": "Storage",
        "value": "Any LangGraph `BaseStore` the owner supplies. The docs use `InMemoryStore` and name `AsyncPostgresStore` for production"
      },
      {
        "label": "Models",
        "value": "Any LangChain chat model by name or instance. `langchain-openai` and `langchain-anthropic` are required dependencies"
      },
      {
        "label": "Other modules",
        "value": "Message summarisation (`langmem.short_term`) and prompt optimisers (`create_prompt_optimizer`, `create_multi_prompt_optimizer`)"
      },
      {
        "label": "Python",
        "value": "Declares 3.10 or later. Source on main needs 3.11 for `typing.NotRequired`"
      },
      {
        "label": "Cost",
        "value": "Free software. LLM calls for extraction, embedding calls for search and the database are the owner's"
      }
    ],
    "provenance": {
      "legalEntity": "LangChain (the licence file gives no legal form)",
      "domain": "langchain.com",
      "domainRegistered": "2019-12-03",
      "endpointOnVendorDomain": null,
      "terms": "",
      "privacy": "",
      "statusPage": "",
      "changelog": "",
      "securityTxt": "none",
      "checked": "2026-10-08",
      "notes": [
        "A library the owner runs, with no hosted endpoint. The code is on github.com under the langchain-ai organisation and the docs are on langchain-ai.github.io/langmem.",
        "The LICENSE file reads Copyright (c) 2025 LangChain. PyPI metadata names no author.",
        "No terms or privacy document governs the library, so both fields are left out. The MIT licence is the only agreement.",
        "No changelog file, GitHub releases or tags exist in the repository. PyPI's release history is the only record of versions.",
        "www.langchain.com/.well-known/security.txt returns 404. The organisation's SECURITY.md points to two Intigriti disclosure programmes.",
        "RDAP for langchain.com gives a registration date of 2019-12-03."
      ],
      "score": 55,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "LangChain (the licence file gives no legal form)",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "langchain.com, registered 2019-12-03 (6 years)",
          "points": 11,
          "max": 15,
          "state": "part"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "no hosted endpoint",
          "points": 0,
          "max": 0,
          "state": "na"
        },
        {
          "check": "Terms of service",
          "value": "nothing hosted, so the MIT licence stands in",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Privacy policy",
          "value": "nothing hosted, not scored",
          "points": 0,
          "max": 0,
          "state": "na"
        },
        {
          "check": "Status page",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "Changelog",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "security.txt",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        }
      ]
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/langmem.json"
  }
}
