Skip to main content

Unified launcher for AI coding agent harnesses

Project description

Harnyard

A unified launcher for AI coding agent harnesses.

Start Claude Code, Copilot CLI, Kiro CLI, or Pi from a single command -- with shared config under .claude/.

Why

AI coding tools are converging on the same concepts: skills, plugins, MCP servers, hooks, and project context files. But each tool looks for config in different places and uses slightly different formats. Harnyard manages the translation layer so you can maintain one source of truth and launch any harness.

Supported Harnesses

Harness Command Config Dir Status
Claude Code claude .claude/ Canonical
Copilot CLI copilot-cli .claude/ Native support
Kiro CLI kiro .kiro/ Symlink from .claude/
Pi pi .pi/ Symlink from .claude/

Quick Start

# Install
pip install harnyard     # or: pipx install harnyard

# Run without installing
uvx harnyard list

# Start a harness in the current project
hy claude              # Start Claude Code
hy copilot             # Start Copilot CLI
hy kiro                # Start Kiro CLI
hy pi                  # Start Pi Coding Agent

# Setup symlinks for a harness
hy setup kiro          # Create .kiro/ symlinks pointing to .claude/
hy setup pi            # Create .pi/ symlinks pointing to .claude/
hy setup --all         # Setup all harnesses

# Show what each harness sees
hy status              # Show config mapping for all harnesses

How It Works

  1. Canonical config: All your skills, plugins, agents, and context live under .claude/
  2. Harness profiles: Harnyard knows where each tool looks for config
  3. Symlink bridge: hy setup <harness> creates symlinks so each tool finds what it needs
  4. Launch: hy <harness> starts the tool with the right flags and environment

Config Mapping

.claude/                    # Canonical (Claude Code + Copilot CLI read natively)
├── CLAUDE.md               # Project context
├── settings.json           # Hooks, permissions
├── skills/                 # Skills (SKILL.md format)
├── agents/                 # Agent definitions
└── plugins/                # Plugin manifests

.kiro/  → symlinks          # Created by: hy setup kiro
├── steering.md  → ../.claude/CLAUDE.md
├── skills/      → ../.claude/skills/
└── powers/      # Converted from .claude/plugins/

.pi/    → symlinks          # Created by: hy setup pi
├── agent/extensions/ → ../.claude/plugins/
└── mcp.json         → ../.claude/mcp.json

Harness Profiles

Each harness has a profile in profiles/ that defines:

  • binary: Command to run (e.g., claude, kiro)
  • config_dir: Where it looks for config (e.g., .kiro/)
  • context_file: Project context filename (e.g., steering.md)
  • skills_dir: Where it looks for skills
  • mcp_config: MCP server configuration file
  • setup: Symlinks and conversions needed

Philosophy

  • .claude/ is the source of truth -- other harness configs are derived
  • Non-destructive -- hy setup only creates symlinks, never modifies .claude/
  • Optional -- each harness still works standalone if you prefer manual config
  • Open source -- contributions welcome for new harnesses

Mascot

Dolly the sheep. Because all the harnesses are clones of the same concepts.

License

MIT

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

harnyard-0.1.0.tar.gz (20.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

harnyard-0.1.0-py3-none-any.whl (12.4 kB view details)

Uploaded Python 3

File details

Details for the file harnyard-0.1.0.tar.gz.

File metadata

  • Download URL: harnyard-0.1.0.tar.gz
  • Upload date:
  • Size: 20.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for harnyard-0.1.0.tar.gz
Algorithm Hash digest
SHA256 f1fa87c891f360b8239ca5de74d41888f96b21ba194b22e38d18626da6bbfd51
MD5 766c3dd502f57e8a7ea920546da0b668
BLAKE2b-256 b80d6ec64246ea41a5de96862a4b00ff956926392647ccc8821ca9b91d98c3b7

See more details on using hashes here.

File details

Details for the file harnyard-0.1.0-py3-none-any.whl.

File metadata

  • Download URL: harnyard-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 12.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.9.26 {"installer":{"name":"uv","version":"0.9.26","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"macOS","version":null,"id":null,"libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for harnyard-0.1.0-py3-none-any.whl
Algorithm Hash digest
SHA256 c0e28b7fc0b7938497b80fef4983d9e58d25cdde83008a80805e763f0db32627
MD5 78939cc60466a6c263023b9684e8ce83
BLAKE2b-256 3ed84f5e3eee8ae521cf02fcd0f4e9c6c0475c32ff19eb7054b1d53c842db7c2

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page