Head to head · Assistants that remember you · October 2026 research run
LearnHarness vs OpenDuet
LearnHarness scores 59.3 (C) on agent readiness against OpenDuet's 49.5 (D), and leads in 5 of 7 scored categories. OpenDuet leads on security & auth and transparency & trust. Both do assistants that remember you.
Best AI personal assistants that act for one person · All 1196 assistants comparisons
Which one, for what
Best for A tutor for one learner that keeps a local record of sessions and a graph of propositions and reasoning chains.
Ahead on
- Reliability, 56 against 42
- Schema & documentation, 63 against 58
- Agent ergonomics, 60 against 52
- Payments & pricing, 60 against 30
- Maintenance & community, 71 against 37
Also in its favour
- No key needed to call it
Watch 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
OpenDuet D
Best for A starting point for a developer or team who wants a proactive mail-and-calendar assistant they host and change, with approvals and audit, and who accepts a CopilotKit Intelligence account.
Ahead on
- Security & auth, 59 against 52
- Transparency & trust, 68 against 60
Watch for
No release, tag, published image or deploy guide; the README marks it early development
Score by category
| Category | Weight this run | LearnHarness | OpenDuet | Edge |
|---|---|---|---|---|
| Reliability | 16%20 | 56 | 42 | LearnHarness +14 |
| Performance | 10%pending | pending | pending | not scored in this run |
| Schema & documentation | 13%16.2 | 63 | 58 | LearnHarness +5 |
| Agent ergonomics | 13%16.2 | 60 | 52 | LearnHarness +8 |
| Security & auth | 14%17.5 | 52 | 59 | OpenDuet +7 |
| Payments & pricing | 10%12.5 | 60 | 30 | LearnHarness +30 |
| Task success | 10%pending | pending | pending | not scored in this run |
| Maintenance & community | 7%8.8 | 71 | 37 | LearnHarness +34 |
| Transparency & trust | 7%8.8 | 60 | 68 | OpenDuet +8 |
| Negative events | ≤15 | 0 | 0 | |
| Total | C 59.3/100 | D 49.5/100 |
Facts side by side
| Fact | LearnHarness | OpenDuet |
|---|---|---|
| Kind | Agent harness | Agent harness |
| Vendor | Amos Blomqvist | CopilotKit (Tawkit, Inc.) |
| Hosted endpoint | no (local only) | no (local only) |
| Transports | ||
| Auth | None | OAuth or key |
| Pricing | Free | Freemium |
| x402 | no | no |
| Licence | AGPL-3.0-only | MIT. Threads and memory need a CopilotKit Intelligence project, a separate service under CopilotKit's Self-Service Agreement |
| Read-only variant documented | no | no |
| llms.txt | no | no |
| Last release | 2026-10-29 | none |
| Terms last updated | no date given | couldn't be read |
| Privacy policy last updated | no document linked | 2026-08-27 |
| Customer content may train models | not found in the text | couldn't be read |
| Terms restrict automated access | not found in the text | couldn't be read |
| Terms restrict benchmarking | not found in the text | couldn't be read |
| Terms or service can change without notice | not found in the text | couldn't be read |
| Arbitration or class-action waiver | not found in the text | couldn't be read |
| Popularity | 4.2k stars | 1.6k stars |
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.
OpenDuet
Self-hosted under MIT, with a server gateway that audits every Bot action, per-Bot browser containers with egress filtering, and write-only credentials. Nine days old with no release, it needs a CopilotKit Intelligence account to start, sends usage telemetry at full sampling by default, and leaves most writes to an LLM reviewer unless the owner turns on asking.
Before you call either
LearnHarness
- 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 jsonbefore the subcommand, for examplepython3 -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
OpenDuet
- Follow the README's Quick start (
bun install,bash scripts/start.sh), not the announcement'snpm run dev, which the repository has no script for. - Run
bun openbot/scripts/setup-learning.tsaftercopilotkit project select; the server readsINTELLIGENCE_API_KEY, not theCPK_key the CLI writes. - Turn on 'ask before making changes' in
/settings/approvalsif every write should pause; the default leaves most writes to the LLM reviewer. - To bring your own agent, register it as a
remote-ag-uiBot inagents.yaml; its tool calls still pass through the gateway's policy and audit. - Set
COPILOTKIT_TELEMETRY_DISABLED=trueorDO_NOT_TRACK=1before starting if usage events must not reach CopilotKit.
Questions
Which is better for AI agents, LearnHarness or OpenDuet?
LearnHarness scores 59.3 (C) on agent readiness against OpenDuet's 49.5 (D), and leads in 5 of 7 scored categories. OpenDuet leads on security & auth and transparency & trust.
Are LearnHarness and OpenDuet open source?
Yes. LearnHarness is open source (AGPL-3.0-only). OpenDuet is open source (MIT. Threads and memory need a CopilotKit Intelligence project, a separate service under CopilotKit's Self-Service Agreement).
Other comparisons with LearnHarness or OpenDuet
- asaply vs OpenDuet
- Asmi vs OpenDuet
- Boba vs OpenDuet
- Brea vs OpenDuet
- Del vs OpenDuet
- HireAlpha vs OpenDuet
- OpenDuet vs OpenInstinct
- OpenDuet vs Orbits
- OpenDuet vs Orchid
- OpenDuet vs szn
- OpenDuet vs Tab
- OpenDuet vs Zapia
- AstrBot vs OpenDuet
- Boski vs OpenDuet
- Caddy vs OpenDuet
- Claude Duet vs OpenDuet
- CowAgent vs OpenDuet
- folk vs OpenDuet
- GAIA vs OpenDuet
- Gemini Spark vs OpenDuet
- Grok Bot vs OpenDuet
- Haven vs OpenDuet
- Hermes Agent vs OpenDuet
- Instinct vs OpenDuet
- IronClaw vs OpenDuet
- Leon vs OpenDuet
- Lindy vs OpenDuet
- nanobot vs OpenDuet
- NanoClaw vs OpenDuet
- Dots vs OpenDuet
- OpenClaw vs OpenDuet
- OpenDuet vs PicoClaw
- OpenDuet vs Poke
- OpenDuet vs QwenPaw
- OpenDuet vs Tasker AI
- OpenDuet vs Town
- OpenDuet vs ZeroClaw
- OpenDuet vs Zo Computer
- asaply vs LearnHarness
- Asmi vs LearnHarness
- Atticus vs LearnHarness
- Atticus vs OpenDuet
- Boba vs LearnHarness
- Boski vs LearnHarness
- Brea vs LearnHarness
- Caddy vs LearnHarness
- Claude Duet vs LearnHarness
- CowAgent vs LearnHarness
- DeepTutor vs LearnHarness
- DeepTutor vs OpenDuet
- Del vs LearnHarness
- folk vs LearnHarness
- GAIA vs LearnHarness
- Gemini Spark vs LearnHarness
- Grok Bot vs LearnHarness
- Hark Pro vs LearnHarness
- Hark Pro vs OpenDuet
- Haven vs LearnHarness
- Hermes Agent vs LearnHarness
- HireAlpha vs LearnHarness
- Instinct vs LearnHarness
- IronClaw vs LearnHarness
- LearnHarness vs Leon
- LearnHarness vs Lindy
- LearnHarness vs Lobby
- LearnHarness vs nanobot
- LearnHarness vs NanoClaw
- LearnHarness vs Natura tinyNature
- LearnHarness vs Dots
- LearnHarness vs OpenClaw
- LearnHarness vs OpenInstinct
- LearnHarness vs Orbits
- LearnHarness vs Orchid
- LearnHarness vs Pally
- LearnHarness vs PicoClaw
- LearnHarness vs Poke
- LearnHarness vs QwenPaw
- LearnHarness vs szn
- LearnHarness vs Tab
- LearnHarness vs Talorys
- LearnHarness vs Tasker AI
- LearnHarness vs Tomo
- LearnHarness vs Town
- LearnHarness vs Wajo (Fo)
- LearnHarness vs Zapia
- LearnHarness vs ZeroClaw
- LearnHarness vs Zo Computer
- OpenDuet vs Talorys
- Lobby vs OpenDuet
- Natura tinyNature vs OpenDuet
- OpenDuet vs Pally
- OpenDuet vs Tomo
- OpenDuet vs Wajo (Fo)
- AstrBot vs LearnHarness
Machine-readable
- This page as Markdown
/compare/learnharness-vs-openduet.md· slim.min.md· JSON.json(or sendAccept: text/markdown) - Each listing in full
/api/v1/tools/learnharness.json·/api/v1/tools/openduet.json - From a terminal
anchor compare learnharness openduet(the CLI) - Over MCP
compare_tools {"a": "learnharness", "b": "openduet"}at/mcp, no key