LongHorizon-Harness — TON14 fork
This is my actively maintained fork of AMAP-ML/LongHorizon-Harness, a role-orchestrated harness (Manager → Executor → Auditor) that turns agent CLIs into long-horizon computer-use systems. Upstream went quiet after 2026-08-20 (v0.1.7), so the fork carries the project forward on its own line.
The complete original project documentation — install walkthroughs, the loop
engineering story, benchmarks, configuration reference — is preserved verbatim
from the v0.1.7 tag: see docs/upstream/README.md
(English) and docs/upstream/README.zh-CN.md
(中文). Everything below is specific to this fork.
What the fork adds
- ZCode agent backend (
lhht run --agent zcode): drives the headless runtime bundled with the ZCode desktop app on GLM models (glm-5.3default,glm-5.3-flash), with role-scoped permission modes (planfor the manager and auditors,yolofor executors). The reasoning effort (low/high/max) rides in an isolated per-run copy of ZCode's session database plus a.zcode/config.jsonprovider declaration written into the workspace — the operator's~/.zcodeis never touched. - Reasoning effort for every backend: on top of upstream's
reasoning_effortchain (Codex, Claude Code, OpenCode), the DeepSeek Harness backend forwards the level through anllm-deepseekpatch layer, and ZCode through its session store. Per-role, verbatim, no cross-backend mapping. - Bilingual control tokens: the manager/auditor parsers accept route lines and control markers in both English and Russian.
- A modern toolchain floor: Python ≥ 3.14 (tomli fallbacks removed),
Node.js ≥ 22 with CI provisioning 24;
make checkis the pre-push gate. - Honest CI:
tests.ymlruns the Python suite on ubuntu/windows × 3.14 plus a web job (frontend core suite + typecheck) on every push and pull request;release.ymlbuilds and verifies distributions without publishing (the PyPI name belongs to upstream).
Installing
The PyPI package lh-harness is upstream's release and does not contain the
work above — install from this repository:
pip install lhht # or: uv tool install lhht
Naming note: the fork owns its identity end to end — the PyPI distribution, the console command, the import module (
import lhht), theLHHT_*environment variables, and the.lhht/state directory are alllhht. The originallh-harnessinstalls alongside it cleanly, so both can drive the same project folder for comparison.
Building from source (what the development loop uses):
git clone https://github.com/TON14/LongHorizon-Harness.git
cd LongHorizon-Harness
npm run build --prefix frontend/web # the Web workbench bundle
uv tool install --force . # installs the `lhht` command
Developing
make help # all targets
make check # both suites + typecheck, everything expected green
make dev-api # control API on 127.0.0.1:8799
make dev-web # Vite dev server on :5173, proxying /api
The tool installs as lhht (import module and the .lhht/ state directory keep their
historical names). The harness is also used to develop itself: a repo-root .lhht/config.toml
defines the roles (manager/executor on glm-5.3-flash, auditor on glm-5.3,
effort max), and tasks run with lhht run --task @task.md. Agents edit
the working tree; the operator reviews, runs make check, and commits.
Credits
The foundation is the AMAP-ML team's work — every contributor is listed on the contributors page. The fork's line is maintained by TON14.
Metadata
Release files for lhht 0.3.0
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| lhht-0.3.0.tar.gz | 373.2 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| lhht-0.3.0-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 756.1 kB
Release files / lhht-0.3.0.tar.gz
| Download URL | lhht-0.3.0.tar.gz |
|---|---|
| Size | 373.2 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
0965e214ded0b885ca0fad66f7c0fcfc8508a509d2865bbe46b9734b4758ead2
|
|
BLAKE2b-256 checksum How to use checksums |
6469259d5a7c805dde9e11d1c578364c1c59c699b1ef7119436e51373c34b18f
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency logRelease files / lhht-0.3.0-py3-none-any.whl
| Download URL | lhht-0.3.0-py3-none-any.whl |
|---|---|
| Size | 382.9 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
efc0bd12af2ad4ab4075011a1f1d1c40dac9022f9145925a8b8bb7507e8c9030
|
|
BLAKE2b-256 checksum How to use checksums |
2b6666674b4a0300c404df4174c3c5515789a4eba393262ecfab9e323c856dfd
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
Yes |
| Uploaded via |
twine/7.0.0 CPython/3.13.14
|
Provenance
Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.
PyPI Publish Attestation
PyPI verified that this artifact, at this checksum, originated from the publisher listed below.
Signed by GitHub Actions, verified by PyPI on Sep 18, 2026.
Transparency log