Skip to content
Code 0.4 · Harness 1.5 · Open source (MIT)

Delegate the code
Keep control

A coding agent governed by design. It works inside a sealed boundary, and nothing reaches your repo until you approve the exact patch.

Become a design partner →
❯ zhivex-code
zhivex code 0.4 · harness 1.5
task › Fix the failing tests in src/billing
✓ context bound repo acme/api @ 4f2c9e1 · src/billing/**
✓ sandbox: opt-in OCI snapshot · no network · no secrets
› running tests… 2 failing invoice.test.ts
? approval run `pnpm test src/billing` in sandbox? yes
--- a/src/billing/invoice.ts
+++ b/src/billing/invoice.ts
@@ -41,7 +41,7 @@
- const total = items.reduce((s, i) => s + i.price, 0);
+ const total = items.reduce((s, i) => s + i.price * i.qty, 0);
- return round(total * tax);
+ return round(total * (1 + tax));
✓ tests pass 14 passed · 0 failed
? Import this exact patch? ✓ approved
✓ patch admitted sha256:9c1e…a7 · no git writes made
Illustrative session for Code 0.4 and Harness 1.5, not a recorded run. Isolated OCI execution is opt-in.
How it works

Four steps · One boundary
Your approval at the gate

Every task follows the same governed path, from context to proof.

01

Bind context

The task binds to a repo, a commit and the files in scope. No drifting context.

02

Work in the boundary

The default runtime exposes no host shell. Isolated commands run in an opt-in OCI snapshot with no network and no secrets.

03

Approve

Sensitive steps pause for you. You see the diff and test results before anything moves.

04

Admit & prove

The exact approved patch is admitted, with a record of what ran and what changed.

Boundaries

What the agent can't do

Limits are enforced by the runtime, not requested in a prompt.

$ sh -c "…" on host

No arbitrary host shell

The default runtime exposes no shell. Isolated commands stay in the configured sandbox.

curl https://…

No container network

With isolated execution on, the container has no network.

git push origin main

No automatic Git writes

Commits and pushes stay yours. The agent proposes a patch.

apply --force stale.patch

No silent stale-patch overwrite

If your tree moved, the patch is rejected, not forced.

17 OCTOBER 2026 · Harness 1.5.0

What's new in 1.5

Harness 1.5.0 and Code 0.4.0 are on npm latest. The Code CLI is zhivex-code. Published releases are verified with npm provenance. These notes follow the repository changelogs. Bedrock and Azure OpenAI are provisional and not live-certified.

Local web workspace

The local web workspace is reworked around review: a sessions drawer, light and dark themes, a movable diff panel, and a searchable model selector. zhivex-code project add registers a folder for a running local server.

Task and evidence

The local web client adds a task and evidence panel: goal, revision, artifact and check provenance, task-wide accounting, and explicit accept, correct, and continue. Web task control negotiates task.control.v1.

Audit pack

zhivex-code export-audit and verify-audit, and the same zhx commands, use the experimental @zhivex-ai/harness/audit entrypoint. Verification checks the pack without resolving provider, store, or budget configuration.

Bedrock and Azure OpenAI

Provisional routes on the matched engine. Bedrock Converse reports Tier B. BEDROCK_RUNTIME=openai and Azure OpenAI are the Tier A paths. These routes have no live certification.

Security hardening

restore_file is pinned to a destination and digest. Each budget ledger stays bound to its source namespace. Protected paths compare in locale-independent lowercase. High-entropy output from credential-bearing MCP servers is flagged.

Release provenance

Published Harness and Code releases are verified with npm provenance. npm latest for this pair is Harness 1.5.0 and Code 0.4.0.

Build on the Harness · @zhivex-ai/sdk 1.34.0

The integration layer
underneath Zhivex Code

Harness’s integration layer, and a standalone TypeScript SDK. The same generateText, streamText, tools, and durable agents run on Bun and Node.js. Install only the adapters you use. 1.34.0 adds an experimental MCP server.

14providers

274models

one npm install@zhivex-ai/sdk

Default model catalog in Zhivex/zhivex-ai-sdk@c3f4bf58d2bd1fee8fc0d3be44b432507350b95c, packages/sdk/src/catalog/fragments.ts. 14 provider fragments, 274 entries.

$ npm install @zhivex-ai/sdk @zhivex-ai/openaiMIT · SLSA provenance · 1.34.0

The Harness runs the governed coding agent. This SDK is that integration layer and a standalone SDK: generation, tools, durable agents, an experimental MCP server, and @zhivex-ai/sandbox-docker 0.2.0.

import { streamText } from "@zhivex-ai/sdk";
 
const result = streamText({
  provider: "openai",
  prompt: "Say hello from the unified SDK."
});
 
for await (const chunk of result.textStream) {
  process.stdout.write(chunk);
}

Illustrative stream. The provider id is the only line that changes.

14 provider adapters · One contract

OpenAITier A
Azure OpenAITier A
BedrockTier B / A by runtime
xAITier B
MetaTier B
AnthropicTier B
GeminiTier B
VertexTier B
QwenTier B
DeepSeekTier B
Z.aiTier B
OpenRouterTier C
KimiTier C
OllamaTier C
Tier A approval-capable hosted tools or remote MCPTier B strong tool-using agentsTier C basic tool loops
@zhivex-ai/sdk@zhivex-ai/core@zhivex-ai/agents@zhivex-ai/react@zhivex-ai/gateway@zhivex-ai/openai@zhivex-ai/xai@zhivex-ai/meta@zhivex-ai/azure-openai@zhivex-ai/anthropic@zhivex-ai/gemini@zhivex-ai/vertex@zhivex-ai/qwen@zhivex-ai/kimi@zhivex-ai/deepseek@zhivex-ai/zai@zhivex-ai/openrouter@zhivex-ai/bedrock@zhivex-ai/ollama@zhivex-ai/sandbox-docker
generateText · streamText

Portable generation

The same calls on every adapter. Switching providers means changing the model line.

tool() · toolChoice

Tools

Callable tools with tool choice across adapters.

generateObject · streamObject

Structured output

Schema-validated objects, native where the provider supports it.

reasoning: { effort }

Reasoning

One effort ladder, mapped to each provider’s native controls.

Hosted tools / MCP

Hosted tools

Provider-hosted tools, web search and remote MCP where available.

Files API · multimodal

Files & media

Files, image, audio and realtime sessions on supported adapters.

resumeAgent · sessions

Durable agents

Sessions stored in Postgres, SQLite or a file you operate.

getApiStability()

Stability contract

Every export is stable, beta or experimental. CI fails if one is unclassified.

@zhivex-ai/gateway

Gateway

In-process policy routing and fallback across registered adapters.

createAgentApprovalQueue

Approvals (beta)

Human approval queues for agent actions.

@zhivex-ai/react

React

Headless chat state, SSE transport and accessible components.

Bun · Node.js

Server runtimes

Node.js, Bun, route handlers or workers. Keys stay on the server.

@zhivex-ai/sdk/mcp-server

MCP server

Experimental. Local tools and agents over Streamable HTTP and newline-delimited stdio. Tools that require approval are not executed.

@zhivex-ai/sandbox-docker

Docker sandbox

Experimental reference environment, version 0.2.0. Each run gets a non-root container, network off by default, resource limits, snapshots, and lease-aware resume.

import { createEgressPolicy, generateText } from "@zhivex-ai/sdk";import { createOpenAI } from "@zhivex-ai/openai"; const apiKey = process.env.OPENAI_API_KEY;if (!apiKey) throw new Error("Set OPENAI_API_KEY in the server environment."); const egressPolicy = createEgressPolicy({  allow: [{    provider: "openai",    model: "gpt-6-astra",    region: "*",    endpoint: "api.openai.com"  }]}); const result = await generateText({  model: createOpenAI({ apiKey })("gpt-6-astra"),  prompt: "Describe Zhivex AI SDK in one sentence.",  egressPolicy,  egress: { endpoint: "api.openai.com" }}); console.log(result.text);
Source: Zhivex/zhivex-ai-sdk · README.md · Quick Start
Design partners

Shape a governed coding agent with us

We're opening 10 design partner spots for teams who want to delegate real work without giving up control.

10 spots