{
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-12",
    "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": "leon",
    "name": "Leon",
    "vendor": "Louis Grenard (Leon AI)",
    "vendorUrl": "https://getleon.ai",
    "kind": "harness",
    "category": "personal-assistants",
    "summary": "Open-source personal assistant by Louis Grenard that the owner runs on their own machine or server. The 2.0 Developer Preview adds an agent loop with tools, layered memory, computer use and a proactive pulse, reached through a web app.",
    "url": "https://www.anchorterminal.com/tools/leon",
    "markdownUrl": "https://www.anchorterminal.com/tools/leon.md",
    "slimMarkdownUrl": "https://www.anchorterminal.com/tools/leon.min.md",
    "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/leon.json",
    "repo": "https://github.com/leon-ai/leon",
    "license": "MIT",
    "transports": [],
    "packages": [
      {
        "registry": "npm",
        "name": "@leon-ai/cli"
      }
    ],
    "auth": "none",
    "authNotes": "No account. The web app and the Socket.IO and HTTP interfaces accept any client unless `client_interface.auth.enabled` is set, after which a `\u003cprofile\u003e:\u003ctoken\u003e` credential from `LEON_PROFILE_TOKEN` is required. Model provider keys go in the profile `.env`. Connected apps use OAuth or a pasted token.",
    "pricing": "free",
    "pricingNotes": "Free and MIT, with nothing to buy. The project takes sponsorship. Model usage is billed by the provider the owner picks, or costs nothing with a local llama.cpp model.",
    "priceSummary": "Free · OSS",
    "where": "local",
    "x402": {
      "level": "no",
      "evidence": "No x402, MPP or L402 in the README, the context documents or the source (checked 2026-10-12).",
      "endpoints": []
    },
    "toolCount": null,
    "popularity": {
      "githubStars": 17568,
      "npmWeekly": null,
      "pypiWeekly": null,
      "asOf": "2026-10-12"
    },
    "docsUrl": "https://github.com/leon-ai/leon/blob/develop/README.md",
    "capabilities": [
      "assistant.proactive",
      "assistant.self-hosted",
      "assistant.memory",
      "assistant.accounts"
    ],
    "tags": [
      "open-source",
      "self-hosted",
      "local",
      "free",
      "no-card",
      "typescript",
      "beta",
      "telemetry-default-on"
    ],
    "lastRelease": "2023-05-01",
    "graded": true,
    "anchor": {
      "graded": true,
      "score": 41,
      "grade": "E",
      "agentReady": false,
      "rank": 934,
      "ranked": true,
      "rankOf": 986,
      "categoryRank": 14,
      "methodology": "0.4",
      "run": "2026-10-01",
      "scores": {
        "ergonomics": 57,
        "maintenance": 15,
        "payments": 60,
        "reliability": 32,
        "schema": 33,
        "security": 34,
        "transparency": 60
      },
      "pending": [
        "performance",
        "tasks"
      ],
      "breakdown": [
        {
          "key": "reliability",
          "name": "Reliability",
          "weight": 16,
          "effectiveWeight": 20,
          "score": 32,
          "points": 6.4,
          "reason": "Read with the local-software lines, as software the owner runs. The graded edition is the 2.0 Developer Preview on `develop`, which the README names as the project's focus. It installs by cloning the repository and running pnpm, with Node.js 24 or later and Linux, macOS and Windows stated, and there is no package or tagged build of it. The npm CLI (`@leon-ai/cli` 1.5.0 of 13 May 2023) installs the legacy line (10 of 20). The Tests, Lint and Build workflows trigger only on `master`. On `develop` a scheduled fresh-install workflow that installs Leon and runs DeepSeek inferences passed on every run listed from 27 July to 12 October 2026, and the 63 spec files in the repository are not run by CI on that branch (10 of 25). 114 open issues and pull requests, with setup failures reported in 2024 and 2025 (#534, #542, #546, #555) carrying no reply (8 of 25). `CHANGELOG.md` has breaking-change sections but ends at 1.0.0-beta.8 of 1 May 2023, and the preview has no version of its own (4 of 15). Beta and Developer Preview (0 of 15)."
        },
        {
          "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": 33,
          "points": 5.36,
          "reason": "Harness reading of the framework line, as the Goose dossier used. Each of the 48 tools has a `tool.json` with JSON Schema parameters for its functions, 228 in all, and the profile config names a JSON schema. No OpenAPI file or written contract for the HTTP API or the Socket.IO interface was found (12 of 25). No llms.txt on getleon.ai (404) (0 of 10). The README says the 2.0 documentation is not ready, docs.getleon.ai describes 1.0.0-beta.7, and the current references are two generated context files, with tool guidance that says when to prefer each tool (6 of 20). Tool schemas use required fields, bounds and closed objects in places (Gmail `maxResults` 1 to 100), while the memory `write` options take free-form strings and an open metadata object (9 of 15). A commented sample config, with no worked examples or error reference for 2.0 (3 of 15). The changelog stops in 2023 and the preview is unversioned (3 of 15)."
        },
        {
          "key": "ergonomics",
          "name": "Agent ergonomics",
          "weight": 13,
          "effectiveWeight": 16.25,
          "score": 57,
          "points": 9.26,
          "reason": "Harness reading, scored on what a person or pipeline driving it has to supply. Toolkit schemas load only when needed (`progressive_toolkit_loading: true`), large tool outputs are kept as artifacts with bounded previews, and older exchanges are compacted (20 of 25). `agent_max_iterations` defaults to 256 and can be set per profile, with a fixed input budget for the transcript (12 of 20). The live interface is Socket.IO with an HTTP API beside it, and no headless command with machine-readable output was found (5 of 20). Checkpoints, clarification pauses that resume the same task, duplicate-call guards and background execution handles with wait and cancel (13 of 20). Three commands install and start it, a model provider has to be chosen at setup, and there are Node.js and Python SDKs for skills but no client SDK (7 of 15)."
        },
        {
          "key": "security",
          "name": "Security \u0026 auth",
          "weight": 14,
          "effectiveWeight": 17.5,
          "score": 34,
          "points": 5.95,
          "reason": "Harness reading of the framework checklist, as the Goose dossier used. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt-injection posture, 15 for audit and 20 for the security programme. Telemetry is on in the sample config and posts an instance ID, versions and hardware details to telemetry.getleon.ai, the install step registers the instance ID before any setting is read, the server listens on 0.0.0.0 and client authentication is off by default. Against that, connected-app tokens are encrypted with AES-256-GCM per profile, though the key sits in the same profile's `.env` beside plain-text model keys (10 of 30). No approval prompt before a tool call was found. Tool allow and disable lists, a read-only Gmail scope, a shell blocklist and a visible terminal for `sudo` are the controls, there is no sandbox, and the proactive pulse is on by default (6 of 20). The Gmail and web-fetch tool guidance says fetched content is untrusted data and not instructions, and the persona prompt says to ask first when an action is externally visible, both of which are prompt text and not code checks (5 of 15). Per-profile conversation logs, tool-call logs with inputs and output previews, and token usage logs (11 of 15). No `SECURITY.md`, no security.txt (404), no bounty and no published advisory. A code of conduct and an issue tracker exist (2 of 20)."
        },
        {
          "key": "payments",
          "name": "Payments \u0026 pricing",
          "weight": 10,
          "effectiveWeight": 12.5,
          "score": 60,
          "points": 7.5,
          "reason": "Read with the self-hosted rule. No payment protocol (0). Free under MIT with nothing to buy, so 20, 20 and 20 on the last three lines. It runs with a local llama.cpp model and no sign-up. A hosted model is billed by its provider."
        },
        {
          "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": "The last tagged release of the core is 1.0.0-beta.8 of 1 May 2023. The newest entries on the releases page are pre-release builds of the TCP server and the two bridges from 19 February 2026, 235 days before this check, so either reading is older than 180 days (0 of 30). No release in the last 90 days (0 of 20). The author committed at least 200 times between 25 September and 12 October 2026, but outside pull requests from March to September 2026 (#558, #565, #582, #589, #591) and most open bug reports have no comment (6 of 25). Not an MCP server, no packaged build of the preview, and the npm CLI was last published in 2023 (2 of 15). Dependencies are pinned at current versions, dependency graph updates run, and the fresh-install check passes on `develop` (7 of 10)."
        },
        {
          "key": "transparency",
          "name": "Transparency \u0026 trust",
          "weight": 7,
          "effectiveWeight": 8.75,
          "score": 60,
          "points": 5.25,
          "note": "editorial 52, provenance 68",
          "reason": "MIT (30). No privacy policy was found. getleon.ai says the owner controls their data and decides on any third party, the context documents describe per-profile isolation of memory, sessions and secrets, and neither the README nor the docs pages read mention the default telemetry (8 of 30). The README notice of 29 March 2026 says the project is on the 2.0 Developer Preview and points legacy users to `master`, and the docs site carries a banner that it is not being updated. No deprecation policy (8 of 20). Telemetry has a one-line opt-out in the sample config, `telemetry_enabled`, with no description of the fields sent or the retention, and an issue asking how to turn it off before install (#510, October 2023) is open with no reply (6 of 20)."
        }
      ],
      "assessment": {
        "date": "2026-10-12",
        "basis": "public evidence",
        "confidence": "medium",
        "notes": {
          "ergonomics": "Harness reading, scored on what a person or pipeline driving it has to supply. Toolkit schemas load only when needed (`progressive_toolkit_loading: true`), large tool outputs are kept as artifacts with bounded previews, and older exchanges are compacted (20 of 25). `agent_max_iterations` defaults to 256 and can be set per profile, with a fixed input budget for the transcript (12 of 20). The live interface is Socket.IO with an HTTP API beside it, and no headless command with machine-readable output was found (5 of 20). Checkpoints, clarification pauses that resume the same task, duplicate-call guards and background execution handles with wait and cancel (13 of 20). Three commands install and start it, a model provider has to be chosen at setup, and there are Node.js and Python SDKs for skills but no client SDK (7 of 15).",
          "maintenance": "The last tagged release of the core is 1.0.0-beta.8 of 1 May 2023. The newest entries on the releases page are pre-release builds of the TCP server and the two bridges from 19 February 2026, 235 days before this check, so either reading is older than 180 days (0 of 30). No release in the last 90 days (0 of 20). The author committed at least 200 times between 25 September and 12 October 2026, but outside pull requests from March to September 2026 (#558, #565, #582, #589, #591) and most open bug reports have no comment (6 of 25). Not an MCP server, no packaged build of the preview, and the npm CLI was last published in 2023 (2 of 15). Dependencies are pinned at current versions, dependency graph updates run, and the fresh-install check passes on `develop` (7 of 10).",
          "payments": "Read with the self-hosted rule. No payment protocol (0). Free under MIT with nothing to buy, so 20, 20 and 20 on the last three lines. It runs with a local llama.cpp model and no sign-up. A hosted model is billed by its provider.",
          "reliability": "Read with the local-software lines, as software the owner runs. The graded edition is the 2.0 Developer Preview on `develop`, which the README names as the project's focus. It installs by cloning the repository and running pnpm, with Node.js 24 or later and Linux, macOS and Windows stated, and there is no package or tagged build of it. The npm CLI (`@leon-ai/cli` 1.5.0 of 13 May 2023) installs the legacy line (10 of 20). The Tests, Lint and Build workflows trigger only on `master`. On `develop` a scheduled fresh-install workflow that installs Leon and runs DeepSeek inferences passed on every run listed from 27 July to 12 October 2026, and the 63 spec files in the repository are not run by CI on that branch (10 of 25). 114 open issues and pull requests, with setup failures reported in 2024 and 2025 (#534, #542, #546, #555) carrying no reply (8 of 25). `CHANGELOG.md` has breaking-change sections but ends at 1.0.0-beta.8 of 1 May 2023, and the preview has no version of its own (4 of 15). Beta and Developer Preview (0 of 15).",
          "schema": "Harness reading of the framework line, as the Goose dossier used. Each of the 48 tools has a `tool.json` with JSON Schema parameters for its functions, 228 in all, and the profile config names a JSON schema. No OpenAPI file or written contract for the HTTP API or the Socket.IO interface was found (12 of 25). No llms.txt on getleon.ai (404) (0 of 10). The README says the 2.0 documentation is not ready, docs.getleon.ai describes 1.0.0-beta.7, and the current references are two generated context files, with tool guidance that says when to prefer each tool (6 of 20). Tool schemas use required fields, bounds and closed objects in places (Gmail `maxResults` 1 to 100), while the memory `write` options take free-form strings and an open metadata object (9 of 15). A commented sample config, with no worked examples or error reference for 2.0 (3 of 15). The changelog stops in 2023 and the preview is unversioned (3 of 15).",
          "security": "Harness reading of the framework checklist, as the Goose dossier used. 30 for what leaves the machine by default, 20 for approvals and sandboxing, 15 for prompt-injection posture, 15 for audit and 20 for the security programme. Telemetry is on in the sample config and posts an instance ID, versions and hardware details to telemetry.getleon.ai, the install step registers the instance ID before any setting is read, the server listens on 0.0.0.0 and client authentication is off by default. Against that, connected-app tokens are encrypted with AES-256-GCM per profile, though the key sits in the same profile's `.env` beside plain-text model keys (10 of 30). No approval prompt before a tool call was found. Tool allow and disable lists, a read-only Gmail scope, a shell blocklist and a visible terminal for `sudo` are the controls, there is no sandbox, and the proactive pulse is on by default (6 of 20). The Gmail and web-fetch tool guidance says fetched content is untrusted data and not instructions, and the persona prompt says to ask first when an action is externally visible, both of which are prompt text and not code checks (5 of 15). Per-profile conversation logs, tool-call logs with inputs and output previews, and token usage logs (11 of 15). No `SECURITY.md`, no security.txt (404), no bounty and no published advisory. A code of conduct and an issue tracker exist (2 of 20).",
          "transparency": "MIT (30). No privacy policy was found. getleon.ai says the owner controls their data and decides on any third party, the context documents describe per-profile isolation of memory, sessions and secrets, and neither the README nor the docs pages read mention the default telemetry (8 of 30). The README notice of 29 March 2026 says the project is on the 2.0 Developer Preview and points legacy users to `master`, and the docs site carries a banner that it is not being updated. No deprecation policy (8 of 20). Telemetry has a one-line opt-out in the sample config, `telemetry_enabled`, with no description of the fields sent or the retention, and an issue asking how to turn it off before install (#510, October 2023) is open with no reply (6 of 20)."
        },
        "sources": [
          {
            "what": "repository, develop branch at commit 21baf11 (shallow clone, 200 commits deep)",
            "url": "https://github.com/leon-ai/leon",
            "seen": "2026-10-12"
          },
          {
            "what": "README with the notice of 29 March 2026",
            "url": "https://github.com/leon-ai/leon/blob/develop/README.md",
            "seen": "2026-10-12"
          },
          {
            "what": "generated context document on identity, memory and modes",
            "url": "https://github.com/leon-ai/leon/blob/develop/core/context/LEON.md",
            "seen": "2026-10-12"
          },
          {
            "what": "generated architecture document",
            "url": "https://github.com/leon-ai/leon/blob/develop/core/context/ARCHITECTURE.md",
            "seen": "2026-10-12"
          },
          {
            "what": "sample profile config (defaults for routing, pulse, telemetry, client authentication)",
            "url": "https://github.com/leon-ai/leon/blob/develop/config.sample.yml",
            "seen": "2026-10-12"
          },
          {
            "what": "sample profile secrets file",
            "url": "https://github.com/leon-ai/leon/blob/develop/.env.sample",
            "seen": "2026-10-12"
          },
          {
            "what": "telemetry source",
            "url": "https://github.com/leon-ai/leon/blob/develop/server/src/telemetry.ts",
            "seen": "2026-10-12"
          },
          {
            "what": "connection store (encryption of connected-app credentials)",
            "url": "https://github.com/leon-ai/leon/blob/develop/server/src/core/connections/connection-store.ts",
            "seen": "2026-10-12"
          },
          {
            "what": "pulse manager",
            "url": "https://github.com/leon-ai/leon/blob/develop/server/src/core/pulse-manager.ts",
            "seen": "2026-10-12"
          },
          {
            "what": "HTTP server (listens on 0.0.0.0)",
            "url": "https://github.com/leon-ai/leon/blob/develop/server/src/core/http-server/http-server.ts",
            "seen": "2026-10-12"
          },
          {
            "what": "Socket.IO server (default authorisation)",
            "url": "https://github.com/leon-ai/leon/blob/develop/server/src/core/socket-server.ts",
            "seen": "2026-10-12"
          },
          {
            "what": "shell tool command checks",
            "url": "https://github.com/leon-ai/leon/blob/develop/tools/operating_system_control/shell/src/nodejs/shell-tool.ts",
            "seen": "2026-10-12"
          },
          {
            "what": "Gmail tool manifest",
            "url": "https://github.com/leon-ai/leon/blob/develop/tools/communication/gmail/tool.json",
            "seen": "2026-10-12"
          },
          {
            "what": "Notion tool manifest",
            "url": "https://github.com/leon-ai/leon/blob/develop/tools/productivity_collaboration/notion/tool.json",
            "seen": "2026-10-12"
          },
          {
            "what": "memory manager",
            "url": "https://github.com/leon-ai/leon/blob/develop/server/src/core/memory-manager/memory-manager.ts",
            "seen": "2026-10-12"
          },
          {
            "what": "fellows list (other AI apps whose credentials setup can reuse)",
            "url": "https://github.com/leon-ai/leon/blob/develop/server/src/core/llm-manager/fellows/fellows.json",
            "seen": "2026-10-12"
          },
          {
            "what": "changelog, ending at 1.0.0-beta.8",
            "url": "https://github.com/leon-ai/leon/blob/develop/CHANGELOG.md",
            "seen": "2026-10-12"
          },
          {
            "what": "licence",
            "url": "https://github.com/leon-ai/leon/blob/develop/LICENSE.md",
            "seen": "2026-10-12"
          },
          {
            "what": "GitHub API, repository record (stars, open issues, default branch)",
            "url": "https://api.github.com/repos/leon-ai/leon",
            "seen": "2026-10-12"
          },
          {
            "what": "GitHub API, releases",
            "url": "https://api.github.com/repos/leon-ai/leon/releases?per_page=8",
            "seen": "2026-10-12"
          },
          {
            "what": "GitHub API, security advisories (empty list)",
            "url": "https://api.github.com/repos/leon-ai/leon/security-advisories?per_page=30",
            "seen": "2026-10-12"
          },
          {
            "what": "GitHub API, 40 newest open issues and pull requests",
            "url": "https://api.github.com/repos/leon-ai/leon/issues?state=open\u0026per_page=40\u0026sort=created\u0026direction=desc",
            "seen": "2026-10-12"
          },
          {
            "what": "GitHub API, 25 newest workflow runs",
            "url": "https://api.github.com/repos/leon-ai/leon/actions/runs?per_page=25",
            "seen": "2026-10-12"
          },
          {
            "what": "home page",
            "url": "https://getleon.ai/",
            "seen": "2026-10-12"
          },
          {
            "what": "security.txt (404)",
            "url": "https://getleon.ai/.well-known/security.txt",
            "seen": "2026-10-12"
          },
          {
            "what": "llms.txt (404)",
            "url": "https://getleon.ai/llms.txt",
            "seen": "2026-10-12"
          },
          {
            "what": "legacy docs home, version 1.0.0-beta.7+dev",
            "url": "https://docs.getleon.ai/",
            "seen": "2026-10-12"
          },
          {
            "what": "legacy docs, configuration page",
            "url": "https://docs.getleon.ai/configuration",
            "seen": "2026-10-12"
          },
          {
            "what": "blog index",
            "url": "https://blog.getleon.ai/",
            "seen": "2026-10-12"
          },
          {
            "what": "blog post, Road to 2.0, 19 March 2026",
            "url": "https://blog.getleon.ai/road-to-2-0/",
            "seen": "2026-10-12"
          },
          {
            "what": "npm record for the legacy CLI",
            "url": "https://registry.npmjs.org/@leon-ai%2Fcli",
            "seen": "2026-10-12"
          },
          {
            "what": "RDAP record for getleon.ai",
            "url": "https://rdap.identitydigital.services/rdap/domain/getleon.ai",
            "seen": "2026-10-12"
          }
        ],
        "openQuestions": [
          "Kind is `harness`. Leon is a self-hosted agent program with no vendor API, which is closest to the harness kind the briefs define, and Schema, Ergonomics and Security use the harness reading of the Goose dossier.",
          "The edition graded is the 2.0 Developer Preview on `develop`, which the README names as the project's focus. The legacy 1.0.0-beta.8 on `master` was not graded.",
          "The lead says MIT and self-hosted, which is correct. Leon has no messaging-app channel and no MCP client on `develop`, so `assistant.messaging` and `agent.mcp-client` are not claimed.",
          "Judgement call. No deduction was taken for the default-on telemetry. A setting for it is in the sample config, we did not read every legacy docs page, and no dated incident was found.",
          "The telemetry module has a sender for utterance text. On `develop` the processor returns null or an empty object on the paths we read, so that sender is skipped. This was read in the source and not observed on a running instance.",
          "unchecked: whether GitHub private vulnerability reporting is enabled for the repository",
          "unchecked: the legacy docs pages other than the home and configuration pages, including whether any describes telemetry",
          "unchecked: roadmap.getleon.ai and changelog.getleon.ai, which the home page links over plain HTTP and which were not requested",
          "unchecked: what telemetry.getleon.ai stores and for how long. No request was sent to it",
          "unchecked: whether tests pass on `develop`. CI runs them only for `master`, and we did not run the software",
          "No legal entity, terms of service or privacy policy was found. The copyright holder is Louis Grenard",
          "What a month of use costs in model spend is not stated anywhere we read",
          "The `robots.txt` answers were github.com 200 (repository paths for tags, commits, tree and raw are closed to Anthropic agents, so tags came from git), getleon.ai 200 (only /api closed), blog.getleon.ai 200, docs.getleon.ai 404, api.github.com 404, registry.modelcontextprotocol.io 404, rdap.org 400, registry.npmjs.org returned a package record and no rules"
        ]
      },
      "negative": 0,
      "verdict": "Connected-app credentials are encrypted per profile and the Gmail connection is read-only. The 2.0 Developer Preview has no tagged release, runs tools and a 30-minute proactive pulse with no approval step, listens on every network interface with client authentication off, and sends telemetry by default.",
      "bestFor": "A developer who wants a self-hosted assistant with memory, computer use and a local model, and who will read the source.",
      "strengths": [
        "MIT licence, with the whole server, web app, tools and skills in one public repository",
        "Connected-app credentials are stored per profile with AES-256-GCM, and the Gmail connection asks only for the `gmail.readonly` scope",
        "Runs with a local llama.cpp model or any of 11 hosted providers, so the owner chooses which company sees the content",
        "Tool allow and disable lists, a configurable iteration limit (256 by default) and per-profile tool-call logs",
        "At least 200 commits between 25 September and 12 October 2026, with a fresh-install check passing on develop three times a week"
      ],
      "weaknesses": [
        "No tagged release of the core since 1.0.0-beta.8 on 1 May 2023. The 2.0 Developer Preview is installed by cloning the develop branch",
        "No approval step before a tool call. Shell commands pass a blocklist of patterns, and the proactive pulse is on by default and runs one task every 30 minutes",
        "The server listens on 0.0.0.0 and client authentication is off in the sample config",
        "Telemetry is on in the sample config and posts an instance ID, versions and hardware details to telemetry.getleon.ai. The README and the docs pages read do not describe it",
        "No `SECURITY.md`, security.txt, privacy policy or 2.0 documentation, and no messaging-app channel or MCP client on the develop branch"
      ],
      "agentNotes": [
        "Clone the develop branch for 2.0. `npm install --global @leon-ai/cli` and docs.getleon.ai install and describe the legacy 1.0 betas",
        "Set `client_interface.auth.enabled: true` and a `LEON_PROFILE_TOKEN` before the machine joins a shared network. The server binds 0.0.0.0",
        "Set `telemetry_enabled: false` and `runtime.pulse_enabled: false` in the profile `config.yml` for an unattended or private run",
        "Use `availability.tools.allowed` to limit tools. Shell, file writes, computer use and browser control are otherwise available to the agent with no approval prompt",
        "Back up `LEON_CONNECTIONS_ENCRYPTION_KEY` from the profile `.env`. Without it the stored connections cannot be read"
      ],
      "metrics": {
        "kind": "local",
        "measured": false
      },
      "reviewCount": 0,
      "avgRating": 0,
      "history": [
        {
          "basis": "public evidence",
          "confidence": "medium",
          "grade": "E",
          "methodology": "0.4",
          "pending": [
            "performance",
            "tasks"
          ],
          "run": "2026-10-01",
          "runLabel": "October 2026 research run",
          "score": 41
        }
      ],
      "editorialScores": {
        "ergonomics": 57,
        "maintenance": 15,
        "payments": 60,
        "reliability": 32,
        "schema": 33,
        "security": 34,
        "transparency": 52
      },
      "provenanceScore": 68
    },
    "connect": {
      "install": "git clone https://github.com/leon-ai/leon.git \u0026\u0026 cd leon \u0026\u0026 npm install --global pnpm@latest \u0026\u0026 pnpm install \u0026\u0026 pnpm start"
    },
    "letme": {
      "capability": "https://letme.dev/assistant.proactive",
      "tool": "https://letme.dev/leon"
    },
    "notable": [
      "The README carries a notice dated 29 March 2026 that the project is focused on the 2.0 Developer Preview on `develop`, that new documentation is not ready, and that `master` holds the legacy version (https://github.com/leon-ai/leon/blob/develop/README.md)",
      "Agent mode is the default routing mode, and the sample config sets `pulse_enabled: true`, `telemetry_enabled: true` and `client_interface.auth.enabled: false` (https://github.com/leon-ai/leon/blob/develop/config.sample.yml)",
      "The pulse manager asks the model for up to three proactive tasks from memory and context, runs at most one each 30-minute tick, and tells the model not to ask the owner for clarification (https://github.com/leon-ai/leon/blob/develop/server/src/core/pulse-manager.ts)",
      "Connections are encrypted with AES-256-GCM under a 32-byte key kept in the profile `.env` as `LEON_CONNECTIONS_ENCRYPTION_KEY` (https://github.com/leon-ai/leon/blob/develop/server/src/core/connections/connection-store.ts)",
      "The Gmail tool has four read functions and requests only `https://www.googleapis.com/auth/gmail.readonly`, and its guidance says email bodies are untrusted content (https://github.com/leon-ai/leon/blob/develop/tools/communication/gmail/tool.json)",
      "The telemetry module posts to https://telemetry.getleon.ai on start, heartbeat, stop and error, and the install step registers an instance ID there (https://github.com/leon-ai/leon/blob/develop/server/src/telemetry.ts)",
      "No security advisory is published for the repository (https://api.github.com/repos/leon-ai/leon/security-advisories, read 12 October 2026)"
    ],
    "area": "frameworks",
    "details": [
      {
        "label": "Status",
        "value": "2.0 Developer Preview on the `develop` branch, with no tag or packaged build. `package.json` reads 1.0.0-beta.10+dev. The last tagged core release is 1.0.0-beta.8 of 1 May 2023, on `master`"
      },
      {
        "label": "Where it runs",
        "value": "On the owner's machine or server, Node.js 24 or later, on Linux, macOS or Windows. State lives under `~/.leon/profiles/\u003cprofile\u003e/`. An optional Satellite process on another device runs tools there for a remote server"
      },
      {
        "label": "Acts without asking",
        "value": "Every tool call in agent mode, which is the default. No approval prompt was found in the source. The pulse runs one self-chosen task each 30 minutes when `pulse_enabled` is true, the default, and later owner declines suppress similar tasks"
      },
      {
        "label": "Controls",
        "value": "`availability.tools.allowed` and `disabled`, `availability.skills`, `runtime.agent_max_iterations` (256), `runtime.pulse_enabled`. The shell tool refuses a list of patterns such as `mkfs`, `fdisk`, some `dd` forms and a download piped to a shell, and sends commands needing `sudo` to a visible terminal. No sandbox"
      },
      {
        "label": "Accounts",
        "value": "Gmail (OAuth, `gmail.readonly`, the owner's own Google Cloud client), Notion (personal or integration token, 27 functions including page and block writes and `deleteBlock`), TickTick (token or OAuth, create, update and complete tasks), Spotify (OAuth with PKCE, playback control). No calendar, payment or mail-sending tool was found"
      },
      {
        "label": "Credentials",
        "value": "Connected-app tokens encrypted with AES-256-GCM in the profile's `connections` folder, with the key in the same profile's `.env`. Model provider API keys sit in that `.env` in plain text. Setup can find Codex, Claude Code, OpenCode, Pi, Hermes Agent, OpenClaw and T3 Code credential files and reuse their keys when the owner chooses"
      },
      {
        "label": "Memory",
        "value": "Persistent, daily and discussion layers in SQLite under the profile's `memory` folder, mirrored into QMD collections for search, plus `OWNER.md`, a private diary and raw session logs. Facts are extracted from turns automatically"
      },
      {
        "label": "Deletion",
        "value": "`/session delete` removes a session. The memory tool has `read` and `write` only. The memory manager has `forgetById` and `forgetByQuery` with a seven-day soft-delete window, and no caller for them was found in the server, tools or bridges. Deleting the profile folder removes everything"
      },
      {
        "label": "Models",
        "value": "llama.cpp and SGLang locally, or OpenRouter, Z.AI, MiniMax, OpenAI, Anthropic, DeepSeek, Moonshot AI, Hugging Face, Cerebras, Groq and Celeris. No default model is set. A ChatGPT subscription or an OpenRouter account can be bound at setup"
      },
      {
        "label": "Channels",
        "value": "Web app at http://localhost:5366, a Socket.IO interface for custom clients, an HTTP API, and voice with wake word, speech recognition and speech synthesis (all off by default). No messaging-app channel on `develop`. A `feat/messaging-apps` branch exists"
      },
      {
        "label": "Tools",
        "value": "48 tools with 228 functions across 16 toolkits in the repository, among them shell, file, browser control, computer use, web search, Gmail, Notion, TickTick and Spotify. Schemas load only when a task needs them. No MCP client"
      },
      {
        "label": "Telemetry",
        "value": "On unless `telemetry_enabled: false`. Start events carry an instance ID, versions, language, speech providers, operating system, CPU count, memory, Node.js and npm versions. Errors, heartbeats and stops are also sent. The install step registers the instance ID before any setting is read"
      },
      {
        "label": "Cost",
        "value": "Free. Model usage is billed by the provider the owner picks, or nothing with a local model"
      },
      {
        "label": "Activity",
        "value": "17,568 stars, 114 open issues and pull requests, and at least 200 commits between 25 September and 12 October 2026 (GitHub API and the cloned branch, 12 October 2026)"
      }
    ],
    "provenance": {
      "legalEntity": "No legal entity found. Copyright Louis Grenard",
      "domain": "getleon.ai",
      "domainRegistered": "2018-02-16",
      "endpointOnVendorDomain": null,
      "terms": "",
      "privacy": "",
      "statusPage": "",
      "changelog": "https://github.com/leon-ai/leon/blob/develop/CHANGELOG.md",
      "securityTxt": "none",
      "checked": "2026-10-12",
      "notes": [
        "`LICENSE.md` and the footer of getleon.ai read Copyright 2019 to present Louis Grenard. No company or foundation is named on the pages read.",
        "No terms of service or privacy policy was found on getleon.ai, docs.getleon.ai or in the repository, so no link is given and the MIT licence stands in.",
        "getleon.ai/.well-known/security.txt returns 404, and the repository has no `SECURITY.md`. The GitHub API lists no published security advisory.",
        "RDAP for getleon.ai gives a registration date of 2018-02-16.",
        "The assistant answers on the owner's own host. The only vendor endpoint the source names is telemetry.getleon.ai, which receives telemetry.",
        "`CHANGELOG.md` ends at 1.0.0-beta.8 of 1 May 2023. Changes to the 2.0 Developer Preview are recorded only as commits."
      ],
      "score": 68,
      "checks": [
        {
          "check": "Legal entity named",
          "value": "No legal entity found. Copyright Louis Grenard",
          "points": 20,
          "max": 20,
          "state": "ok"
        },
        {
          "check": "Domain age",
          "value": "getleon.ai, registered 2018-02-16 (8 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": "published",
          "points": 10,
          "max": 10,
          "state": "ok"
        },
        {
          "check": "security.txt",
          "value": "not found",
          "points": 0,
          "max": 10,
          "state": "no"
        }
      ]
    },
    "pageJsonUrl": "https://www.anchorterminal.com/tools/leon.json"
  }
}
