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.
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"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);
}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)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.
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);
}MIT