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
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
Install
In your terminal, with SkillFoxx CLI
npx skillfoxx add cli/localharnessDetects the agents on your machine, shows the access level and pins the version.
Other ways to install
Access and checks
How we reviewBroad 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 onlyLimitations
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.
Related
CLI toolsllmman runs Claude Code, Codex and OpenCode on a local or hosted model with one command and stores models as OCI images
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
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
A CLI that runs LLM agents in Minecraft via Mineflayer: mining, building, combat, chat, sessions that survive restarts
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
lilbee runs local models across several GPUs and gives agents MCP search over your files with a file and line citation
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.