The package on PyPI is harnessx and the import namespace is harnessx. Python 3.11 or newer is required.

Install the SDK

Add it to a uv project:

uv add harnessx

Any other installer works the same way; the package has no build step:

pip install harnessx

Optional dependencies

Install only the integrations your application uses, as extras:

uv add "harnessx[openai]"
uv add "harnessx[mcp,postgres]"
uv add "harnessx[all]"
Extra Adds
openai OpenAI provider dependencies
azure Azure OpenAI provider (same dependencies as openai)
openrouter OpenRouter provider dependencies
gemini Google GenAI provider
jev TypeSafe SDK for Choice, Score, and Noul decisions
mcp MCP clients and CLI
postgres Psycopg SQL backend dependencies
temporal Temporal, Redis, and S3 client dependencies
docker Docker SDK; a running daemon is also required
langsmith Tracing and evaluations
server FastAPI and Uvicorn for the web examples
all Every integration extra above

Installing an extra does not provision an external service or validate credentials. Importing decision types and running the offline Jev examples do not require the jev extra; live decisions do. See Decisions with Jev.

Configure credentials

The default provider reads ANTHROPIC_API_KEY from the process environment. Configure other providers as described in Model providers.

export ANTHROPIC_API_KEY="your-api-key"

For live Jev decisions, configure a separate TypeSafe key:

export TYPESAFE_API_KEY="your-typesafe-key"

Live routing also requires the selected generative provider's key and model. Classification and review can call Jev independently. See Decisions with Jev.

A standalone Agent application does not load a .env file for you; call load_dotenv yourself or export the variables before launching Python. The repository examples and harness-web load the repository's .env.

Work from the repository

The examples and harness-web live in the repository, not in the package. Clone it and let uv build the environment from the committed lockfile:

git clone https://github.com/datagol/agent-harness-x.git
cd agent-harness-x
uv sync --all-extras
uv run python -m examples.simple_chat

uv sync --all-extras installs the SDK in editable mode with every integration and the development tools, so uv run pytest -q runs the suite offline. Do not append .py to a module command. See Examples for what each entry point needs.

Check the installed version

uv pip show harnessx

This documentation describes harnessx 0.4; if you are upgrading from 0.3, read Migrating to 0.4 for every renamed and removed name. See Implementation status for backend qualification limits.