{
  "data": {
    "a": {
      "slug": "learnharness",
      "name": "LearnHarness",
      "vendor": "Amos Blomqvist",
      "vendorUrl": "https://learnharness.ai",
      "kind": "harness",
      "category": "personal-assistants",
      "summary": "LearnHarness is an open-source desktop app for macOS, Windows and Linux that tests what a learner already understands, plans a route to a goal, teaches step by step and keeps a local knowledge graph, using the learner's own model keys.",
      "url": "https://www.anchorterminal.com/tools/learnharness",
      "markdownUrl": "https://www.anchorterminal.com/tools/learnharness.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/learnharness.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/learnharness.json",
      "repo": "https://github.com/amosblomqvist/learnharness",
      "license": "AGPL-3.0-only",
      "transports": [],
      "packages": [],
      "auth": "none",
      "authNotes": "No LearnHarness account. The learner adds keys for model providers (OpenAI, Anthropic, Google, DeepSeek, OpenRouter and others), or one OpenAI-compatible endpoint, or signs in with ChatGPT, GitHub Copilot or Grok, or connects an installed Claude Code CLI. Deepgram (dictation) and Tavily or Brave (web search) take separate keys.",
      "pricing": "free",
      "pricingNotes": "Free under AGPL-3.0 with nothing to buy. Model usage is billed by the provider the learner configures, or counts against a ChatGPT, Copilot or Grok plan, and the app shows a live cost meter. The README says any future charge would be for convenience such as managed keys or hosting.",
      "priceSummary": "Free · OSS",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 in the README, the website, the skill or the source files read (checked 2026-10-30).",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": 4204,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-30"
      },
      "docsUrl": "https://github.com/amosblomqvist/learnharness/blob/main/docs/development.md",
      "capabilities": [
        "assistant.memory",
        "assistant.self-hosted",
        "memory.graph",
        "memory.read",
        "web.search"
      ],
      "tags": [
        "open-source",
        "local",
        "free",
        "no-card",
        "agpl",
        "desktop-app",
        "macos",
        "windows",
        "linux",
        "agent-skill",
        "typescript",
        "new"
      ],
      "lastRelease": "2026-10-29",
      "graded": true,
      "anchor": {
        "graded": true,
        "score": 59.3,
        "grade": "C",
        "agentReady": false,
        "rank": 648,
        "ranked": true,
        "rankOf": 1239,
        "categoryRank": 9,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 60,
          "maintenance": 71,
          "payments": 60,
          "reliability": 56,
          "schema": 63,
          "security": 52,
          "transparency": 60
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-30"
        },
        "negative": 0,
        "verdict": "The in-app agent reads files but cannot change them or run commands, and a bundled skill gives other agents a documented read-only view of sessions and the knowledge graph. The project is 14 days old at 0.4.0, its file reads reach the whole home directory without approval, and it has no security policy.",
        "bestFor": "A tutor for one learner that keeps a local record of sessions and a graph of propositions and reasoning chains.",
        "strengths": [
          "AGPL-3.0 source, with installers for macOS (signed and notarised), Windows and Linux on GitHub Releases",
          "A bundled agent skill with Python readers that print sessions and graph data as text or JSON and write nothing",
          "The in-app agent has no shell, write or send tool, and Claude Code runs with its built-in tools switched off",
          "The desktop server binds 127.0.0.1 and requires a per-launch 64-character secret header",
          "Nine releases from 17 to 29 October 2026, with CI running typecheck, tests, lint and three-OS builds on main"
        ],
        "weaknesses": [
          "The read, ls, find and grep tools resolve against the home directory with no allow list, and their output goes to the model provider",
          "Provider keys and ChatGPT sign-in credentials are stored as plaintext JSON at mode 0600, not in the OS keychain",
          "No SECURITY.md, security.txt, privacy policy or terms. learnharness.ai answers 404 for each",
          "0.x software created on 16 October 2026, with 265 open issues and pull requests and none of the 39 newest pull requests merged",
          "No outside agent can start or drive a lesson. The local HTTP API is for the app's own window"
        ],
        "agentNotes": [
          "Use the bundled skill (`skills/learnharness/SKILL.md`) to read a learner's record. It needs Python 3.10 or later and writes nothing",
          "Pass `--format json` before the subcommand, for example `python3 -B scripts/graph.py --format json propositions`",
          "Treat stored answer keys and teacher prose as model-authored. A proposition in the graph is not evidence the learner understood it",
          "Do not read `auth.json`, which sits one folder above the data folder and holds provider keys in plain text",
          "Close the app or re-read when a stable snapshot matters. The readers do not lock files while the app writes"
        ],
        "metrics": {
          "kind": "local",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "C",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 59.3
          }
        ],
        "editorialScores": {
          "ergonomics": 60,
          "maintenance": 71,
          "payments": 60,
          "reliability": 56,
          "schema": 63,
          "security": 52,
          "transparency": 64
        },
        "provenanceScore": 56,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-30",
            "maintenance": "2026-10-30",
            "payments": "2026-10-30",
            "reliability": "2026-10-30",
            "schema": "2026-10-30",
            "security": "2026-10-30",
            "transparency": "2026-10-30"
          },
          "last": "2026-10-30",
          "oldest": "2026-10-30",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "letme": {
        "capability": "https://letme.dev/assistant.memory",
        "tool": "https://letme.dev/learnharness"
      },
      "area": "frameworks",
      "provenance": {
        "legalEntity": "No legal entity found. Copyright Amos Blomqvist",
        "domain": "learnharness.ai",
        "domainRegistered": "2026-10-09",
        "endpointOnVendorDomain": null,
        "terms": "https://raw.githubusercontent.com/amosblomqvist/learnharness/main/LICENSE",
        "privacy": "",
        "statusPage": "",
        "changelog": "https://github.com/amosblomqvist/learnharness/releases",
        "securityTxt": "none",
        "checked": "2026-10-30",
        "notes": [
          "The footer of learnharness.ai reads © 2026 Amos Blomqvist, and `package.json` names Amos Blomqvist as author. No company is named.",
          "learnharness.ai/privacy, /terms, /llms.txt and /.well-known/security.txt return 404, and the repository has no SECURITY.md, so the AGPL-3.0 licence stands in for terms.",
          "RDAP (Identity Digital) gives learnharness.ai a registration date of 2026-10-09.",
          "The app runs on the learner's machine. Its only vendor-side service seen is the website, which a release workflow updates. Updates come from GitHub Releases.",
          "There is no CHANGELOG file. Each GitHub release carries its notes."
        ],
        "score": 56
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/learnharness.json"
    },
    "answer": "LearnHarness scores 59.3 (C) on agent readiness against Town's 48.7 (D), and leads in 5 of 7 scored categories. Town leads on security \u0026 auth.",
    "b": {
      "slug": "town",
      "name": "Town",
      "vendor": "Town.com, Inc.",
      "vendorUrl": "https://www.town.com",
      "kind": "platform",
      "category": "personal-assistants",
      "summary": "Town is a hosted AI assistant, called a Townie, with its own email address. It works across the owner's email, calendar and connected work apps, runs scheduled routines, and answers by email, text, WhatsApp, Telegram, the web or iOS.",
      "url": "https://www.anchorterminal.com/tools/town",
      "markdownUrl": "https://www.anchorterminal.com/tools/town.md",
      "slimMarkdownUrl": "https://www.anchorterminal.com/tools/town.min.md",
      "jsonUrl": "https://www.anchorterminal.com/api/v1/tools/town.json",
      "license": "Closed service under Town's Terms of Service (Town.com, Inc., updated 21 July 2026).",
      "transports": [
        "http"
      ],
      "packages": [],
      "auth": "mixed",
      "authNotes": "People sign up at town.com with account credentials or a linked Google or single sign-on account (https://www.town.com/terms-of-service). A routine can expose its own webhook URL, called with a bearer secret that is shown once and can be rotated. Town answers a wrong secret, a disabled endpoint and a missing one with the same 404 (https://www.town.com/docs/routines/stock-routines/webhooks).",
      "pricing": "freemium",
      "pricingNotes": "Free at $0 with no credit card, 30 chat messages a month, the weekly briefing and a 7-day Pro trial on signup. Starter is $15 a month billed monthly with 1,250 credits. Pro ($49), Power ($99) and Power Plus ($199) are monthly prices at the billed-annually rate, and monthly billing is \"available at a slightly higher rate\". Team is $59 and Team Plus $149 a seat a month. Credits past the allotment bill at $0.044 (Pro), $0.038 (Power, Team), $0.032 (Power Plus) and $0.030 (Team Plus), with an optional monthly spend cap (https://www.town.com/pricing and https://www.town.com/docs/billing/plans, checked 14 October 2026).",
      "priceSummary": "$15 / mo",
      "where": "local",
      "x402": {
        "level": "no",
        "evidence": "No x402, MPP or L402 found on town.com's pricing, docs and terms, checked 14 October 2026.",
        "endpoints": []
      },
      "toolCount": null,
      "popularity": {
        "githubStars": null,
        "npmWeekly": null,
        "pypiWeekly": null,
        "asOf": "2026-10-14"
      },
      "docsUrl": "https://www.town.com/docs",
      "capabilities": [
        "assistant.proactive",
        "assistant.messaging",
        "assistant.accounts",
        "assistant.memory",
        "mailbox.read",
        "mailbox.send",
        "calendar.write",
        "messaging.whatsapp",
        "messaging.rcs",
        "messaging.inbound",
        "email.inbound",
        "voice.calls",
        "memory.user",
        "tasks.create",
        "notify.push",
        "agent.multi-agent",
        "agent.mcp-client"
      ],
      "tags": [
        "hosted",
        "official",
        "closed-source",
        "freemium",
        "free-tier",
        "no-card",
        "ios",
        "soc2",
        "webhooks"
      ],
      "lastRelease": "2026-10-10",
      "graded": true,
      "disclosure": "Town competes with LocalGhost, which Anchor Terminal's founder builds. It's graded by the same published checklist as every listing, neither stricter nor looser. Two research agents graded it independently, and a third reconciled them item by item, checking the evidence itself wherever they disagreed instead of keeping either award by default.",
      "competesWith": "localghost",
      "anchor": {
        "graded": true,
        "score": 48.7,
        "grade": "D",
        "agentReady": false,
        "rank": 982,
        "ranked": true,
        "rankOf": 1239,
        "categoryRank": 16,
        "methodology": "0.7",
        "run": "2026-10-01",
        "scores": {
          "ergonomics": 49,
          "maintenance": 60,
          "payments": 30,
          "reliability": 35,
          "schema": 33,
          "security": 79,
          "transparency": 63
        },
        "pending": [
          "performance",
          "tasks"
        ],
        "assessment": {
          "confidence": "medium",
          "date": "2026-10-14"
        },
        "negative": 0,
        "verdict": "Town is a hosted assistant that works across the owner's mail, calendar and work apps, and other systems can start its routines through per-routine webhooks with rotatable secrets, idempotency keys and documented errors. A caller can't read a run's result. The privacy policy and trust page disagree on whether training is on by default.",
        "bestFor": "An owner who wants a mail and calendar assistant whose routines other systems can trigger.",
        "disclosure": "Town competes with LocalGhost, which Anchor Terminal's founder builds. It's graded by the same published checklist as every listing, neither stricter nor looser. Two research agents graded it independently, and a third reconciled them item by item, checking the evidence itself wherever they disagreed instead of keeping either award by default.",
        "strengths": [
          "Per-routine webhook secrets, shown once and rotatable, with an X-Town-Idempotency-Key header and six documented responses.",
          "Routines run in autonomous, approval-required or read-only mode, with per-tool overrides and account scope defaulting to the trigger account.",
          "Webhook payloads are framed as untrusted data, and Town can block a webhook routine that combines untrusted input with autonomous sending.",
          "SOC 2 Type 2 audited per the trust page, with a security@corp.town.com reporting address.",
          "Free plan at $0 with no credit card, and a dated subprocessor list naming model providers."
        ],
        "weaknesses": [
          "The privacy policy describes training with an opt-out and the trust page says training is opt-in.",
          "The trust page says Town never sends without the owner's OK, while the docs describe autonomous routines and an Allow all actions session mode.",
          "A webhook call returns only 202, so the caller can't read what the routine did.",
          "No status page, published webhook rate limit or SLA found."
        ],
        "agentNotes": [
          "Start a Town routine with POST to its webhook URL, Authorization Bearer whsec_ secret, and application/json or text/plain. Expect 202 only.",
          "Send X-Town-Idempotency-Key with a stable event id on every retry so Town doesn't start a second run.",
          "Treat 404 as wrong secret, disabled endpoint or missing endpoint alike, and ask the owner to check Routine Settings rather than retrying.",
          "Send account_email only if the owner allowed the override. It must match a connected account in full and can't widen the routine's scope.",
          "Ask the owner to keep routines that act on webhook input in approval-required mode, as Town's own docs advise."
        ],
        "metrics": {
          "kind": "remote",
          "measured": false
        },
        "reviewCount": 0,
        "avgRating": 0,
        "history": [
          {
            "basis": "public evidence",
            "confidence": "medium",
            "grade": "D",
            "methodology": "0.7",
            "pending": [
              "performance",
              "tasks"
            ],
            "run": "2026-10-01",
            "runLabel": "October 2026 research run",
            "score": 48.7
          }
        ],
        "editorialScores": {
          "ergonomics": 49,
          "maintenance": 60,
          "payments": 30,
          "reliability": 35,
          "schema": 33,
          "security": 79,
          "transparency": 50
        },
        "provenanceScore": 76,
        "checked": {
          "categories": {
            "ergonomics": "2026-10-14",
            "maintenance": "2026-10-14",
            "payments": "2026-10-14",
            "reliability": "2026-10-14",
            "schema": "2026-10-14",
            "security": "2026-10-14",
            "transparency": "2026-10-14"
          },
          "last": "2026-10-14",
          "lastMoved": "2026-10-30",
          "oldest": "2026-10-14",
          "stale": false,
          "staleAfterDays": 90
        }
      },
      "letme": {
        "capability": "https://letme.dev/assistant.proactive",
        "tool": "https://letme.dev/town"
      },
      "area": "frameworks",
      "unitPrices": [
        {
          "item": "Town Starter",
          "unit": "month",
          "usd": 15,
          "note": "Billed monthly, 1,250 credits. Checked 14 October 2026."
        },
        {
          "item": "Town Pro",
          "unit": "month",
          "usd": 49,
          "note": "Billed annually, 5,000 credits. Monthly billing costs more."
        },
        {
          "item": "Town Power",
          "unit": "month",
          "usd": 99,
          "note": "Billed annually, 12,000 credits."
        },
        {
          "item": "Town Power Plus",
          "unit": "month",
          "usd": 199,
          "note": "40,000 credits."
        },
        {
          "item": "Town Team",
          "unit": "seat-month",
          "usd": 59,
          "note": "6,000 credits a seat, pooled."
        },
        {
          "item": "Town Pro overage",
          "unit": "credit",
          "usd": 0.044,
          "note": "Per credit past the plan allotment."
        }
      ],
      "provenance": {
        "legalEntity": "Town.com, Inc.",
        "domain": "town.com",
        "domainRegistered": "1996-11-13",
        "endpointOnVendorDomain": null,
        "terms": "https://www.town.com/terms-of-service",
        "privacy": "https://www.town.com/privacy-policy",
        "statusPage": "",
        "changelog": "https://www.town.com/updates",
        "securityTxt": "unknown",
        "checked": "2026-10-14",
        "notes": [
          "town.com's robots.txt gives ClaudeBot an allow list of named pages and disallows everything else, so only listed pages were read. security.txt and llms.txt are not on the list and were not requested.",
          "The terms name Town.com, Inc. and were updated on 21 July 2026. Legal contact legal@corp.town.com, support support@corp.town.com.",
          "No status page was found on the pages read.",
          "Webhook URLs are created per routine on Town's own service; their host is not shown in the docs.",
          "RDAP gives a registration date of 1996-11-13 for town.com, which predates the company."
        ],
        "score": 76
      },
      "pageJsonUrl": "https://www.anchorterminal.com/tools/town.json",
      "live": {
        "slug": "town",
        "securityTxt": {
          "url": "https://town.com/.well-known/security.txt",
          "state": "none",
          "checkedAt": "2026-10-30T15:38:06.450308749Z"
        },
        "domain": {
          "domain": "town.com",
          "registered": "1996-11-13",
          "source": "https://rdap.verisign.com/com/v1/domain/town.com",
          "checkedAt": "2026-10-25T14:05:10.658815214Z"
        },
        "pages": [
          {
            "url": "https://www.town.com/updates",
            "kind": "changelog",
            "status": 200,
            "checkedAt": "2026-10-30T06:01:48.229753137Z",
            "changedAt": "2026-10-30T06:01:48.229753137Z",
            "fingerprint": "62fda947ba0b"
          },
          {
            "url": "https://www.town.com/pricing",
            "kind": "pricing",
            "status": 200,
            "checkedAt": "2026-10-30T06:01:41.542770458Z",
            "changedAt": "2026-10-27T04:06:31.780854595Z",
            "fingerprint": "c92a0c630e40"
          },
          {
            "url": "https://www.town.com/privacy-policy",
            "kind": "privacy",
            "status": 200,
            "checkedAt": "2026-10-30T06:01:44.182834976Z",
            "changedAt": "2026-10-27T04:06:34.520179089Z",
            "fingerprint": "8ff4974df4b9"
          },
          {
            "url": "https://www.town.com/terms-of-service",
            "kind": "terms",
            "status": 200,
            "checkedAt": "2026-10-30T06:01:46.175347668Z",
            "changedAt": "2026-10-27T04:06:36.317193177Z",
            "fingerprint": "9d52e5b60ac8"
          }
        ],
        "updatedAt": "2026-10-30T15:38:06.450308749Z"
      }
    },
    "facts": [
      {
        "a": "Agent harness",
        "b": "Platform",
        "name": "Kind"
      },
      {
        "a": "Amos Blomqvist",
        "b": "Town.com, Inc.",
        "name": "Vendor"
      },
      {
        "a": "no (local only)",
        "b": "no (local only)",
        "name": "Hosted endpoint"
      },
      {
        "a": "",
        "b": "HTTP",
        "name": "Transports"
      },
      {
        "a": "None",
        "b": "OAuth or key",
        "name": "Auth"
      },
      {
        "a": "Free",
        "b": "Freemium",
        "name": "Pricing"
      },
      {
        "a": "no",
        "b": "no",
        "name": "x402"
      },
      {
        "a": "AGPL-3.0-only",
        "b": "Closed service under Town's Terms of Service (Town.com, Inc., updated 21 July 2026).",
        "name": "Licence"
      },
      {
        "a": "no",
        "b": "yes",
        "name": "Read-only variant documented"
      },
      {
        "a": "no",
        "b": "no",
        "name": "llms.txt"
      },
      {
        "a": "2026-10-29",
        "b": "2026-10-10",
        "name": "Last release"
      },
      {
        "a": "no date given",
        "b": "2026-07-21",
        "name": "Terms last updated"
      },
      {
        "a": "no document linked",
        "b": "2026-07-21",
        "name": "Privacy policy last updated"
      },
      {
        "a": "not found in the text",
        "b": "yes, with an opt-out",
        "name": "Customer content may train models"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Terms restrict automated access"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms restrict benchmarking"
      },
      {
        "a": "not found in the text",
        "b": "not found in the text",
        "name": "Terms or service can change without notice"
      },
      {
        "a": "not found in the text",
        "b": "yes",
        "name": "Arbitration or class-action waiver"
      },
      {
        "a": "4.2k stars",
        "b": "none",
        "name": "Popularity"
      }
    ],
    "faq": [
      {
        "answer": "LearnHarness scores 59.3 (C) on agent readiness against Town's 48.7 (D), and leads in 5 of 7 scored categories. Town leads on security \u0026 auth.",
        "question": "Which is better for AI agents, LearnHarness or Town?"
      },
      {
        "answer": "LearnHarness is open source (AGPL-3.0-only). No open-source release is listed for Town.",
        "question": "Are LearnHarness and Town open source?"
      }
    ],
    "goodFor": [
      {
        "aheadOn": [
          "Reliability, 56 against 35",
          "Schema \u0026 documentation, 63 against 33",
          "Agent ergonomics, 60 against 49",
          "Payments \u0026 pricing, 60 against 30",
          "Maintenance \u0026 community, 71 against 60"
        ],
        "also": [
          "No key needed to call it",
          "Open source"
        ],
        "goodFor": "A tutor for one learner that keeps a local record of sessions and a graph of propositions and reasoning chains.",
        "slug": "learnharness",
        "watchFor": "The read, ls, find and grep tools resolve against the home directory with no allow list, and their output goes to the model provider"
      },
      {
        "aheadOn": [
          "Security \u0026 auth, 79 against 52"
        ],
        "also": null,
        "goodFor": "An owner who wants a mail and calendar assistant whose routines other systems can trigger.",
        "slug": "town",
        "watchFor": "The privacy policy describes training with an opt-out and the trust page says training is opt-in."
      }
    ],
    "job": {
      "capability": "assistant.memory",
      "name": "Assistants that remember you"
    },
    "others": [
      {
        "json": "https://www.anchorterminal.com/compare/asaply-vs-town.json",
        "title": "asaply vs Town",
        "url": "https://www.anchorterminal.com/compare/asaply-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/asmi-vs-town.json",
        "title": "Asmi vs Town",
        "url": "https://www.anchorterminal.com/compare/asmi-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boba-vs-town.json",
        "title": "Boba vs Town",
        "url": "https://www.anchorterminal.com/compare/boba-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brea-vs-town.json",
        "title": "Brea vs Town",
        "url": "https://www.anchorterminal.com/compare/brea-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/del-vs-town.json",
        "title": "Del vs Town",
        "url": "https://www.anchorterminal.com/compare/del-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hirealpha-vs-town.json",
        "title": "HireAlpha vs Town",
        "url": "https://www.anchorterminal.com/compare/hirealpha-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openinstinct-vs-town.json",
        "title": "OpenInstinct vs Town",
        "url": "https://www.anchorterminal.com/compare/openinstinct-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/orbits-vs-town.json",
        "title": "Orbits vs Town",
        "url": "https://www.anchorterminal.com/compare/orbits-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/orchid-ai-vs-town.json",
        "title": "Orchid vs Town",
        "url": "https://www.anchorterminal.com/compare/orchid-ai-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/szn-vs-town.json",
        "title": "szn vs Town",
        "url": "https://www.anchorterminal.com/compare/szn-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tab-bot-vs-town.json",
        "title": "Tab vs Town",
        "url": "https://www.anchorterminal.com/compare/tab-bot-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tasker-ai-vs-town.json",
        "title": "Tasker AI vs Town",
        "url": "https://www.anchorterminal.com/compare/tasker-ai-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/town-vs-zapia.json",
        "title": "Town vs Zapia",
        "url": "https://www.anchorterminal.com/compare/town-vs-zapia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-town.json",
        "title": "AstrBot vs Town",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boski-vs-town.json",
        "title": "Boski vs Town",
        "url": "https://www.anchorterminal.com/compare/boski-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/caddy-app-vs-town.json",
        "title": "Caddy vs Town",
        "url": "https://www.anchorterminal.com/compare/caddy-app-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-duet-vs-town.json",
        "title": "Claude Duet vs Town",
        "url": "https://www.anchorterminal.com/compare/claude-duet-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cowagent-vs-town.json",
        "title": "CowAgent vs Town",
        "url": "https://www.anchorterminal.com/compare/cowagent-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/folk-nozomio-vs-town.json",
        "title": "folk vs Town",
        "url": "https://www.anchorterminal.com/compare/folk-nozomio-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gaia-vs-town.json",
        "title": "GAIA vs Town",
        "url": "https://www.anchorterminal.com/compare/gaia-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-town.json",
        "title": "Gemini Spark vs Town",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grok-bot-vs-town.json",
        "title": "Grok Bot vs Town",
        "url": "https://www.anchorterminal.com/compare/grok-bot-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/haven-vs-town.json",
        "title": "Haven vs Town",
        "url": "https://www.anchorterminal.com/compare/haven-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hermes-agent-vs-town.json",
        "title": "Hermes Agent vs Town",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/instinct-vs-town.json",
        "title": "Instinct vs Town",
        "url": "https://www.anchorterminal.com/compare/instinct-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ironclaw-vs-town.json",
        "title": "IronClaw vs Town",
        "url": "https://www.anchorterminal.com/compare/ironclaw-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/leon-vs-town.json",
        "title": "Leon vs Town",
        "url": "https://www.anchorterminal.com/compare/leon-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lindy-vs-town.json",
        "title": "Lindy vs Town",
        "url": "https://www.anchorterminal.com/compare/lindy-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nanobot-vs-town.json",
        "title": "nanobot vs Town",
        "url": "https://www.anchorterminal.com/compare/nanobot-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/nanoclaw-vs-town.json",
        "title": "NanoClaw vs Town",
        "url": "https://www.anchorterminal.com/compare/nanoclaw-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openai-dots-vs-town.json",
        "title": "Dots vs Town",
        "url": "https://www.anchorterminal.com/compare/openai-dots-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openclaw-vs-town.json",
        "title": "OpenClaw vs Town",
        "url": "https://www.anchorterminal.com/compare/openclaw-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/openduet-vs-town.json",
        "title": "OpenDuet vs Town",
        "url": "https://www.anchorterminal.com/compare/openduet-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/picoclaw-vs-town.json",
        "title": "PicoClaw vs Town",
        "url": "https://www.anchorterminal.com/compare/picoclaw-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/poke-vs-town.json",
        "title": "Poke vs Town",
        "url": "https://www.anchorterminal.com/compare/poke-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/qwenpaw-vs-town.json",
        "title": "QwenPaw vs Town",
        "url": "https://www.anchorterminal.com/compare/qwenpaw-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/town-vs-zeroclaw.json",
        "title": "Town vs ZeroClaw",
        "url": "https://www.anchorterminal.com/compare/town-vs-zeroclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/town-vs-zo-computer.json",
        "title": "Town vs Zo Computer",
        "url": "https://www.anchorterminal.com/compare/town-vs-zo-computer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/asaply-vs-learnharness.json",
        "title": "asaply vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/asaply-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/asmi-vs-learnharness.json",
        "title": "Asmi vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/asmi-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atticus-vs-learnharness.json",
        "title": "Atticus vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/atticus-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/atticus-vs-town.json",
        "title": "Atticus vs Town",
        "url": "https://www.anchorterminal.com/compare/atticus-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boba-vs-learnharness.json",
        "title": "Boba vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/boba-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/boski-vs-learnharness.json",
        "title": "Boski vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/boski-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/brea-vs-learnharness.json",
        "title": "Brea vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/brea-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/caddy-app-vs-learnharness.json",
        "title": "Caddy vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/caddy-app-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/claude-duet-vs-learnharness.json",
        "title": "Claude Duet vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/claude-duet-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/cowagent-vs-learnharness.json",
        "title": "CowAgent vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/cowagent-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-learnharness.json",
        "title": "DeepTutor vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/deeptutor-vs-town.json",
        "title": "DeepTutor vs Town",
        "url": "https://www.anchorterminal.com/compare/deeptutor-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/del-vs-learnharness.json",
        "title": "Del vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/del-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/folk-nozomio-vs-learnharness.json",
        "title": "folk vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/folk-nozomio-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gaia-vs-learnharness.json",
        "title": "GAIA vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/gaia-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/gemini-spark-vs-learnharness.json",
        "title": "Gemini Spark vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/gemini-spark-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/grok-bot-vs-learnharness.json",
        "title": "Grok Bot vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/grok-bot-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hark-pro-vs-learnharness.json",
        "title": "Hark Pro vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/hark-pro-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hark-pro-vs-town.json",
        "title": "Hark Pro vs Town",
        "url": "https://www.anchorterminal.com/compare/hark-pro-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/haven-vs-learnharness.json",
        "title": "Haven vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/haven-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hermes-agent-vs-learnharness.json",
        "title": "Hermes Agent vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/hermes-agent-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/hirealpha-vs-learnharness.json",
        "title": "HireAlpha vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/hirealpha-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/instinct-vs-learnharness.json",
        "title": "Instinct vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/instinct-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/ironclaw-vs-learnharness.json",
        "title": "IronClaw vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/ironclaw-vs-learnharness"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-leon.json",
        "title": "LearnHarness vs Leon",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-leon"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-lindy.json",
        "title": "LearnHarness vs Lindy",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-lindy"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-lobby-os.json",
        "title": "LearnHarness vs Lobby",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-lobby-os"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-nanobot.json",
        "title": "LearnHarness vs nanobot",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-nanobot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-nanoclaw.json",
        "title": "LearnHarness vs NanoClaw",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-nanoclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-natura.json",
        "title": "LearnHarness vs Natura tinyNature",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-natura"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-openai-dots.json",
        "title": "LearnHarness vs Dots",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-openai-dots"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-openclaw.json",
        "title": "LearnHarness vs OpenClaw",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-openclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-openduet.json",
        "title": "LearnHarness vs OpenDuet",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-openduet"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-openinstinct.json",
        "title": "LearnHarness vs OpenInstinct",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-openinstinct"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-orbits.json",
        "title": "LearnHarness vs Orbits",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-orbits"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-orchid-ai.json",
        "title": "LearnHarness vs Orchid",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-orchid-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-pally.json",
        "title": "LearnHarness vs Pally",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-pally"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-picoclaw.json",
        "title": "LearnHarness vs PicoClaw",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-picoclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-poke.json",
        "title": "LearnHarness vs Poke",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-poke"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-qwenpaw.json",
        "title": "LearnHarness vs QwenPaw",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-qwenpaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-szn.json",
        "title": "LearnHarness vs szn",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-szn"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-tab-bot.json",
        "title": "LearnHarness vs Tab",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-tab-bot"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-talorys.json",
        "title": "LearnHarness vs Talorys",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-talorys"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-tasker-ai.json",
        "title": "LearnHarness vs Tasker AI",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-tasker-ai"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-tomo.json",
        "title": "LearnHarness vs Tomo",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-tomo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-wajo.json",
        "title": "LearnHarness vs Wajo (Fo)",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-wajo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-zapia.json",
        "title": "LearnHarness vs Zapia",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-zapia"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-zeroclaw.json",
        "title": "LearnHarness vs ZeroClaw",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-zeroclaw"
      },
      {
        "json": "https://www.anchorterminal.com/compare/learnharness-vs-zo-computer.json",
        "title": "LearnHarness vs Zo Computer",
        "url": "https://www.anchorterminal.com/compare/learnharness-vs-zo-computer"
      },
      {
        "json": "https://www.anchorterminal.com/compare/talorys-vs-town.json",
        "title": "Talorys vs Town",
        "url": "https://www.anchorterminal.com/compare/talorys-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/lobby-os-vs-town.json",
        "title": "Lobby vs Town",
        "url": "https://www.anchorterminal.com/compare/lobby-os-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/natura-vs-town.json",
        "title": "Natura tinyNature vs Town",
        "url": "https://www.anchorterminal.com/compare/natura-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/pally-vs-town.json",
        "title": "Pally vs Town",
        "url": "https://www.anchorterminal.com/compare/pally-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/tomo-vs-town.json",
        "title": "Tomo vs Town",
        "url": "https://www.anchorterminal.com/compare/tomo-vs-town"
      },
      {
        "json": "https://www.anchorterminal.com/compare/town-vs-wajo.json",
        "title": "Town vs Wajo (Fo)",
        "url": "https://www.anchorterminal.com/compare/town-vs-wajo"
      },
      {
        "json": "https://www.anchorterminal.com/compare/astrbot-vs-learnharness.json",
        "title": "AstrBot vs LearnHarness",
        "url": "https://www.anchorterminal.com/compare/astrbot-vs-learnharness"
      }
    ],
    "scores": [
      {
        "by": 21,
        "edge": "learnharness",
        "key": "reliability",
        "learnharness": 56,
        "name": "Reliability",
        "town": 35,
        "weight": 16
      },
      {
        "key": "performance",
        "name": "Performance",
        "pending": true,
        "weight": 10
      },
      {
        "by": 30,
        "edge": "learnharness",
        "key": "schema",
        "learnharness": 63,
        "name": "Schema \u0026 documentation",
        "town": 33,
        "weight": 13
      },
      {
        "by": 11,
        "edge": "learnharness",
        "key": "ergonomics",
        "learnharness": 60,
        "name": "Agent ergonomics",
        "town": 49,
        "weight": 13
      },
      {
        "by": 27,
        "edge": "town",
        "key": "security",
        "learnharness": 52,
        "name": "Security \u0026 auth",
        "town": 79,
        "weight": 14
      },
      {
        "by": 30,
        "edge": "learnharness",
        "key": "payments",
        "learnharness": 60,
        "name": "Payments \u0026 pricing",
        "town": 30,
        "weight": 10
      },
      {
        "key": "tasks",
        "name": "Task success",
        "pending": true,
        "weight": 10
      },
      {
        "by": 11,
        "edge": "learnharness",
        "key": "maintenance",
        "learnharness": 71,
        "name": "Maintenance \u0026 community",
        "town": 60,
        "weight": 7
      },
      {
        "by": 3,
        "edge": "town",
        "key": "transparency",
        "learnharness": 60,
        "name": "Transparency \u0026 trust",
        "town": 63,
        "weight": 7
      }
    ],
    "summary": "LearnHarness scores 59.3 (C) on agent readiness against Town's 48.7 (D), and leads in 5 of 7 scored categories. Town leads on security \u0026 auth. Both do assistants that remember you.",
    "tutorials": [],
    "verdicts": {
      "learnharness": "The in-app agent reads files but cannot change them or run commands, and a bundled skill gives other agents a documented read-only view of sessions and the knowledge graph. The project is 14 days old at 0.4.0, its file reads reach the whole home directory without approval, and it has no security policy.",
      "town": "Town is a hosted assistant that works across the owner's mail, calendar and work apps, and other systems can start its routines through per-routine webhooks with rotatable secrets, idempotency keys and documented errors. A caller can't read a run's result. The privacy policy and trust page disagree on whether training is on by default."
    }
  },
  "kind": "anchor.page",
  "links": {
    "api": "https://www.anchorterminal.com/api/v1/index.json",
    "html": "https://www.anchorterminal.com/compare/learnharness-vs-town",
    "json": "https://www.anchorterminal.com/compare/learnharness-vs-town.json",
    "llms": "https://www.anchorterminal.com/llms.txt",
    "markdown": "https://www.anchorterminal.com/compare/learnharness-vs-town.md",
    "mcp": "https://www.anchorterminal.com/mcp",
    "slim": "https://www.anchorterminal.com/compare/learnharness-vs-town.min.md"
  },
  "markdown": "LearnHarness scores 59.3 (C) on agent readiness against Town's 48.7 (D), and leads in 5 of 7 scored categories. Town leads on security \u0026 auth. Both do assistants that remember you.\n\n- LearnHarness: grade C, 59.3/100, rank #648 of 1239. Markdown https://www.anchorterminal.com/tools/learnharness.md · JSON https://www.anchorterminal.com/api/v1/tools/learnharness.json\n- Town: grade D, 48.7/100, rank #982 of 1239. Markdown https://www.anchorterminal.com/tools/town.md · JSON https://www.anchorterminal.com/api/v1/tools/town.json\n- Best AI personal assistants that act for one person: https://www.anchorterminal.com/best/personal-assistants/index.md\n- All 1196 assistants comparisons: https://www.anchorterminal.com/compare/personal-assistants/index.md\n\n## Which one, for what\n\n### LearnHarness (C)\n\nGood for: A tutor for one learner that keeps a local record of sessions and a graph of propositions and reasoning chains.\n\nAhead on:\n- Reliability, 56 against 35\n- Schema \u0026 documentation, 63 against 33\n- Agent ergonomics, 60 against 49\n- Payments \u0026 pricing, 60 against 30\n- Maintenance \u0026 community, 71 against 60\n\nAlso in its favour:\n- No key needed to call it\n- Open source\n\nWatch for: The read, ls, find and grep tools resolve against the home directory with no allow list, and their output goes to the model provider\n\n### Town (D)\n\nGood for: An owner who wants a mail and calendar assistant whose routines other systems can trigger.\n\nAhead on:\n- Security \u0026 auth, 79 against 52\n\nWatch for: The privacy policy describes training with an opt-out and the trust page says training is opt-in.\n\n\n## Score by category\n\n| Category | Weight | LearnHarness | Town | Edge |\n| --- | --- | --- | --- | --- |\n| Reliability | 16% (20 this run) | 56 | 35 | LearnHarness +21 |\n| Performance | 10%, pending | pending | pending | not scored in this run |\n| Schema \u0026 documentation | 13% (16.2 this run) | 63 | 33 | LearnHarness +30 |\n| Agent ergonomics | 13% (16.2 this run) | 60 | 49 | LearnHarness +11 |\n| Security \u0026 auth | 14% (17.5 this run) | 52 | 79 | Town +27 |\n| Payments \u0026 pricing | 10% (12.5 this run) | 60 | 30 | LearnHarness +30 |\n| Task success | 10%, pending | pending | pending | not scored in this run |\n| Maintenance \u0026 community | 7% (8.8 this run) | 71 | 60 | LearnHarness +11 |\n| Transparency \u0026 trust | 7% (8.8 this run) | 60 | 63 | Town +3 |\n| Negative events | ≤15 | 0 | 0 | |\n| **Total** | | **59.3 · C** | **48.7 · D** | |\n\n## Facts side by side\n\n| Fact | LearnHarness | Town |\n| --- | --- | --- |\n| Kind | Agent harness | Platform |\n| Vendor | Amos Blomqvist | Town.com, Inc. |\n| Hosted endpoint | no (local only) | no (local only) |\n| Transports |  | HTTP |\n| Auth | None | OAuth or key |\n| Pricing | Free | Freemium |\n| x402 | no | no |\n| Licence | AGPL-3.0-only | Closed service under Town's Terms of Service (Town.com, Inc., updated 21 July 2026). |\n| Read-only variant documented | no | yes |\n| llms.txt | no | no |\n| Last release | 2026-10-29 | 2026-10-10 |\n| Terms last updated | no date given | 2026-07-21 |\n| Privacy policy last updated | no document linked | 2026-07-21 |\n| Customer content may train models | not found in the text | yes, with an opt-out |\n| Terms restrict automated access | not found in the text | yes |\n| Terms restrict benchmarking | not found in the text | not found in the text |\n| Terms or service can change without notice | not found in the text | not found in the text |\n| Arbitration or class-action waiver | not found in the text | yes |\n| Popularity | 4.2k stars | none |\n\n## Verdicts\n\n**LearnHarness.** The in-app agent reads files but cannot change them or run commands, and a bundled skill gives other agents a documented read-only view of sessions and the knowledge graph. The project is 14 days old at 0.4.0, its file reads reach the whole home directory without approval, and it has no security policy.\n\n**Town.** Town is a hosted assistant that works across the owner's mail, calendar and work apps, and other systems can start its routines through per-routine webhooks with rotatable secrets, idempotency keys and documented errors. A caller can't read a run's result. The privacy policy and trust page disagree on whether training is on by default.\n\n## Before you call either\n\n### LearnHarness\n\n1. Use the bundled skill (`skills/learnharness/SKILL.md`) to read a learner's record. It needs Python 3.10 or later and writes nothing\n2. Pass `--format json` before the subcommand, for example `python3 -B scripts/graph.py --format json propositions`\n3. Treat stored answer keys and teacher prose as model-authored. A proposition in the graph is not evidence the learner understood it\n4. Do not read `auth.json`, which sits one folder above the data folder and holds provider keys in plain text\n5. Close the app or re-read when a stable snapshot matters. The readers do not lock files while the app writes\n\n### Town\n\n1. Start a Town routine with POST to its webhook URL, Authorization Bearer whsec_ secret, and application/json or text/plain. Expect 202 only.\n2. Send X-Town-Idempotency-Key with a stable event id on every retry so Town doesn't start a second run.\n3. Treat 404 as wrong secret, disabled endpoint or missing endpoint alike, and ask the owner to check Routine Settings rather than retrying.\n4. Send account_email only if the owner allowed the override. It must match a connected account in full and can't widen the routine's scope.\n5. Ask the owner to keep routines that act on webhook input in approval-required mode, as Town's own docs advise.\n\n## Questions\n\n### Which is better for AI agents, LearnHarness or Town?\n\nLearnHarness scores 59.3 (C) on agent readiness against Town's 48.7 (D), and leads in 5 of 7 scored categories. Town leads on security \u0026 auth.\n\n### Are LearnHarness and Town open source?\n\nLearnHarness is open source (AGPL-3.0-only). No open-source release is listed for Town.\n\n\n## For agents\n\n- This comparison as JSON: https://www.anchorterminal.com/compare/learnharness-vs-town.json, and with the fewest tokens: https://www.anchorterminal.com/compare/learnharness-vs-town.min.md\n- Over MCP at https://www.anchorterminal.com/mcp (no key): `compare_tools {\"a\": \"learnharness\", \"b\": \"town\"}`. From a terminal: `anchor compare learnharness town`\n- Each listing in full: https://www.anchorterminal.com/api/v1/tools/learnharness.json and https://www.anchorterminal.com/api/v1/tools/town.json\n\n## Other comparisons with LearnHarness or Town\n\n- [asaply vs Town](https://www.anchorterminal.com/compare/asaply-vs-town.md)\n- [Asmi vs Town](https://www.anchorterminal.com/compare/asmi-vs-town.md)\n- [Boba vs Town](https://www.anchorterminal.com/compare/boba-vs-town.md)\n- [Brea vs Town](https://www.anchorterminal.com/compare/brea-vs-town.md)\n- [Del vs Town](https://www.anchorterminal.com/compare/del-vs-town.md)\n- [HireAlpha vs Town](https://www.anchorterminal.com/compare/hirealpha-vs-town.md)\n- [OpenInstinct vs Town](https://www.anchorterminal.com/compare/openinstinct-vs-town.md)\n- [Orbits vs Town](https://www.anchorterminal.com/compare/orbits-vs-town.md)\n- [Orchid vs Town](https://www.anchorterminal.com/compare/orchid-ai-vs-town.md)\n- [szn vs Town](https://www.anchorterminal.com/compare/szn-vs-town.md)\n- [Tab vs Town](https://www.anchorterminal.com/compare/tab-bot-vs-town.md)\n- [Tasker AI vs Town](https://www.anchorterminal.com/compare/tasker-ai-vs-town.md)\n- [Town vs Zapia](https://www.anchorterminal.com/compare/town-vs-zapia.md)\n- [AstrBot vs Town](https://www.anchorterminal.com/compare/astrbot-vs-town.md)\n- [Boski vs Town](https://www.anchorterminal.com/compare/boski-vs-town.md)\n- [Caddy vs Town](https://www.anchorterminal.com/compare/caddy-app-vs-town.md)\n- [Claude Duet vs Town](https://www.anchorterminal.com/compare/claude-duet-vs-town.md)\n- [CowAgent vs Town](https://www.anchorterminal.com/compare/cowagent-vs-town.md)\n- [folk vs Town](https://www.anchorterminal.com/compare/folk-nozomio-vs-town.md)\n- [GAIA vs Town](https://www.anchorterminal.com/compare/gaia-vs-town.md)\n- [Gemini Spark vs Town](https://www.anchorterminal.com/compare/gemini-spark-vs-town.md)\n- [Grok Bot vs Town](https://www.anchorterminal.com/compare/grok-bot-vs-town.md)\n- [Haven vs Town](https://www.anchorterminal.com/compare/haven-vs-town.md)\n- [Hermes Agent vs Town](https://www.anchorterminal.com/compare/hermes-agent-vs-town.md)\n- [Instinct vs Town](https://www.anchorterminal.com/compare/instinct-vs-town.md)\n- [IronClaw vs Town](https://www.anchorterminal.com/compare/ironclaw-vs-town.md)\n- [Leon vs Town](https://www.anchorterminal.com/compare/leon-vs-town.md)\n- [Lindy vs Town](https://www.anchorterminal.com/compare/lindy-vs-town.md)\n- [nanobot vs Town](https://www.anchorterminal.com/compare/nanobot-vs-town.md)\n- [NanoClaw vs Town](https://www.anchorterminal.com/compare/nanoclaw-vs-town.md)\n- [Dots vs Town](https://www.anchorterminal.com/compare/openai-dots-vs-town.md)\n- [OpenClaw vs Town](https://www.anchorterminal.com/compare/openclaw-vs-town.md)\n- [OpenDuet vs Town](https://www.anchorterminal.com/compare/openduet-vs-town.md)\n- [PicoClaw vs Town](https://www.anchorterminal.com/compare/picoclaw-vs-town.md)\n- [Poke vs Town](https://www.anchorterminal.com/compare/poke-vs-town.md)\n- [QwenPaw vs Town](https://www.anchorterminal.com/compare/qwenpaw-vs-town.md)\n- [Town vs ZeroClaw](https://www.anchorterminal.com/compare/town-vs-zeroclaw.md)\n- [Town vs Zo Computer](https://www.anchorterminal.com/compare/town-vs-zo-computer.md)\n- [asaply vs LearnHarness](https://www.anchorterminal.com/compare/asaply-vs-learnharness.md)\n- [Asmi vs LearnHarness](https://www.anchorterminal.com/compare/asmi-vs-learnharness.md)\n- [Atticus vs LearnHarness](https://www.anchorterminal.com/compare/atticus-vs-learnharness.md)\n- [Atticus vs Town](https://www.anchorterminal.com/compare/atticus-vs-town.md)\n- [Boba vs LearnHarness](https://www.anchorterminal.com/compare/boba-vs-learnharness.md)\n- [Boski vs LearnHarness](https://www.anchorterminal.com/compare/boski-vs-learnharness.md)\n- [Brea vs LearnHarness](https://www.anchorterminal.com/compare/brea-vs-learnharness.md)\n- [Caddy vs LearnHarness](https://www.anchorterminal.com/compare/caddy-app-vs-learnharness.md)\n- [Claude Duet vs LearnHarness](https://www.anchorterminal.com/compare/claude-duet-vs-learnharness.md)\n- [CowAgent vs LearnHarness](https://www.anchorterminal.com/compare/cowagent-vs-learnharness.md)\n- [DeepTutor vs LearnHarness](https://www.anchorterminal.com/compare/deeptutor-vs-learnharness.md)\n- [DeepTutor vs Town](https://www.anchorterminal.com/compare/deeptutor-vs-town.md)\n- [Del vs LearnHarness](https://www.anchorterminal.com/compare/del-vs-learnharness.md)\n- [folk vs LearnHarness](https://www.anchorterminal.com/compare/folk-nozomio-vs-learnharness.md)\n- [GAIA vs LearnHarness](https://www.anchorterminal.com/compare/gaia-vs-learnharness.md)\n- [Gemini Spark vs LearnHarness](https://www.anchorterminal.com/compare/gemini-spark-vs-learnharness.md)\n- [Grok Bot vs LearnHarness](https://www.anchorterminal.com/compare/grok-bot-vs-learnharness.md)\n- [Hark Pro vs LearnHarness](https://www.anchorterminal.com/compare/hark-pro-vs-learnharness.md)\n- [Hark Pro vs Town](https://www.anchorterminal.com/compare/hark-pro-vs-town.md)\n- [Haven vs LearnHarness](https://www.anchorterminal.com/compare/haven-vs-learnharness.md)\n- [Hermes Agent vs LearnHarness](https://www.anchorterminal.com/compare/hermes-agent-vs-learnharness.md)\n- [HireAlpha vs LearnHarness](https://www.anchorterminal.com/compare/hirealpha-vs-learnharness.md)\n- [Instinct vs LearnHarness](https://www.anchorterminal.com/compare/instinct-vs-learnharness.md)\n- [IronClaw vs LearnHarness](https://www.anchorterminal.com/compare/ironclaw-vs-learnharness.md)\n- [LearnHarness vs Leon](https://www.anchorterminal.com/compare/learnharness-vs-leon.md)\n- [LearnHarness vs Lindy](https://www.anchorterminal.com/compare/learnharness-vs-lindy.md)\n- [LearnHarness vs Lobby](https://www.anchorterminal.com/compare/learnharness-vs-lobby-os.md)\n- [LearnHarness vs nanobot](https://www.anchorterminal.com/compare/learnharness-vs-nanobot.md)\n- [LearnHarness vs NanoClaw](https://www.anchorterminal.com/compare/learnharness-vs-nanoclaw.md)\n- [LearnHarness vs Natura tinyNature](https://www.anchorterminal.com/compare/learnharness-vs-natura.md)\n- [LearnHarness vs Dots](https://www.anchorterminal.com/compare/learnharness-vs-openai-dots.md)\n- [LearnHarness vs OpenClaw](https://www.anchorterminal.com/compare/learnharness-vs-openclaw.md)\n- [LearnHarness vs OpenDuet](https://www.anchorterminal.com/compare/learnharness-vs-openduet.md)\n- [LearnHarness vs OpenInstinct](https://www.anchorterminal.com/compare/learnharness-vs-openinstinct.md)\n- [LearnHarness vs Orbits](https://www.anchorterminal.com/compare/learnharness-vs-orbits.md)\n- [LearnHarness vs Orchid](https://www.anchorterminal.com/compare/learnharness-vs-orchid-ai.md)\n- [LearnHarness vs Pally](https://www.anchorterminal.com/compare/learnharness-vs-pally.md)\n- [LearnHarness vs PicoClaw](https://www.anchorterminal.com/compare/learnharness-vs-picoclaw.md)\n- [LearnHarness vs Poke](https://www.anchorterminal.com/compare/learnharness-vs-poke.md)\n- [LearnHarness vs QwenPaw](https://www.anchorterminal.com/compare/learnharness-vs-qwenpaw.md)\n- [LearnHarness vs szn](https://www.anchorterminal.com/compare/learnharness-vs-szn.md)\n- [LearnHarness vs Tab](https://www.anchorterminal.com/compare/learnharness-vs-tab-bot.md)\n- [LearnHarness vs Talorys](https://www.anchorterminal.com/compare/learnharness-vs-talorys.md)\n- [LearnHarness vs Tasker AI](https://www.anchorterminal.com/compare/learnharness-vs-tasker-ai.md)\n- [LearnHarness vs Tomo](https://www.anchorterminal.com/compare/learnharness-vs-tomo.md)\n- [LearnHarness vs Wajo (Fo)](https://www.anchorterminal.com/compare/learnharness-vs-wajo.md)\n- [LearnHarness vs Zapia](https://www.anchorterminal.com/compare/learnharness-vs-zapia.md)\n- [LearnHarness vs ZeroClaw](https://www.anchorterminal.com/compare/learnharness-vs-zeroclaw.md)\n- [LearnHarness vs Zo Computer](https://www.anchorterminal.com/compare/learnharness-vs-zo-computer.md)\n- [Talorys vs Town](https://www.anchorterminal.com/compare/talorys-vs-town.md)\n- [Lobby vs Town](https://www.anchorterminal.com/compare/lobby-os-vs-town.md)\n- [Natura tinyNature vs Town](https://www.anchorterminal.com/compare/natura-vs-town.md)\n- [Pally vs Town](https://www.anchorterminal.com/compare/pally-vs-town.md)\n- [Tomo vs Town](https://www.anchorterminal.com/compare/tomo-vs-town.md)\n- [Town vs Wajo (Fo)](https://www.anchorterminal.com/compare/town-vs-wajo.md)\n- [AstrBot vs LearnHarness](https://www.anchorterminal.com/compare/astrbot-vs-learnharness.md)\n\n## Disclosure\n\n- Town competes with LocalGhost, which Anchor Terminal's founder builds. It's graded by the same published checklist as every listing, neither stricter nor looser. Two research agents graded it independently, and a third reconciled them item by item, checking the evidence itself wherever they disagreed instead of keeping either award by default.\n",
  "meta": {
    "attribution": "Anchor Terminal (https://www.anchorterminal.com)",
    "attributionRequired": true,
    "credit": "CC BY 4.0, credit Anchor Terminal and link the page or API address you took it from (https://www.anchorterminal.com/terms/#data)",
    "docs": "https://www.anchorterminal.com/docs/",
    "generatedAt": "2026-10-31",
    "license": "CC-BY-4.0",
    "method": "https://www.anchorterminal.com/benchmark/",
    "methodology": "0.7",
    "openapi": "https://www.anchorterminal.com/openapi.json",
    "preview": false,
    "run": "2026-10-01",
    "runLabel": "October 2026 research run",
    "terms": "https://www.anchorterminal.com/terms/#data"
  },
  "page": {
    "breadcrumbs": [
      {
        "name": "Home",
        "url": "https://www.anchorterminal.com/"
      },
      {
        "name": "Compare",
        "url": "https://www.anchorterminal.com/compare/"
      },
      {
        "name": "LearnHarness vs Town",
        "url": ""
      }
    ],
    "description": "LearnHarness scores 59.3 (C) to Town's 48.7 (D) for assistants that remember you. Prices, MCP, x402, uptime and agent notes side by side.",
    "facts": [
      "LearnHarness C 59.3",
      "Town D 48.7",
      "scores"
    ],
    "h1": "LearnHarness vs Town",
    "image": "https://www.anchorterminal.com/assets/og/compare-learnharness-vs-town.png",
    "path": "/compare/learnharness-vs-town",
    "published": "2026-10-01",
    "section": "tools",
    "title": "LearnHarness vs Town for AI agents in 2026: scores and prices",
    "toc": null,
    "updated": "2026-10-30",
    "url": "https://www.anchorterminal.com/compare/learnharness-vs-town"
  },
  "tokens": {
    "markdown": 3900,
    "slim": 630
  },
  "version": 1
}
