Skip to main content

A Claude-Code-style agent harness implemented mostly in natural language

Project description

LinguaClaw

arXiv CI Release License: MIT

A Claude-Code-style agent harness implemented mostly in natural language: LiteLLM at the model boundary, one bash tool at the action boundary, and reusable harnesses everywhere else.

LinguaClaw is the open-source implementation and continuation of the Natural-Language Agent Harnesses (NLAH) line of work. We are building it as a natural-language implementation of the Claude Code idea: a very thin runtime, a strong runtime policy, and most behavior expressed as reusable markdown modules instead of framework glue code.

Paper: Natural-Language Agent Harnesses Reproduction guide (WIP): How to Reproduce the NLAH Paper Results

What We Are Open-Sourcing

The broader LinguaClaw open-source effort is organized around three connected layers:

  1. The runtime itself together with reusable natural-language harnesses.
  2. An experiment platform for testing agents and skills on benchmarks.
  3. A unified interface for running dozens of agents under one consistent contract.

This repository is the public starting point for that effort. The benchmark-facing experiment platform will live in a separate repository; this repository focuses on the runtime, reusable harnesses, and the public package surface.

Why LinguaClaw

Modern agent performance increasingly depends on harness engineering, but harness logic is often hidden inside glue code, runtime defaults, and framework-specific orchestration. LinguaClaw treats harness design as a first-class artifact:

  • Natural-language-first harness logic instead of hard-coded controller bundles.
  • Explicit contracts, roles, artifacts, and stopping conditions.
  • A shared runtime that can interpret reusable harness modules.
  • A path toward more modular benchmarking, comparison, and customization.

In practice, we care about harnesses that can coordinate subagents, memory, compression, verification, and task-specific procedures without freezing every decision into handwritten controller code.

Current Status

The public runtime is intentionally small and already runnable. It assembles a prompt stack from the runtime policy plus selected harnesses, calls LiteLLM, dispatches one native bash tool, records the message history, and automatically compresses context once the prompt reaches roughly 80% of the model window.

Getting Started

uv tool install git+https://github.com/curated-skills/NLAH.git
linguaclaw --version

For local development, clone the repository and install it in editable mode:

git clone https://github.com/curated-skills/NLAH.git
cd LinguaClaw
uv venv
source .venv/bin/activate
uv pip install -e .[dev]

Copy the environment template and fill in the provider credentials you need:

cp .env.template .env

Then a minimal run looks like:

linguaclaw run \
  --harness trae-agent \
  --task-file task.md \
  --model gpt-5.4-mini

Or pass the task inline:

linguaclaw run \
  --harness trae-agent \
  --prompt "Inspect the repository and explain the runtime entrypoint." \
  --model gpt-5.4-mini

--harness usually points at a complete harness under harnesses/artifacts/. If you want a lighter custom stack, it can also point at reusable modules under harnesses/modules/ or at a direct SKILL.md path. Passing it multiple times is how you compose those layers.

Contributing

See CONTRIBUTING.md.

This project is intentionally friendly to natural-language-first development. Traditional unit tests are welcome when they fit, but behavior reports, demo artifacts, and trajectory-based evidence are often more informative for harness changes.

Architecture And Roadmap

The short version is simple: this repository ships a thin runtime built around LiteLLM + one bash tool + minimal run state + reusable markdown harnesses. Benchmark orchestration and large-scale experiment plumbing will stay in a separate repository.

Acknowledgements

Special thanks to Ronak Shah for the public signal boost and the broader discussion around harness engineering that helped motivate this project.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

linguaclaw-0.1.0.tar.gz (64.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

linguaclaw-0.1.0-py3-none-any.whl (71.0 kB view details)

Uploaded Python 3

File details

Details for the file linguaclaw-0.1.0.tar.gz.

File metadata

  • Download URL: linguaclaw-0.1.0.tar.gz
  • Upload date:
  • Size: 64.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for linguaclaw-0.1.0.tar.gz
Algorithm Hash digest
SHA256 0679bb4428f58cae3f7a99af217be25e33af4be96b4da115181d8916d4d6619e
MD5 15bae0d67cc8e73c10fb11a36c41914f
BLAKE2b-256 498e01dcff945e4f8e19d9a760a4e7d8dad7619738f98699b4fdcc0f31746004

See more details on using hashes here.

File details

Details for the file linguaclaw-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: linguaclaw-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 71.0 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.5

File hashes

Hashes for linguaclaw-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 ccaf46735d8e3b996f5db2fd942f7fe5dec7e7859fc8d14c9a2957cc8dad4016
MD5 00b49169e1dd266238df01bd44c0f564
BLAKE2b-256 50df99edc54bad5e3dabb876fa6f0f2c76f2347bc19f850c203be5b64cd990dd

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page