hkHarness Kit
Getting Started

How It Works

harness-kit is three things — a config format, a desktop management console, and a CLI — plus a plugin system that delivers skills and agents to your AI coding tools.

Using a coding agent? Install the Harness Kit docs as a skill:
npx skills add https://github.com/harnessprotocol/harness-kit --skill harness-docs

harness-kit has three main components and a plugin system. harness.yaml is the config format at the center of everything. The desktop app is a multi-section management console for it. The harness-kit CLI is a standalone terminal tool that compiles it. Plugins — SKILL.md files, agents, hooks, scripts — run inside your AI tools.

harness.yamlplugins:research board explainmcp-servers:memory filesysteminstructions:{ operational, behavioral }permissions:{ tools, paths, network }env:ANTHROPIC_API_KEY: ${...}extends:profiles/backend-engineer.yamlmanagescompile / validateDESKTOP APPCOREHarnessMarketplaceINSIGHTSObservatorySYSTEMSecurityWORKFLOWSBoardRoadmapOTHERAgentsComparatorParityAI ChatMemoryCLI — harness-kitstandalone terminal toolvalidatecompilesynccheckdetectscancompiles toNATIVE CONFIGS.claude/settings.json.cursor/rulescopilot configloads intoPLUGIN SYSTEMSKILL.md workflow definitionagents/ specialist subagentshooks/ lifecycle handlersscripts/ shell automationruns inHARNESSESClaude CodeCopilotCursorCodexsession data

harness.yaml

harness.yaml is the single declaration of your entire AI coding setup. It follows the Harness Protocol — an open, vendor-neutral specification.

plugins:
  - research@0.2.0
  - board@0.1.0
  - explain@0.2.0

mcp-servers:
  - name: memory
  - name: filesystem

instructions:
  operational: "Always create a feature branch. Never commit to main."
  behavioral: "Direct, concise. Lead with the answer."

permissions:
  tools:
    allow: ["Bash", "Edit", "Read"]
    deny: ["WebFetch"]
  network:
    allow: ["api.anthropic.com"]

env:
  ANTHROPIC_API_KEY: ${ANTHROPIC_API_KEY}

extends:
  - profiles/backend-engineer.yaml

The full schema supports version, kind, metadata, plugins, mcp-servers, instructions, permissions, env, and extends. Harness Protocol spec →


Desktop App

The desktop app is a management console organized into named sections. It reads your harness configuration, provides observability into what your AI tools are doing, and gives you direct control over the pieces that are hard to manage from a terminal.

CORE

  • Harness — view and edit your harness.yaml, CLAUDE.md, plugins, MCP servers, and hooks in a structured UI
  • Marketplace — browse and install plugins from the registry

INSIGHTS

  • Observatory — session telemetry: every session, every tool call, token usage, timeline, trends

SYSTEM

  • Security — permissions, secrets management, audit log

WORKFLOWS

  • Board — AI-native Kanban board with real-time two-way sync; agents pick up cards, flag for review
  • Roadmap — AI-generated quarterly roadmaps and competitor analysis tied to your board

Standalone sections

  • Agents — monitor and manage specialist subagents running across your harness
  • Comparator — run the same prompt across Claude Code, Cursor, and Copilot side by side
  • Parity — track which plugins, MCP servers, and skills are loaded in each connected AI tool
  • AI Chat — keyboard-first chat window with Ollama support and integrated tools
  • Memory — browse, search, and manage the knowledge graph your agents orient themselves in

CLI

The harness-kit CLI is a standalone terminal tool. You run it from your shell; it is not a plugin and does not run inside an AI tool's session.

harness-kit validate          # check harness.yaml against the schema
harness-kit compile           # compile harness.yaml into native per-tool configs
harness-kit sync              # fetch plugins into local cache, write harness.lock
harness-kit check             # detect drift between compiled output and harness.yaml
harness-kit detect            # show which AI platforms are present in the working directory
harness-kit scan              # security audit of installed plugin skill files

compile outputharness-kit compile writes native configuration files for each detected AI tool: .claude/settings.json for Claude Code, .cursor/rules for Cursor, and so on. Each AI tool then loads those files at session start. This is how harness.yaml becomes active in your AI tools — it is compiled, not interpreted at runtime.

Installation

See Installation for Homebrew, npm, and binary options.


Plugin System

Lifecycle

Source — you register harness-kit as a plugin source in your AI tool. This points to the collection, not individual plugins.

Install — you install a plugin by name. The plugin directory is downloaded locally.

/plugin install research@harness-kit

Discovery — at session start, your AI tool scans installed plugins and registers any skills it finds.

Invocation — you run a slash command. The matching SKILL.md is loaded into context as the workflow definition.

/research https://github.com/anthropics/claude-code

Execution — the AI follows the steps in SKILL.md, using available tools: file I/O, web fetch, shell commands, MCP servers.

Plugin Anatomy

plugins/<name>/
├── .claude-plugin/
│   └── plugin.json       # name, version, description
├── skills/
│   └── <name>/
│       ├── SKILL.md      # the workflow (what the AI reads at invocation)
│       └── README.md     # human docs
├── scripts/              # optional: shell automation
├── hooks/                # optional: Stop, PreTool, PostTool handlers
└── agents/               # optional: isolated specialist subagents
ComponentRoleWhen it runs
plugin.jsonMetadata — name, version, descriptionAt install and update
SKILL.mdWorkflow definitionAt slash command invocation
scripts/Shell scripts called by skills or hooksOn demand
hooks/Lifecycle event handlersOn harness lifecycle events
agents/Isolated workers with scoped tools and a fresh context windowWhen a skill delegates to a named agent

SKILL.md vs. a prompt

A SKILL.md is a complete workflow specification, not a prompt template:

  • Mandatory step ordering — steps execute in sequence, no skipping
  • Input parsing rules — how to interpret arguments and flags
  • Tool usage patterns — which tools to call, when, and how
  • Output structure — exact format for results
  • Error handling — explicit recovery steps when things fail
  • Common mistakes table — known failure modes and fixes

This structure makes skills repeatable across sessions and transferable across users. The same /research invocation produces the same workflow regardless of who runs it.


Portability

Your harness is fully reproducible. Config files live in version control; plugins reinstall from the registry with the same commands.

Your MachineIN YOUR REPOCLAUDE.mdAGENT.md.mcp.jsonPLUGINSexplainresearchlineagereview ...git clone/plugin installNew MachineIN YOUR REPOCLAUDE.mdAGENT.md.mcp.jsonPLUGINSexplainresearchlineagereview ...

Your harness.yaml serializes your whole setup. Share it, import it, or use it to bootstrap the same configuration on any machine.

/harness-export                       # capture plugins, versions, sources → harness.yaml
/harness-import harness.yaml          # interactive picker: teammate chooses what to install

Design Philosophy

harness-kit is a framework without a runtime. No SDK, no build step, no execution layer to depend on. The framework is the config format and the portability it creates.

The SKILL.md is the portable unit. Plugins add distribution, versioning, and automation on top — but the workflow itself is plain text that any AI tool can read. Uninstall a plugin and nothing breaks, because nothing was ever coupled to it.

The spec is open. The format travels.

On this page