{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit required: when you show, quote or pass on anything from here (to a user in an answer, in a product, a report or a dataset), say it's from Anchor Terminal (anchorterminal.com) and link the page or API address you took it from. Reviews also credit their author.",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-15",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.4",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "tool": {
    "slug": "graphicle",
    "name": "Graphicle",
    "vendor": "KarLex AI, Inc.",
    "vendorUrl": "https://www.karlex.ai/graphicle",
    "kind": "mcp",
    "category": "agent-memory",
    "summary": "Graphicle is an open-source Rust program that builds a code graph of a repository and keeps its documents, reviewed decisions and past coding-agent sessions, served to Claude Code, Codex, Cursor and other MCP clients as cited excerpts.",
    "url": "https://www.anchorterminal.com/tools/graphicle",
    "markdownUrl": "https://www.anchorterminal.com/tools/graphicle.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/graphicle.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/graphicle.json",
    "repo": "https://github.com/Graphicle-AI/graphicle",
    "license": "Apache-2.0",
    "transports": [
      "stdio",
      "streamable-http"
    ],
    "packages": [],
    "auth": "mixed",
    "authNotes": "No account. The stdio server (`graphicle mcp`) runs with the owner key saved in the local data folder, which reads every project in the store. Over HTTP (`graphicle serve`, 127.0.0.1:8854 by default) each agent or person gets its own access key with a role, optional expiry and optional project list, sent as `Authorization: Bearer` or `X-Workspace-Capability`, never in the URL. Keys are stored as hashes and can be revoked.",
    "pricing": "free",
    "pricingNotes": "Free under Apache-2.0 for individuals and teams, with nothing to buy. A commercial edition for teams is in private preview with no published prices. Optional model calls (answers, memory extraction, full document extraction) are paid to the provider the owner configures, or run locally through Ollama.",
    "priceSummary": "Free · OSS",
    "where": "local",
    "x402": {
      "level": "no",
      "evidence": "No x402, MPP or L402 in the source, README, docs or karlex.ai (checked 2026-10-15). The software has no paid tier.",
      "endpoints": []
    },
    "toolCount": 25,
    "popularity": {
      "githubStars": 144,
      "npmWeekly": null,
      "pypiWeekly": null,
      "asOf": "2026-10-15"
    },
    "docsUrl": "https://github.com/Graphicle-AI/graphicle/blob/main/docs/quickstart.md",
    "capabilities": [
      "memory.search",
      "memory.graph",
      "memory.store",
      "memory.delete"
    ],
    "tags": [
      "open-source",
      "local",
      "self-hosted",
      "free",
      "no-card",
      "apache-2.0",
      "rust",
      "mcp",
      "macos",
      "linux"
    ],
    "lastRelease": "2026-10-14",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 69.8,
      "grade": "B",
      "agentReady": false,
      "rank": 178,
      "ranked": true,
      "rankOf": 1094,
      "categoryRank": 2,
      "methodology": "0.4",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 86,
        "maintenance": 48,
        "payments": 60,
        "reliability": 63,
        "schema": 83,
        "security": 69,
        "transparency": 68
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 63,
          "points": 12.6,
          "reason": "Read as local software. Installs from an official Homebrew tap, an install script that checks each archive's SHA-256, or release archives, with macOS and Linux (glibc) on arm64 and x86_64 stated. No language package registry (20). A public CI workflow formats, lints and tests each of the three crates on macOS and Linux, and every test job passed on both pushes to main. The cargo-deny job for licences, advisories and sources failed on both, and its log was not readable without a GitHub login (18). No issues filed in the project's first day. The only change since release is an outside fix for documents whose text carries a NUL byte, so the record is too short to judge (15). A dated changelog with semver crate versions, one release so far, so no breaking change to call out yet (10). Version 0.1.0, 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": 83,
          "points": 13.49,
          "reason": "Every MCP tool has a JSON Schema input with `additionalProperties: false` and required fields marked, read from the tool list fixture in the repository (25). No llms.txt. The docs are Markdown files in the repository that an agent can read raw (5 of 10). Server instructions say which tool to use for structure and which for what the project says, `recall_project` says when to leave the reranker off, and memory tools explain draft review, while graph tools such as `query_graph` carry one-line descriptions (14 of 20). Enums on `mode`, `pack_order`, memory `kind` and `state`, length and item limits, minimum values and closed nested objects (14 of 15). Examples throughout the docs. The OpenAPI file documents 400, 403, 409 and 429 for the HTTP API and limit errors name the setting to change, but MCP error results are not catalogued (10 of 15). A dated changelog, semver and `/v1` paths (15)."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 86,
          "points": 13.98,
          "reason": "25 tools with memory proposals on, which `graphicle setup` turns on by default, about 24,000 characters of definitions (15). `--tools graph` or `--tools memory` serves one half, and leaving out `--allow-learning` leaves only read tools plus `graph_link` (7 added back). `recall_project` takes `max_tokens` or `max_chars`, `include` prefixes and `skip_shown`, `query_graph` takes `token_budget` and `depth`, and `list_projects` pages with `offset` and `limit` (20). Over-limit projects are refused with a message naming the limit and its setting, 409 marks a stale revision and 429 carries Retry-After. MCP error shapes are not documented (12 of 20). Every tool carries readOnlyHint, idempotentHint and destructiveHint false, there are no destructive tools, and `propose_memory` requires an `idempotency_key` that replays the same proposal (20). Only `question` is required on recall and graph queries. Python and TypeScript SDKs exist but install only from source (8 of 15)."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 69,
          "points": 12.08,
          "reason": "Read with the API checklist for a server the owner runs, as for Cognee and Graphiti. Over HTTP each person or agent gets its own key with a role, optional expiry and optional project list, stored as a hash, revocable, and sent in a header with the docs saying never in the URL. The stdio server runs with the owner key, which can read every project, and its graph tools take `repo` to reach other projects (24 of 30). The MCP server has no delete or command tool, agent writes are drafts that a person approves, and `--tools` and per-key project revocation narrow access. No approval step is needed because nothing destructive is exposed (18 of 20). Recall returns documents, connector content and captured sessions, which can carry injected text. Server instructions say memory is evidence, not tool permission, drafts need verbatim quotes, and capture redacts credentials and drops `\u003cprivate\u003e` spans. No general prompt-injection guidance found (9 of 15). Workspace usage counters, `workflow_status` and hash-chained deletion receipts, while the team audit trail belongs to the commercial edition (6 of 15). SECURITY.md with private reporting through GitHub advisories, a valid security.txt at karlex.ai and a cargo-deny advisory check in CI that currently fails. No bug bounty or certification (10 of 20)."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 60,
          "points": 7.5,
          "reason": "No payment protocol (0). Read with the self-hosted rule. Free under Apache-2.0 with nothing to buy (20). No card or account (20). An agent can install it and run `graphicle setup --yes` with no signup, as the README suggests (20). The commercial team edition is in private preview with no prices, so there is no paid option to score."
        },
        {
          "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": 48,
          "points": 4.2,
          "reason": "v0.1.0 on 14 October 2026 (30). One release in the last 90 days (0). An outside pull request was merged about three and a half hours after it opened, with a maintainer reply, and Discussions and a Discord are linked. One day of history (12 of 25). Not in the official MCP registry, which returned nothing for graphicle on 15 October, and the SDKs are not published (0). Pinned GitHub Actions, dependency-graph updates and passing tests, but the licence and advisory job fails on main (6 of 10)."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 68,
          "points": 5.95,
          "note": "editorial 71, provenance 65",
          "reason": "Apache-2.0 with NOTICE files that credit Graphify and every adapted project (30). The README privacy section and the FAQ list every case in which the program uses the network, say there is no telemetry or account, and keep data in one SQLite store with deletion receipts. A grep of the source for outbound hosts found only model providers, connectors and GitHub, which agrees. The karlex.ai privacy policy of 14 March 2025 covers the website, not the software (20 of 30). SECURITY.md lists supported versions. No deprecation policy (3 of 20). No telemetry to opt out of, and the network cases are disclosed, with `freshness off` and `--code-only` to limit them (18 of 20)."
        }
      ],
      "assessment": {
        "date": "2026-10-15",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "25 tools with memory proposals on, which `graphicle setup` turns on by default, about 24,000 characters of definitions (15). `--tools graph` or `--tools memory` serves one half, and leaving out `--allow-learning` leaves only read tools plus `graph_link` (7 added back). `recall_project` takes `max_tokens` or `max_chars`, `include` prefixes and `skip_shown`, `query_graph` takes `token_budget` and `depth`, and `list_projects` pages with `offset` and `limit` (20). Over-limit projects are refused with a message naming the limit and its setting, 409 marks a stale revision and 429 carries Retry-After. MCP error shapes are not documented (12 of 20). Every tool carries readOnlyHint, idempotentHint and destructiveHint false, there are no destructive tools, and `propose_memory` requires an `idempotency_key` that replays the same proposal (20). Only `question` is required on recall and graph queries. Python and TypeScript SDKs exist but install only from source (8 of 15).",
          "maintenance": "v0.1.0 on 14 October 2026 (30). One release in the last 90 days (0). An outside pull request was merged about three and a half hours after it opened, with a maintainer reply, and Discussions and a Discord are linked. One day of history (12 of 25). Not in the official MCP registry, which returned nothing for graphicle on 15 October, and the SDKs are not published (0). Pinned GitHub Actions, dependency-graph updates and passing tests, but the licence and advisory job fails on main (6 of 10).",
          "payments": "No payment protocol (0). Read with the self-hosted rule. Free under Apache-2.0 with nothing to buy (20). No card or account (20). An agent can install it and run `graphicle setup --yes` with no signup, as the README suggests (20). The commercial team edition is in private preview with no prices, so there is no paid option to score.",
          "reliability": "Read as local software. Installs from an official Homebrew tap, an install script that checks each archive's SHA-256, or release archives, with macOS and Linux (glibc) on arm64 and x86_64 stated. No language package registry (20). A public CI workflow formats, lints and tests each of the three crates on macOS and Linux, and every test job passed on both pushes to main. The cargo-deny job for licences, advisories and sources failed on both, and its log was not readable without a GitHub login (18). No issues filed in the project's first day. The only change since release is an outside fix for documents whose text carries a NUL byte, so the record is too short to judge (15). A dated changelog with semver crate versions, one release so far, so no breaking change to call out yet (10). Version 0.1.0, not declared stable (0).",
          "schema": "Every MCP tool has a JSON Schema input with `additionalProperties: false` and required fields marked, read from the tool list fixture in the repository (25). No llms.txt. The docs are Markdown files in the repository that an agent can read raw (5 of 10). Server instructions say which tool to use for structure and which for what the project says, `recall_project` says when to leave the reranker off, and memory tools explain draft review, while graph tools such as `query_graph` carry one-line descriptions (14 of 20). Enums on `mode`, `pack_order`, memory `kind` and `state`, length and item limits, minimum values and closed nested objects (14 of 15). Examples throughout the docs. The OpenAPI file documents 400, 403, 409 and 429 for the HTTP API and limit errors name the setting to change, but MCP error results are not catalogued (10 of 15). A dated changelog, semver and `/v1` paths (15).",
          "security": "Read with the API checklist for a server the owner runs, as for Cognee and Graphiti. Over HTTP each person or agent gets its own key with a role, optional expiry and optional project list, stored as a hash, revocable, and sent in a header with the docs saying never in the URL. The stdio server runs with the owner key, which can read every project, and its graph tools take `repo` to reach other projects (24 of 30). The MCP server has no delete or command tool, agent writes are drafts that a person approves, and `--tools` and per-key project revocation narrow access. No approval step is needed because nothing destructive is exposed (18 of 20). Recall returns documents, connector content and captured sessions, which can carry injected text. Server instructions say memory is evidence, not tool permission, drafts need verbatim quotes, and capture redacts credentials and drops `\u003cprivate\u003e` spans. No general prompt-injection guidance found (9 of 15). Workspace usage counters, `workflow_status` and hash-chained deletion receipts, while the team audit trail belongs to the commercial edition (6 of 15). SECURITY.md with private reporting through GitHub advisories, a valid security.txt at karlex.ai and a cargo-deny advisory check in CI that currently fails. No bug bounty or certification (10 of 20).",
          "transparency": "Apache-2.0 with NOTICE files that credit Graphify and every adapted project (30). The README privacy section and the FAQ list every case in which the program uses the network, say there is no telemetry or account, and keep data in one SQLite store with deletion receipts. A grep of the source for outbound hosts found only model providers, connectors and GitHub, which agrees. The karlex.ai privacy policy of 14 March 2025 covers the website, not the software (20 of 30). SECURITY.md lists supported versions. No deprecation policy (3 of 20). No telemetry to opt out of, and the network cases are disclosed, with `freshness off` and `--code-only` to limit them (18 of 20)."
        },
        "sources": [
          {
            "what": "repository README, LICENSE, NOTICE.md and SECURITY.md",
            "url": "https://github.com/Graphicle-AI/graphicle",
            "seen": "2026-10-15"
          },
          {
            "what": "changelog (0.1.0, 14 October 2026, first public release)",
            "url": "https://github.com/Graphicle-AI/graphicle/blob/main/CHANGELOG.md",
            "seen": "2026-10-15"
          },
          {
            "what": "GitHub release v0.1.0 and assets",
            "url": "https://github.com/Graphicle-AI/graphicle/releases/tag/v0.1.0",
            "seen": "2026-10-15"
          },
          {
            "what": "MCP server docs and tool list",
            "url": "https://github.com/Graphicle-AI/graphicle/blob/main/docs/mcp.md",
            "seen": "2026-10-15"
          },
          {
            "what": "published tool list fixture (25 tools, schemas, annotations, server instructions)",
            "url": "https://github.com/Graphicle-AI/graphicle/blob/main/crates/graphicle/tests/fixtures/one_server_tools.json",
            "seen": "2026-10-15"
          },
          {
            "what": "tool contract builder and recall schema",
            "url": "https://github.com/Graphicle-AI/graphicle/blob/main/crates/graphicle/src/api.rs",
            "seen": "2026-10-15"
          },
          {
            "what": "HTTP API and OpenAPI document",
            "url": "https://github.com/Graphicle-AI/graphicle/blob/main/crates/graphicle/src/product.rs",
            "seen": "2026-10-15"
          },
          {
            "what": "program README (editions, accounts and permissions, hosted use)",
            "url": "https://github.com/Graphicle-AI/graphicle/blob/main/crates/graphicle/README.md",
            "seen": "2026-10-15"
          },
          {
            "what": "team server guide",
            "url": "https://github.com/Graphicle-AI/graphicle/blob/main/docs/team.md",
            "seen": "2026-10-15"
          },
          {
            "what": "FAQ (network use, Graphify port)",
            "url": "https://github.com/Graphicle-AI/graphicle/blob/main/docs/faq.md",
            "seen": "2026-10-15"
          },
          {
            "what": "configuration (retrieval, limits, freshness)",
            "url": "https://github.com/Graphicle-AI/graphicle/blob/main/docs/configuration.md",
            "seen": "2026-10-15"
          },
          {
            "what": "CI workflow",
            "url": "https://github.com/Graphicle-AI/graphicle/blob/main/.github/workflows/ci.yml",
            "seen": "2026-10-15"
          },
          {
            "what": "CI runs and jobs",
            "url": "https://api.github.com/repos/Graphicle-AI/graphicle/actions/runs",
            "seen": "2026-10-15"
          },
          {
            "what": "issues and pull requests",
            "url": "https://api.github.com/repos/Graphicle-AI/graphicle/issues?state=all",
            "seen": "2026-10-15"
          },
          {
            "what": "Python SDK manifest (not on PyPI)",
            "url": "https://github.com/Graphicle-AI/graphicle/blob/main/sdk/python/pyproject.toml",
            "seen": "2026-10-15"
          },
          {
            "what": "Homebrew formula",
            "url": "https://github.com/Graphicle-AI/homebrew-tap/blob/main/Formula/graphicle.rb",
            "seen": "2026-10-15"
          },
          {
            "what": "Graphicle page at KarLex AI",
            "url": "https://www.karlex.ai/graphicle",
            "seen": "2026-10-15"
          },
          {
            "what": "KarLex AI about page",
            "url": "https://www.karlex.ai/about",
            "seen": "2026-10-15"
          },
          {
            "what": "terms of use",
            "url": "https://www.karlex.ai/legal/terms",
            "seen": "2026-10-15"
          },
          {
            "what": "privacy policy",
            "url": "https://www.karlex.ai/legal/privacy",
            "seen": "2026-10-15"
          },
          {
            "what": "security.txt",
            "url": "https://www.karlex.ai/.well-known/security.txt",
            "seen": "2026-10-15"
          },
          {
            "what": "official MCP registry search (no entry)",
            "url": "https://registry.modelcontextprotocol.io/v0/servers?search=graphicle",
            "seen": "2026-10-15"
          },
          {
            "what": "RDAP for karlexai.com",
            "url": "https://rdap.verisign.com/com/v1/domain/karlexai.com",
            "seen": "2026-10-15"
          }
        ],
        "openQuestions": [
          "Judgement call. Listed in agent-memory, not code. Its main job is recall of a project's sources and reviewed memory, beside Graphiti and Cognee, and the code graph feeds that recall. The code category covers repository platforms and library documentation.",
          "The lead was right. The changelog calls 0.1.0 of 14 October 2026 the first public release, and the repository was created that day. The project was one day old when graded.",
          "The lead's \"SDKs\" are Python and TypeScript source packages in `sdk/`, not published to PyPI or npm.",
          "unchecked: why the cargo-deny job (licences, advisories, sources) fails. GitHub job logs need a login.",
          "We did not install or run the program. Behaviour comes from the source, docs, tool list fixture and changelog. Speed and memory benchmark figures are the vendor's.",
          "KarLex AI's about page says an earlier project, ASIOS, was announced in May 2025 and discontinued."
        ]
      },
      "negative": 0,
      "verdict": "One local program gives a coding agent a code graph and project memory through 25 typed, annotated MCP tools that return cited excerpts within a token budget, with agent-written memories held for human approval. It is one day old at version 0.1.0, its SDKs are not on any registry, and the licence and advisory check fails on main.",
      "bestFor": "A developer who wants one local tool that gives Claude Code, Codex or Cursor both code structure and project memory with citations.",
      "strengths": [
        "25 MCP tools with closed JSON Schema inputs, enums and limits, readOnlyHint on every read tool, and an idempotency key on `propose_memory`",
        "Recall returns excerpts with file, line range and hash, within a `max_tokens` budget, and `skip_shown` avoids resending excerpts",
        "Agent-proposed memories need verbatim quotes and a person's approval, and the MCP server has no tool that deletes or runs commands",
        "No telemetry or account. The source calls out only to models, connectors and GitHub that the owner configures",
        "Apache-2.0 with detailed NOTICE files, a SECURITY.md with private GitHub reporting and a valid security.txt at karlex.ai"
      ],
      "weaknesses": [
        "One release, v0.1.0 on 14 October 2026, from a repository created that day",
        "The cargo-deny licence and advisory job failed on both pushes to main, though the test jobs passed on macOS and Linux",
        "The stdio server runs with the owner key, so its graph tools can read any project in the store unless an HTTP key is scoped",
        "SDKs are source-only, no llms.txt, not in the official MCP registry, and no native Windows build",
        "The team audit trail is in the commercial edition. Core shows usage counters and deletion receipts only"
      ],
      "agentNotes": [
        "Call `recall_project` with a `max_tokens` budget, then `read_project_source` with the cited id and byte offset to continue a cut excerpt",
        "Use `query_graph`, `get_neighbors` and `shortest_path` for structure questions, and pass `repo` to reach another synced project",
        "Treat proposed memories as drafts. They are not served until a person approves them in `graphicle open` under Memory",
        "Ask the user before running `graphicle setup`, which edits agent settings, AGENTS.md and Git hooks, and use `graphicle disconnect` to undo it",
        "Over HTTP send the key as `Authorization: Bearer`, never in the URL, and on 429 wait for the Retry-After reset"
      ],
      "metrics": {
        "kind": "local",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "medium",
          "grade": "B",
          "methodology": "0.4",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 69.8
        }
      ],
      "editorialScores": {
        "ergonomics": 86,
        "maintenance": 48,
        "payments": 60,
        "reliability": 63,
        "schema": 83,
        "security": 69,
        "transparency": 71
      },
      "provenanceScore": 65
    },
    "connect": {
      "install": "brew install graphicle-ai/tap/graphicle \u0026\u0026 cd your-repo \u0026\u0026 graphicle setup",
      "claudeCode": "graphicle sync . \u0026\u0026 graphicle connect claude-code",
      "config": {
        "mcpServers": {
          "graphicle": {
            "args": [
              "mcp",
              "--project",
              "PROJECT_ID"
            ],
            "command": "/full/path/to/graphicle"
          }
        }
      }
    },
    "letme": {
      "capability": "https://letme.dev/memory.search",
      "tool": "https://letme.dev/graphicle"
    },
    "notable": [
      "v0.1.0 on 14 October 2026, which the changelog calls \"the first public release\". The repository was created the same day (https://github.com/Graphicle-AI/graphicle/blob/main/CHANGELOG.md)",
      "The code-graph engine is a Rust port of Graphify, kept compatible with Graphify 0.9.88 and credited in NOTICE. The memory, app and session capture are Graphicle's own (https://github.com/Graphicle-AI/graphicle/blob/main/docs/faq.md)",
      "One MCP server with 25 tools when memory proposals are on (the default after `graphicle setup`), each with a closed JSON Schema input and readOnlyHint annotations. `--tools graph` or `--tools memory` serves one half (https://github.com/Graphicle-AI/graphicle/blob/main/docs/mcp.md)",
      "Memories an agent proposes are drafts. Every quote must appear word for word in a current source, and a person approves each draft in the app before recall uses it (https://github.com/Graphicle-AI/graphicle/blob/main/docs/mcp.md)",
      "`graphicle setup` edits agent settings, `.mcp.json`, `AGENTS.md` and Git hooks, backs up each file first and lists what it changed. `graphicle disconnect` undoes it (https://github.com/Graphicle-AI/graphicle/blob/main/docs/agents.md)",
      "The Python and TypeScript SDKs are source packages in `sdk/` and are not on PyPI or npm yet. The PyPI name graphicle belongs to an unrelated physics library (https://github.com/Graphicle-AI/graphicle/blob/main/sdk/python/pyproject.toml)"
    ],
    "area": "agent-runtime",
    "details": [
      {
        "label": "Surface listed",
        "value": "The `graphicle` program v0.1.0 and its MCP server (stdio, and HTTP through `graphicle serve`), read from the repository, docs, changelog and karlex.ai on 15 October 2026. Nothing was installed or run"
      },
      {
        "label": "Age",
        "value": "One day. Repository created and v0.1.0 published on 14 October 2026; three commits on main by 15 October"
      },
      {
        "label": "Interfaces",
        "value": "Command line (`setup`, `ask`, `context`, `graph`, `open`), one MCP server, a browser app, an HTTP API at `/v1/workspaces/{workspace}/repos/{repository}/commands` with `/v1/openapi.json`, and Python and TypeScript SDKs installed from source"
      },
      {
        "label": "MCP tools",
        "value": "14 read tools for recall, sources, memory and graph history, 7 code-graph tools under Graphify's names, `graph_link`, and 3 memory-proposal tools with `--allow-learning`. Optional work-state and GitHub pull-request tools"
      },
      {
        "label": "Memory",
        "value": "Original sources kept word for word, reviewed decisions, preferences and procedures, and captured Claude Code and Codex turns. Reviewed memories tied to a code symbol go stale when that symbol changes"
      },
      {
        "label": "Storage",
        "value": "One SQLite store in the user's data folder. Optional Neo4j, Qdrant and Redis adapters"
      },
      {
        "label": "Models",
        "value": "None needed for the graph (code-only), sync, recall or MCP. Anthropic, OpenAI or Ollama for `ask` answers and memory extraction"
      },
      {
        "label": "Connectors",
        "value": "GitHub, Slack, Notion, Google, Jira and Confluence in Core, each authorised by the owner"
      },
      {
        "label": "Platforms",
        "value": "macOS and Linux (glibc) on arm64 and x86_64, through a Homebrew tap, an install script that checks SHA-256 and release archives. No native Windows build"
      },
      {
        "label": "Team use",
        "value": "`graphicle serve` behind the owner's TLS proxy, with per-key roles, expiry and project lists. A commercial team edition is in private preview"
      },
      {
        "label": "Benchmarks",
        "value": "The vendor reports a code-only Kubernetes extract in 3 min 18 s against 26 min 38 s for Graphify 0.9.88 (one exploratory run each), and a memory comparison with seven systems. Vendor measurements, not ours"
      }
    ],
    "provenance": {
      "legalEntity": "KarLex AI, Inc.",
      "domain": "karlex.ai",
      "domainRegistered": "",
      "endpointOnVendorDomain": null,
      "terms": "https://www.karlex.ai/legal/terms",
      "privacy": "https://www.karlex.ai/legal/privacy",
      "statusPage": "",
      "changelog": "https://github.com/Graphicle-AI/graphicle/blob/main/CHANGELOG.md",
      "securityTxt": "valid",
      "checked": "2026-10-15",
      "notes": [
        "The README and LICENSE read Copyright 2026 KarLex AI, Inc. karlex.ai names KarLex AI as the company behind Graphicle and links the graphicle-ai GitHub organisation, created on 29 September 2026.",
        "The terms of use and privacy policy at karlex.ai are dated 14 March 2025 and cover the website and its accounts, not the Graphicle software, which runs on the user's machine.",
        "karlex.ai/.well-known/security.txt names security@karlexai.com and expires on 7 April 2027 (read 15 October 2026). karlexai.com redirects to karlex.ai; RDAP at Verisign gives karlexai.com a registration date of 20 December 2023. The .ai registration date was not read.",
        "karlex.ai's robots.txt allows all crawlers.",
        "The software runs on the owner's machine, so there is no vendor endpoint or status page to check."
      ],
      "score": 65,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "KarLex AI, Inc.",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "karlex.ai, no registry record we could read",
          "points": 0,
          "max": 15,
          "state": "no"
        },
        {
          "check": "Endpoint on the vendor's domain",
          "value": "no hosted endpoint",
          "points": 0,
          "max": 0,
          "state": "na"
        },
        {
          "check": "Terms of service",
          "value": "read, states 6 of the 7 things a reader expects, and has 2 clauses that cost points",
          "points": 5.1,
          "max": 10,
          "state": "part"
        },
        {
          "check": "Privacy policy",
          "value": "read, states 8 of the 8 things a reader expects",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "Status page",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        },
        {
          "check": "Changelog",
          "value": "published",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "security.txt",
          "value": "valid",
          "points": 10,
          "max": 10,
          "state": "ok"
        }
      ],
      "policies": [
        {
          "kind": "terms",
          "url": "https://www.karlex.ai/legal/terms",
          "state": "read",
          "readAt": "2026-10-15",
          "statedDate": "2025-03-14",
          "words": 5823,
          "points": 5.1,
          "max": 10,
          "expected": [
            {
              "key": "terms.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Last revised on: March 14, 2025",
              "says": "Last updated 2025-03-14"
            },
            {
              "key": "terms.law",
              "label": "Names the governing law or courts",
              "found": true,
              "quote": "…request for relief) shall be severed from the arbitration and may be litigated in the state or federal courts located in the State of Delaware.",
              "says": "Disputes go to the courts of the State of Delaware"
            },
            {
              "key": "terms.liability",
              "label": "States a limit on its liability",
              "found": true,
              "quote": "TO THE MAXIMUM EXTENT PERMITTED BY LAW, IN NO EVENT SHALL COMPANY (OR OUR SUPPLIERS) BE LIABLE TO YOU OR ANY THIRD PARTY FOR ANY LOST PROFITS, LOST DATA, COSTS OF PROCUREMENT OF SUBSTITUTE PRODUCTS, OR ANY INDIRECT, CONSEQUENTIAL, EXEMPLARY, INCIDENTAL, SPECIAL OR PUNITIVE DAMAGES ARISING FROM OR RELATING TO THESE TER…",
              "says": "Rules out indirect and consequential losses, with no cap named in this sentence"
            },
            {
              "key": "terms.termination",
              "label": "Says how the agreement or account can be ended",
              "found": true,
              "quote": "Company may suspend or terminate your Account in accordance with Section 7."
            },
            {
              "key": "terms.changes",
              "label": "Says how changes to the terms are announced",
              "found": true,
              "quote": "…any provision in these Terms to the contrary, we agree that if Company makes any future material change to this Arbitration Agreement, you may reject that change within 30 days of such change becoming effective by writing Company at the following address: 131 Continental Dr Suite 305, Newark, Delaware 19713, or email…",
              "says": "Gives 30 days of notice before a change"
            },
            {
              "key": "terms.use",
              "label": "Lists what users may not do",
              "found": true,
              "quote": "you may not access or use the Site or accept the Terms if you are not at least 18 years old."
            },
            {
              "key": "terms.sla",
              "label": "Refers to a service level or uptime commitment",
              "found": false
            }
          ],
          "toKnow": [
            {
              "key": "terms.benchmark",
              "label": "Restricts benchmarking or competitive use",
              "found": true,
              "quote": "(c) you shall not access the Site in order to build a similar or competitive website, product, or service",
              "costsPoints": true
            },
            {
              "key": "terms.nonotice",
              "label": "Says the terms or the service can change without notice",
              "found": true,
              "quote": "Company reserves the right, at any time, to modify, suspend, or discontinue the Site (in whole or in part) with or without notice to you.",
              "costsPoints": true
            },
            {
              "key": "terms.cutoff",
              "label": "Says access can be ended without notice or for any reason",
              "found": true,
              "quote": "We may suspend or terminate your rights to use the Site (including your Account) at any time for any reason at our sole discretion, including for any use of the Site in violation of these Terms."
            },
            {
              "key": "terms.arbitration",
              "label": "Requires arbitration or waives class actions",
              "found": true,
              "quote": "AMONG OTHER THINGS, SECTION 8.2 INCLUDES AN AGREEMENT TO ARBITRATE WHICH REQUIRES, WITH LIMITED EXCEPTIONS, THAT ALL DISPUTES BETWEEN YOU AND US SHALL BE RESOLVED BY BINDING AND FINAL ARBITRATION."
            }
          ],
          "notes": [
            {
              "date": "2026-10-15",
              "text": "Total liability to the user for any damages under the terms is limited to 50 US dollars.",
              "quote": "OUR LIABILITY TO YOU FOR ANY DAMAGES ARISING FROM OR RELATED TO THESE TERMS (FOR ANY CAUSE WHATSOEVER AND REGARDLESS OF THE FORM OF THE ACTION), WILL AT ALL TIMES BE LIMITED TO A MAXIMUM OF FIFTY US DOLLARS."
            },
            {
              "date": "2026-10-15",
              "text": "The licence to use the site and its account functions is limited to personal, noncommercial use.",
              "quote": "Subject to these Terms, Company grants you a non-transferable, non-exclusive, revocable, limited license to use and access the Site solely for your own personal, noncommercial use."
            }
          ]
        },
        {
          "kind": "privacy",
          "url": "https://www.karlex.ai/legal/privacy",
          "state": "read",
          "readAt": "2026-10-15",
          "statedDate": "2025-03-14",
          "words": 2294,
          "points": 10,
          "max": 10,
          "expected": [
            {
              "key": "privacy.date",
              "label": "Gives the date it was last updated",
              "found": true,
              "quote": "Last updated: March 14, 2025",
              "says": "Last updated 2025-03-14"
            },
            {
              "key": "privacy.collected",
              "label": "Says what personal data is collected",
              "found": true,
              "quote": "Our Privacy Policy is designed to help you understand how we collect, use and safeguard your information."
            },
            {
              "key": "privacy.retention",
              "label": "Says how long data is kept",
              "found": true,
              "quote": "We will retain your information for as long as your account is active or as needed to provide you services.",
              "says": "For as long as needed, with no period named"
            },
            {
              "key": "privacy.processors",
              "label": "Says who else receives the data",
              "found": true,
              "quote": "Except as otherwise stated in this Privacy Policy, we do not sell, trade, rent or otherwise share for marketing purposes your Personal Information with third parties without your consent."
            },
            {
              "key": "privacy.sale",
              "label": "Says whether personal data is sold or shared for advertising",
              "found": true,
              "quote": "Except as otherwise stated in this Privacy Policy, we do not sell, trade, rent or otherwise share for marketing purposes your Personal Information with third parties without your consent.",
              "says": "Says it does not sell personal data"
            },
            {
              "key": "privacy.rights",
              "label": "Says what rights people have over their data",
              "found": true,
              "quote": "If you are a California resident, you have certain rights with respect to your personal information pursuant to the California Consumer Privacy Act of 2018 (\"CCPA\") and the California Privacy Rights Act (\"CPRA\")."
            },
            {
              "key": "privacy.contact",
              "label": "Gives a privacy contact",
              "found": true,
              "quote": "If you believe we have collected such information, please contact us at [email protected].",
              "says": "Gives an email address, hidden from our reader by the page"
            },
            {
              "key": "privacy.transfers",
              "label": "Says where data is transferred or stored",
              "found": true,
              "quote": "If you are located outside the United States and choose to provide information to us, please note that we transfer the information, including Personal Information, to the United States and process it there.",
              "says": "Data goes to the United States"
            }
          ],
          "toKnow": [
            {
              "key": "training.optout",
              "label": "Says it may use customer content to train or improve models, and gives an opt-out",
              "found": true,
              "quote": "To improve our services, KarLex AI may use anonymised, de-identified data submitted through our tools to train and fine-tune our models. We do not use personal or sensitive information for training purposes, and users can opt out of data sharing at any time through their account settings."
            }
          ],
          "notes": [
            {
              "date": "2026-10-15",
              "text": "The policy places no limit on using or disclosing non-personal information, including to partners and advertisers.",
              "quote": "This Privacy Policy does not limit in any way our use or disclosure of Non-Personal Information and we reserve the right to use and disclose such Non-Personal Information to our partners, advertisers and other third parties at our discretion."
            }
          ]
        }
      ]
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/graphicle.json"
  }
}
