Skip to content

AI agents on your own hardware.

Open-source agent harness for local LLMs.

localharness startup banner — the local_harness wordmark, version, detected model, and prompt
install
git clone https://github.com/ahwurm/localharness && cd localharness && uv sync

Same workflow, same output

The jobs you already run — unchanged.

It takes longer

Local models are slower. That's the tradeoff.

Much lower cost

Your hardware. No API meter.

Architecture

A thin orchestrator routes. Divisions isolate. Everything leaves a trace.

orchestrator thin — route · index · escalate division agent yaml agent yaml division agent yaml isolated context + memory typed event bus memory · audit · channels subscribe — append-only JSONL trace react agent loop stuck detection · budgets · compaction tools read · write · edit · glob · grep · bash · agent · web — deny-first permissions provider auto-detect openai-compatible · native or XML tool calls vLLM Ollama LM Studio llama.cpp
  • Thin orchestrator

    Routes, indexes, escalates. Agents do the work with fresh context.

  • Event bus spine

    Every action and observation is a typed event — persisted append-only.

  • One guarded loop

    ReAct with stuck detection, budgets, and compaction sized to the model.

  • Any endpoint

    Provider auto-detected. Native tool calls where supported, XML where not.

Autoresearch

The harness improves itself — under a gate. Changes ship only if the bench says so.

mutation archive — pareto sampling propose one mutation bench train scenarios gate stats vs baseline adopt promote to config sealed holdout never run while proposing — final check only
$ uv run localharness autoresearch run  # one iteration$ uv run localharness autoresearch review  # inspect$ uv run localharness autoresearch adopt  # promote$ uv run localharness components list  # registry

local_shift

Migrate frontier-AI workloads to local LLMs — proven per workload, not assumed.