Call all agent harnesses using the Claude Agent SDK format.
lite-harness manages:
- One TypeScript and Python interface for multiple agent harnesses
- Harness switching with
harness, model switching withmodel - Claude Agent SDK-compatible streaming messages and errors
Preview: the SDK is not published to npm or PyPI yet. Clone this repo to try it. If you want a packaged release, please file an issue.
Setup (clone)
git clone https://github.com/LiteLLM-Labs/lite-harness.git cd lite-harness # install the backend server's deps once — the SDK auto-spawns it from the clone npm install --prefix src/sdk/server # pick a model — set the key for your provider: export ANTHROPIC_API_KEY=sk-ant-... # for harness "claude-code" export OPENAI_API_KEY=sk-... # for harness "codex"
TypeScript Usage
npm install --prefix src/sdk/typescript && npm run build --prefix src/sdk/typescriptimport { query } from "@lite-harness/sdk"; const prompt = "Fix the failing test"; // Claude Code harness for await (const message of query({ prompt, options: { harness: "claude-code", model: "claude-opus-4-8" }, })) { console.log(message); } // Codex harness for await (const message of query({ prompt, options: { harness: "codex", model: "gpt-5.5" }, })) { console.log(message); }
Python Usage
pip install -e src/sdk/python # editable install of the client (Python 3.10+)from lite_harness import query, AgentOptions prompt = "Fix the failing test" # Claude Code harness async for message in query( prompt=prompt, options=AgentOptions(harness="claude-code", model="claude-opus-4-8"), ): print(message) # Codex harness async for message in query( prompt=prompt, options=AgentOptions(harness="codex", model="gpt-5.5"), ): print(message)
Supported Harnesses
See src/sdk/server/providers/ for the full list.
claude-code: Claude Agent SDK / Claude Code behavior. Upstream: Python, TypeScript.codex: OpenAI Codex CLI behavior. Upstream: openai/codex.pi-ai: Pi AI behavior.
With LiteLLM AI Gateway
Add LiteLLM AI Gateway when you want central keys, budgets, logs, fallbacks, and provider routing.
export LITELLM_API_BASE=https://litellm.your-company.com/v1 export LITELLM_API_KEY=sk-litellm-...
import { query } from "@lite-harness/sdk"; for await (const message of query({ prompt: "Debug this production trace", options: { harness: "codex", model: "anthropic/claude-opus-4-8", }, })) { console.log(message); }
Docs
License
MIT