Harner

A coding harness as a service. Submit a task over HTTP and get a sandbox with a full Linux toolchain that writes code, installs packages, runs commands and researches the web — then stream its progress, answer its questions, and collect its files.

It is built for agents. A LangGraph or Google ADK agent calls Harner on a user's behalf, follows the work as it happens, answers anything the harness needs to ask, and keeps going across many turns.

API

https://api.harner.dev

Every endpoint takes a bearer token except /v1/health, which is open so probes can use it.

curl -s -X POST https://api.harner.dev/v1/tasks \
  -H "Authorization: Bearer $HARNER_API_KEY" \
  -H 'Content-Type: application/json' \
  -d '{"prompt":"write a python script that prints the first 10 primes and run it"}'

Or from Python, where the client handles the whole conversation — including the case where the harness stops to ask something:

from harner_client import HarnerClient

harner = HarnerClient("https://api.harner.dev", KEY)

result = harner.run(
    "scaffold a fastapi app; ask before picking a database",
    on_question=lambda q: "postgres",   # your agent decides here
)
print(result.text)

How it works

Status

The service reports its own health at api.harner.dev/v1/health, and the full OpenAPI schema is at /openapi.json.