{"adoption": {"forks": 136, "observed_at": "2026-08-28T04:04:23.909528+00:00", "stars": 1332}, "canonical_url": "https://ross.abutalabs.com/products/longhorizon-harness", "card": {"archived": false, "artifact_type": "framework", "description": "The long-horizon computer-use harness. Run AI agents across desktop apps and the CLI for extended periods while preserving task state and making reliable progress on complex workflows. Features fresh-context execution, durable verified state, independent auditing, recoverable progress, and native Claude Code / Codex / OpenClaw integration.", "domain": ["developer-tools", "large-language-models"], "enriched": true, "function": ["agent-framework", "workflow-automation", "developer-tools", "cli", "gui"], "health_score": 99, "homepage": "https://lh-harness.pages.dev", "language": "Python", "license": "MIT", "license_family": "permissive", "maturity": "active", "member_repos": ["AMAP-ML/LongHorizon-Harness"], "name": "AMAP-ML/LongHorizon-Harness", "platform": ["windows", "cli", "python"], "pushed_at": "2026-08-20T12:36:03+00:00", "repo": "AMAP-ML/LongHorizon-Harness", "stars": 1332, "tags": ["loop-engineering", "computer-use", "long-horizon-agents", "claude-code", "codex", "agent-harness", "checkpointing", "task-orchestration", "mea-loop", "ai-agents", "automation", "linux", "macos"], "topics": ["agent", "harness", "long-horizon", "long-horizon-agents", "longhorizon-harness", "claude", "claude-code", "claude-plugin", "cli", "codex", "codex-desktop", "codex-plugin", "cua", "gui", "loop", "loop-engineering", "deepseek-harness"], "urls": [], "use_cases": ["run AI agents on long-horizon tasks for dozens of hours", "keep an agent working across desktop apps and the terminal", "recover agent progress after failure or context refresh", "independently verify each step an agent completes", "benchmark agents on WeaveBench, OSWorld, and Terminal-Bench", "orchestrate different models for manage, execute, and audit roles", "checkpoint and resume complex multi-step workflows"], "what_it_is": "LongHorizon-Harness is a Python-based loop engineering harness that turns existing coding agents (Claude Code, Codex, OpenCode, DeepSeek) into long-running computer-use systems across desktop apps and the CLI. It manages a plan-act-verify-checkpoint loop with durable, independently audited task state so agents can make reliable progress on multi-hour tasks.", "when_to_avoid": ["you need a simple single-shot agent run without state management", "you want to train or fine-tune a model rather than orchestrate one", "you need a fully managed cloud service rather than a local Python harness", "your agent runtime is not supported (no Claude Code, Codex, OpenCode, or DeepSeek backend)"], "when_to_choose": ["you need an existing agent like Claude Code or Codex to run reliably for extended periods", "your tasks span GUI desktop apps and CLI tools", "you want audited, verifiable progress records outside the agent session", "you want to improve benchmark scores without changing the underlying model"]}, "data_as_of": "2026-08-30T08:39:29.467469+00:00", "members": [{"path": "/products/longhorizon-harness", "repo": "AMAP-ML/LongHorizon-Harness", "role": "main", "score": 79}], "provenance": {"archived": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.909528+00:00", "source": "github"}, "artifact_type": {"confidence": null, "enriched_at": "2026-08-30T04:44:56.121163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "75b0aa90cb690f1e91280adaacd3402209a7baae0d741079cef184151bd6cfa3", "fetched_at": "2026-08-28T04:04:23.909528+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AMAP-ML/LongHorizon-Harness"}, {"content_hash": "e7b2264fdf9e084c18bc076c58d21312b319c67c445108fe6a3c737c462ba03b", "fetched_at": "2026-08-29T12:04:13.921941+00:00", "kind": "homepage", "missing": false, "url": "https://lh-harness.pages.dev"}], "taxonomy_version": 1}, "description": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.909528+00:00", "source": "github"}, "domain": {"confidence": null, "enriched_at": "2026-08-30T04:44:56.121163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "75b0aa90cb690f1e91280adaacd3402209a7baae0d741079cef184151bd6cfa3", "fetched_at": "2026-08-28T04:04:23.909528+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AMAP-ML/LongHorizon-Harness"}, {"content_hash": "e7b2264fdf9e084c18bc076c58d21312b319c67c445108fe6a3c737c462ba03b", "fetched_at": "2026-08-29T12:04:13.921941+00:00", "kind": "homepage", "missing": false, "url": "https://lh-harness.pages.dev"}], "taxonomy_version": 1}, "enriched": {"inputs": [], "kind": "computed", "method": "enrichment_status"}, "function": {"confidence": null, "enriched_at": "2026-08-30T04:44:56.121163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "75b0aa90cb690f1e91280adaacd3402209a7baae0d741079cef184151bd6cfa3", "fetched_at": "2026-08-28T04:04:23.909528+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AMAP-ML/LongHorizon-Harness"}, {"content_hash": "e7b2264fdf9e084c18bc076c58d21312b319c67c445108fe6a3c737c462ba03b", "fetched_at": "2026-08-29T12:04:13.921941+00:00", "kind": "homepage", "missing": false, "url": "https://lh-harness.pages.dev"}], "taxonomy_version": 1}, "health_score": {"inputs": ["days_since_push", "days_since_release", "archived"], "kind": "computed", "method": "health_v1"}, "homepage": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.909528+00:00", "source": "github"}, "language": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.909528+00:00", "source": "github"}, "license": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.909528+00:00", "source": "github"}, "license_family": {"inputs": ["license"], "kind": "computed", "method": "license_family"}, "maturity": {"confidence": null, "enriched_at": "2026-08-30T04:44:56.121163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "75b0aa90cb690f1e91280adaacd3402209a7baae0d741079cef184151bd6cfa3", "fetched_at": "2026-08-28T04:04:23.909528+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AMAP-ML/LongHorizon-Harness"}, {"content_hash": "e7b2264fdf9e084c18bc076c58d21312b319c67c445108fe6a3c737c462ba03b", "fetched_at": "2026-08-29T12:04:13.921941+00:00", "kind": "homepage", "missing": false, "url": "https://lh-harness.pages.dev"}], "taxonomy_version": 1}, "member_repos": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.909528+00:00", "source": "github"}, "name": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.909528+00:00", "source": "github"}, "platform": {"confidence": null, "enriched_at": "2026-08-30T04:44:56.121163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "75b0aa90cb690f1e91280adaacd3402209a7baae0d741079cef184151bd6cfa3", "fetched_at": "2026-08-28T04:04:23.909528+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AMAP-ML/LongHorizon-Harness"}, {"content_hash": "e7b2264fdf9e084c18bc076c58d21312b319c67c445108fe6a3c737c462ba03b", "fetched_at": "2026-08-29T12:04:13.921941+00:00", "kind": "homepage", "missing": false, "url": "https://lh-harness.pages.dev"}], "taxonomy_version": 1}, "pushed_at": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.909528+00:00", "source": "github"}, "repo": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.909528+00:00", "source": "github"}, "stars": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.909528+00:00", "source": "github"}, "tags": {"confidence": null, "enriched_at": "2026-08-30T04:44:56.121163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "75b0aa90cb690f1e91280adaacd3402209a7baae0d741079cef184151bd6cfa3", "fetched_at": "2026-08-28T04:04:23.909528+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AMAP-ML/LongHorizon-Harness"}, {"content_hash": "e7b2264fdf9e084c18bc076c58d21312b319c67c445108fe6a3c737c462ba03b", "fetched_at": "2026-08-29T12:04:13.921941+00:00", "kind": "homepage", "missing": false, "url": "https://lh-harness.pages.dev"}], "taxonomy_version": 1}, "topics": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.909528+00:00", "source": "github"}, "urls": {"kind": "observed", "observed_at": "2026-08-28T04:04:23.909528+00:00", "source": "github"}, "use_cases": {"confidence": null, "enriched_at": "2026-08-30T04:44:56.121163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "75b0aa90cb690f1e91280adaacd3402209a7baae0d741079cef184151bd6cfa3", "fetched_at": "2026-08-28T04:04:23.909528+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AMAP-ML/LongHorizon-Harness"}, {"content_hash": "e7b2264fdf9e084c18bc076c58d21312b319c67c445108fe6a3c737c462ba03b", "fetched_at": "2026-08-29T12:04:13.921941+00:00", "kind": "homepage", "missing": false, "url": "https://lh-harness.pages.dev"}], "taxonomy_version": 1}, "what_it_is": {"confidence": null, "enriched_at": "2026-08-30T04:44:56.121163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "75b0aa90cb690f1e91280adaacd3402209a7baae0d741079cef184151bd6cfa3", "fetched_at": "2026-08-28T04:04:23.909528+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AMAP-ML/LongHorizon-Harness"}, {"content_hash": "e7b2264fdf9e084c18bc076c58d21312b319c67c445108fe6a3c737c462ba03b", "fetched_at": "2026-08-29T12:04:13.921941+00:00", "kind": "homepage", "missing": false, "url": "https://lh-harness.pages.dev"}], "taxonomy_version": 1}, "when_to_avoid": {"confidence": null, "enriched_at": "2026-08-30T04:44:56.121163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "75b0aa90cb690f1e91280adaacd3402209a7baae0d741079cef184151bd6cfa3", "fetched_at": "2026-08-28T04:04:23.909528+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AMAP-ML/LongHorizon-Harness"}, {"content_hash": "e7b2264fdf9e084c18bc076c58d21312b319c67c445108fe6a3c737c462ba03b", "fetched_at": "2026-08-29T12:04:13.921941+00:00", "kind": "homepage", "missing": false, "url": "https://lh-harness.pages.dev"}], "taxonomy_version": 1}, "when_to_choose": {"confidence": null, "enriched_at": "2026-08-30T04:44:56.121163+00:00", "kind": "inferred", "prompt_version": 1, "sources": [{"content_hash": "75b0aa90cb690f1e91280adaacd3402209a7baae0d741079cef184151bd6cfa3", "fetched_at": "2026-08-28T04:04:23.909528+00:00", "kind": "readme", "missing": false, "url": "https://github.com/AMAP-ML/LongHorizon-Harness"}, {"content_hash": "e7b2264fdf9e084c18bc076c58d21312b319c67c445108fe6a3c737c462ba03b", "fetched_at": "2026-08-29T12:04:13.921941+00:00", "kind": "homepage", "missing": false, "url": "https://lh-harness.pages.dev"}], "taxonomy_version": 1}}, "score": {"components": {"activity": 98, "longevity": 2, "rhythm": 98}, "computed_at": "2026-09-02T17:46:02.011165+00:00", "flags": ["young"], "formula": "round(0.45*activity + 0.35*rhythm + 0.20*longevity); archived -> min(score, 10)", "inputs": {"age_days": 29, "days_push": 13, "days_rel": 13, "gap_med": 2, "n_releases_24m": 8}, "score": 79, "version": 2}, "staleness": {"enrichment_outdated": false, "low_confidence": false, "scrape_days": 9, "stale_scrape": false}}