Skip to content

DeepHarness logo

DeepHarness

A harness for LLM agents: workspace tools, permissions, and typed, concurrent workflows.

Build agents that read and change a codebase under an explicit permission policy, and compose them as a graph of plain Python functions: parallel branches, typed state, and 15 LLM providers behind one interface.

Get started View on GitHub

Python 3.11+ Dependencies: httpx only Async native

Why DeepHarness

  • One dependency. That's it. httpx. Providers talk to vendor REST APIs directly — no OpenAI SDK, no google-genai, no transitive dependency sprawl.
  • Your state is a dataclass. Not an untyped dict. Your editor autocompletes it, your type checker checks it.
  • Nodes are just functions. Sync or async, decorated in place. No base class to inherit, no runner object to construct.
  • Parallel by default. Independent branches run concurrently via asyncio; sync functions are offloaded to threads so a blocking call never stalls the event loop.
  • Agents are optional. The graph engine has no idea what an LLM is. Use it for plain function orchestration, or drop an Agent inside a node.
  • A harness, not just a loop. Workspace-confined file and shell tools, MCP servers, a per-call permission policy, a bounded context window, progress events and progress events and provider wrappers — the parts a run needs once it is long enough to matter.

Install

pip install deepharness

Requires Python 3.11+.

Where to go next

  • Getting started


    Install the package and run your first graph in a few lines.

    Getting started

  • Graphs


    State, nodes, edges, conditional routing, and parallel merging.

    Graphs guide

  • Agents


    Think/act loops, context management, progress events, budgets, and resumable sessions.

    Agents guide

  • Build a coding agent


    Tools, permissions, approvals, context and sessions, one decision at a time.

    Coding agent guide

  • Tools & permissions


    Workspace-confined file and shell tools, MCP servers, and per-call rules.

    Tools guide

  • API reference


    The full public surface: signatures, parameters, return types.

    API reference