LocalHarness CLI

LocalHarness runs agents on your local models through vLLM, llama.cpp, Ollama or LM Studio, with YAML agents and a permission gate

  • 69 ★ on the repository
  • Last commit
  • MIT
CLI

Broad access

Why this level

  • Agents run tools and MCP servers on your machine, and some plugins open browser and network access
  • The mobile plugin exposes an agent control page that takes commands from a phone
All reasons and checks

ahwurm/localharness

Install

In your terminal, with SkillFoxx CLI

npx skillfoxx add cli/localharness

Detects the agents on your machine, shows the access level and pins the version.

Other ways to install

Access and checks

How we review

Broad accessThe tool can change data, run commands or handle secrets.

  • Agents run tools and MCP servers on your machine, and some plugins open browser and network access
  • The mobile plugin exposes an agent control page that takes commands from a phone

This is third-party code. Review the repository files before installing.

What it does

LocalHarness is an open-source self-hosted harness for agents on local language models. It connects to a model over an OpenAI-compatible API (vLLM, llama.cpp, Ollama, LM Studio) or starts one itself. `localharness start` finds a model on the machine or offers a download, picks a launch preset and remembers your choice. Launch size is computed from the model files: context windows are read, a llama.cpp launch is priced from the GGUF tensor table, and MoE experts move to RAM when they do not fit on the GPU. Agents are described in YAML, live in the project `.localharness/agents/` or your home folder and receive tools, MCP servers and one permission gate before every call. An agent that reads untrusted content, such as a web page or an MCP result, is not given tools that change the machine. Memory is SQLite, and there is no account or telemetry. Plugins switch on with `localharness plugins enable`: images through ComfyUI, a mobile page, dispatch, autoresearch and a browser.

Who it is for. People who host models with Ollama, llama.cpp, vLLM or LM Studio and want to run agents on them with tools and permission control.

Good fit when

  • A model already runs locally and needs agents with tools and MCP
  • It is unclear which llama.cpp launch fits this machine and with what context window
  • An agent reads web pages and must not get tools that change files
  • Agents should be described in YAML files and kept in the project
  • You want memory with no external account and no telemetry

Not a fit when

  • You work with cloud Claude or GPT models: the harness targets local ones
  • You have no Python 3.12 or uv and cannot install them
  • You need a ready Claude Code plugin: this is a standalone harness of its own

Example request

Run localharness start, pick a local model and create a reviewer agent that has file reading only

Limitations

Python 3.12 or newer and `uv` are required. It works with four runtimes, vLLM, llama.cpp, Ollama and LM Studio, and live validation was done on a DGX Spark. A model that fits nowhere is refused at launch. No temperature is sent by default, so server settings apply. The image plugin needs ComfyUI, and `plugins enable` writes `overrides.yaml` and leaves `config.yaml` alone. The mobile app and embedding memory come as extras in `localharness[embeddings,mobile]`.

How to disable. Run `uv tool uninstall localharness`. Data lives in `~/.localharness` and is deleted by hand, and plugins switch off with `localharness plugins disable`.

FAQ

How do I install LocalHarness?

Run `uv tool install 'localharness[embeddings,mobile]'`, then `localharness start`. A model server need not be running beforehand.

Which runtimes are supported?

vLLM, llama.cpp, Ollama and LM Studio. Agents, tools, the permission gate and plugins are the same on all four.

How is an agent described?

A YAML file in the project `.localharness/agents/` or in `~/.localharness/agents/`. The project file wins on a name clash.

Does data leave the machine?

Not by default: memory is SQLite, and logs and bench results stay on disk, with no account and no telemetry.

How do I enable a plugin?

With `localharness plugins enable <name>`, for example `image` with a ComfyUI address. Inside a session `/plugins enable <name>` works.

Discussion

No questions or reviews yet.

CLI tools

llmman runs Claude Code, Codex and OpenCode on a local or hosted model with one command and stores models as OCI images

CLIExtended access590Repository stars
Official

The Harness MCP server: one agent starts other Claude Code and Codex sessions on your computer, waits for them, reads their answers and closes them

MCP serverBroad access1.5KRepository stars

Late is a coding AI agent in one Go binary: an orchestrator plans while disposable subagents code and research, on llama-server or cloud models

CLIBroad access456Repository stars

A CLI that runs LLM agents in Minecraft via Mineflayer: mining, building, combat, chat, sessions that survive restarts

CLIExtended access214Repository stars
Needs a VPN

A CLI that keeps an existing agent on a long task: plan a step, run it, verify the result in the real environment and checkpoint progress

CLIBroad access1.9KRepository stars

lilbee runs local models across several GPUs and gives agents MCP search over your files with a file and line citation

MCP serverExtended access70Repository stars

README in short

The README presents the project as an agent harness for local models and explains what it handles: launch sizing, the model server, privacy and permissions. A quick start, YAML agent description, a runtimes table and a plugin table with enable commands follow.

README badge

Report a problem