Overview
OpenHarness by HKUDS is a provider-agnostic agent infrastructure framework with 14,800 GitHub stars. It separates the LLM from agent behavior, supporting any OpenAI/Anthropic-compatible API plus subscriptions to Claude Code, Codex, and Copilot. It includes 43+ tools, MCP support, a Claude Code-compatible skills system, and the Ohmo personal agent running across chat platforms.
Features
- ✓Provider-agnostic — any OpenAI/Anthropic-compatible API
- ✓Subscription support for Claude Code, Codex, Copilot
- ✓43+ built-in tools including MCP integration
- ✓Skills system compatible with anthropics/skills
- ✓Ohmo personal agent for Feishu, Slack, Telegram, Discord
- ✓Multi-agent coordination with subagent spawning
Installation
pip install openharness-aiPros
- +Truly provider-agnostic — no vendor lock-in
- +Built-in personal agent for multi-channel deployment
- +Full Claude Code skills and plugin compatibility
- +Multi-agent coordination built into the core
- +Cost tracking and performance monitoring
Cons
- −Newer project with smaller community
- −Documentation still expanding
- −Requires understanding of harness abstraction
- −Some advanced features need configuration expertise
Alternatives
Documentation
OpenHarness
Overview
OpenHarness is an open-source agent harness framework developed by HKUDS (HKU DeepSeek) that provides the infrastructure layer between an LLM and its agent behavior. With 14,800 GitHub stars, it embodies the principle: "The model is the agent. The code is the harness."
OpenHarness supports a wide range of model backends — from Claude and OpenAI to DeepSeek, Ollama, and even subscriptions to Claude Code, Codex, and GitHub Copilot — making it genuinely provider-agnostic. It includes 43+ built-in tools, a Claude Code-compatible skills system, MCP integration, and a built-in personal agent called Ohmo that runs across Feishu, Slack, Telegram, and Discord.
Features
- Provider-Agnostic: Works with any OpenAI/Anthropic-compatible API, including local Ollama models
- Subscription Support: Leverages existing Claude Code, Codex, and Copilot subscriptions
- Agent Loop: Streaming tool-call cycle with retry backoff, parallel execution, and cost tracking
- 43+ Built-in Tools: File I/O, shell, web search, Jupyter notebook, MCP integration
- Skills System: On-demand knowledge loading compatible with
anthropics/skillsstandard - Plugin Ecosystem: Compatible with Claude Code plugins
- Permissions: Multi-level access modes with path-level and command-level rules
- Multi-Agent Coordination: Subagent spawning, team registry, background tasks
- Ohmo Personal Agent: Built-in persistent agent for Feishu, Slack, Telegram, Discord
- React TUI: Interactive terminal UI with command picker and permission dialogs
- Dry-Run Mode: Preview configurations without executing model calls
- Lifecycle Hooks: PreToolUse and PostToolUse hooks for customization
Installation
Via Install Script:
curl -fsSL https://raw.githubusercontent.com/HKUDS/OpenHarness/main/scripts/install.sh | bash
Via pip:
pip install openharness-ai
On Windows PowerShell, use openh instead of oh to avoid the built-in Out-Host alias.
Quick Start
# Launch the interactive agent
oh
# Switch to a specific model
oh --model claude-opus-4-7
# Run with dry-run to preview
oh --dry-run
Core Concepts
The Harness Pattern
OpenHarness separates the LLM (the intelligence) from the harness (the behavior). The harness handles tool calling, memory management, skill loading, permission enforcement, and multi-agent coordination. This separation allows the same harness to work with any model provider.
Skills
Skills are markdown-based knowledge modules loaded on demand. OpenHarness is compatible with the Anthropic skills standard, enabling skill portability across Claude Code and OpenHarness.
Multi-Agent Swarm
The framework supports native subagent spawning with a team registry and background task lifecycle — enabling complex multi-agent workflows without external orchestration.
Advanced Features
Custom Tool Definition
from openharness import Tool
tool = Tool(
name="custom-search",
description="Search internal knowledge base",
function=search_fn
)
Skills Configuration
skills:
- path: "./skills/research.md"
trigger: "research"
- path: "./skills/code-review.md"
trigger: "review"
Multi-Agent Team
from openharness import Team, Agent
researcher = Agent("researcher", model="deepseek-r1")
writer = Agent("writer", model="claude-opus-4-7")
team = Team([researcher, writer])
team.run("Write a market analysis report")
Model Provider Support
| Category | Providers |
|---|---|
| Anthropic-compatible | Claude, Moonshot/Kimi, GLM, MiniMax |
| OpenAI-compatible | OpenAI, OpenRouter, DashScope, DeepSeek, Groq, Ollama, GitHub Models, NVIDIA NIM, Google Gemini |
| Subscriptions | Claude Code, Codex, GitHub Copilot |
Examples
- Local Model Agent: Run a fully local agent with Ollama and no cloud dependencies
- Subscription Agent: Use your existing Claude Code subscription as the agent backend
- Personal Assistant: Deploy Ohmo across multiple chat platforms with persistent memory
- Research Team: Multi-agent research pipeline with cost tracking and parallel execution
Pros
- ✅ Truly provider-agnostic — no lock-in to any single model or vendor
- ✅ Built-in personal agent (Ohmo) for multi-channel deployment
- ✅ Full Claude Code skills and plugin compatibility
- ✅ Multi-agent coordination built into the core
- ✅ Dry-run mode for safe experimentation
- ✅ Cost tracking and performance monitoring
Cons
- ❌ Newer project with smaller community than established frameworks
- ❌ Documentation still expanding with feature velocity
- ❌ Requires understanding of the harness abstraction pattern
- ❌ Some advanced features require configuration expertise
When to Use
Use OpenHarness when you want provider flexibility, need a transparent and inspectable agent infrastructure, or are building research-grade agent systems. Ideal for developers who want to experiment with different models, build custom agent behaviors, or deploy persistent personal agents across chat platforms.
