Horizon monitors the structural dynamics of multi-turn AI conversations — semantic drift, temporal desync, causal light-cone collapse — dimensions every LLM is architecturally blind to.
No Python required. Request an alpha key via GitHub Discussions, then:
// ~/.cursor/mcp.json
{
"mcpServers": {
"horizon": {
"url": "https://horizon.leocelis.com/sse",
"headers": { "Authorization": "Bearer YOUR_KEY_HERE" }
}
}
}
Reload the Cursor MCP panel. Done — new_conversation, process_turn, configure_session appear instantly.
# Install
pip install horizon-monitor
# Verify (5 canonical scenarios, ~25s)
horizon-validate
# Use in Python
from horizon import FidelityMonitor
monitor = FidelityMonitor()
session_id = monitor.new_conversation()
result = monitor.process_turn(
session_id,
human_message="How does Python handle memory?",
agent_response="Python uses reference counting...",
timestamp="2026-05-06T21:00:00Z",
)
print(result.fidelity_score, result.health_status)
# MCP server via pip
pip install 'horizon-monitor[mcp]'
horizon serve # stdio — Cursor, Claude Desktop
# Or Docker
cd deploy/docker && docker compose up
# → MCP SSE on localhost:3847/sse
| Tool | Per-response quality | Drift across turns | Temporal desync | Horizon signals |
|---|---|---|---|---|
| LangSmith, Braintrust | ✓ | ✗ | ✗ | ✗ |
| RAGAS, DeepEval | ✓ | ✗ | ✗ | ✗ |
| Human raters | ✓ (subjective) | ✗ | ✗ | ✗ |
| Horizon | intentionally skipped | ✓ | ✓ | ✓ |
Horizon does not replace per-response tools. It adds the fourth dimension they all lack. Read the demand research →
| Gate | Constraint | v0.2.0 |
|---|---|---|
| V1 — proxy correlation | per-conv ρ ≥ 0.6, per-turn ρ ≥ 0.5 | 0.685 / 0.659 |
| V2 — per-event P/R | every event P ≥ 0.7 AND R ≥ 0.7 | all 16 events ≥ 0.70 |
| V3 — beats heuristics | rho lift > 25%, structural P ≥ 0.6 | +202.4% lift, P=R=1.00 |
| V5 — cross-domain | per-turn ρ ≥ 0.4 AND per-conv ρ ≥ 0.48 | min 0.517 / 0.718 |
Horizon was designed, validated, and shipped using IVD — a framework where the AI writes a structured intent artifact with constraints and tests, implements against it, and verifies before you see a line of code.
Every constraint Horizon enforces, every validation gate (V1–V5), every event type — all
defined in a single horizon_intent.yaml before implementation began.
The result: zero undeclared behavior, four independent validation gates passing at first attempt.